| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See README.md for detailed descriptions of the usage of the tools and tests in this changeset.
Three modes of testing are supported:
1) Launch a local Kubernetes (k8s) cluster and run the test suites on it
(See local_test.sh)
2) Launch a remote k8s cluster on Google Container Engine (GKE) and run the test suite on it
(See remote_test.sh)
3) Run the test suite on an existing k8s TensorFlow cluster
(Also see remote_test.sh)
Take the remote test for example, the following steps are performed:
1) Builds a Docker image with gcloud and Kubernetes tools, and the latest TensorFlow pip installed (see Dockerfile)
2) Launches a Docker container based on the said image (see test_distributed.sh)
3) From within the image, authenticate the gcloud user (with credentials files mapped from outside the container), configer the k8s cluster and launch a new k8s container cluster for TensorFlow workers
4) Generate a k8s (yaml) config file and user this yaml file to create a TensorFlow worker cluster consisting of a certian number of parameter servers (ps) and workers. The workers are exposed as external services with public IPs (see dist_test.sh)
5) Run a simple softmax MNIST model on multiple workers, with the model weights and biases located on the ps nodes. Train the models in parallel and observe the final validation cross entropy (see dist_mnist_test.sh)
Change: 117543657
|
|
|
|
| |
Change: 117523151
|
|
|
|
| |
Change: 117520810
|
|
|
|
|
|
|
| |
copy
to being part of TF, add tests."
Change: 117519243
|
|
|
|
| |
Change: 117518926
|
|
|
|
|
|
|
|
|
|
|
| |
separate struct that is shared by all of the image resizers.
Normalizes the error checking across all of the resizers.
Also added a max size check to nearest_neighbor - because of
the floats, it starts to produce bad results after 2^24px
in either direction. Not that anyone does that, but it's good
to be precise about it.
Change: 117516271
|
|
|
|
|
|
|
| |
Android demo, for performance analysis.
Enable by hardcoding kSaveStepStats to true or passing "--copt -DSAVE_STEP_STATS" to bazel build.
Change: 117512949
|
|
|
|
|
| |
to being part of TF, add tests.
Change: 117509710
|
|
|
|
| |
Change: 117506296
|
|
|
|
| |
Change: 117505457
|
|
|
|
|
|
| |
embedded components.
Change: 117504934
|
|
|
|
| |
Change: 117504830
|
|
|
|
|
|
| |
made to aid debugging. This instantly answers the question: did I specify it wrong or is the device not found?
Change: 117493711
|
|
|
|
|
| |
Also fixed compilation issues with cuda devices that support the compute model 5.3
Change: 117493644
|
|
|
|
| |
Change: 117493386
|
|
|
|
|
|
| |
added some code cleanup).
Change: 117488572
|
|
|
|
|
|
| |
not rely on cell.input_size.
Change: 117484994
|
|
|
|
|
|
| |
snag.
Change: 117484454
|
|
|
|
|
|
| |
real-time, changing data.
Change: 117483893
|
|
|
|
| |
Change: 117483092
|
|
|
|
| |
Change: 117482953
|
|
|
|
| |
Change: 117475266
|
|
|
|
| |
Change: 117471008
|
|
|
|
| |
Change: 117456435
|
|
|
|
|
|
|
|
|
| |
registered by experimental devices.
Right now tensorflow/core/kernels explicitly depends on all Eigen devices that might want to implement any of the templated Eigen Ops. This is because the template classes that need to be specialized are defined in .cc files, so the specializations themselves have to appear there too. Moving the classes to .h files allows us to use arbitrary Eigen devices defined outside of tensorflow/core, which fits better with the intent behind core/kernels.
Over time more kernels may need to be refactored this way for the same reason.
Change: 117452814
|
|
|
|
| |
Change: 117444098
|
|
|
|
| |
Change: 117420208
|
|
|
|
|
|
| |
minimize method.
Change: 117401811
|
|
|
|
| |
Change: 117394750
|
|
|
|
| |
Change: 117392494
|
|
|
|
| |
Change: 117387358
|
|
|
|
| |
Change: 117384840
|
|
|
|
| |
Change: 117384554
|
|
|
|
|
|
|
|
| |
can automatically use the [backpropagation
algorithm](http://colah.github.io/posts/2015-08-Backprop/)
to efficiently determine how your variables affect the cost you ask it to
minimize.
Change: 117382393
|
|
|
|
| |
Change: 117375570
|
|
|
|
| |
Change: 117375431
|
|
|
|
| |
Change: 117365836
|
|
|
|
|
|
|
| |
work with (ridiculously) large tensors. Also switching an existing
test to use FastBoundsCheck to increase consistency with where
we're taking the other ops.
Change: 117364143
|
|
|
|
| |
Change: 117361209
|
|
|
|
| |
Change: 117356696
|
|
|
|
|
|
|
|
|
| |
eliminating several other asynchrony-related validation bugs.
(This turns out to also shrink the code a bit by eliminating
a fair bit of redundant input accessor code between the validation
and compute phases). Haven't benchmarked, but if anything, this
change should be performance-positive.
Change: 117353014
|
|
|
|
| |
Change: 117347879
|
|
|
|
| |
Change: 117346884
|
|
|
|
| |
Change: 117305077
|
|
|
|
| |
Change: 117304114
|
|
|
|
|
|
| |
to map strings to IDs and viceversa.
Change: 117303981
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
map key tensors to values.
- Add a table initializer given the keys and values as tensors.
Example use case:
keys = tf.constant([0, 1], tf.int64)
values = tf.constant(["hello", "world"])
default_value = "UNK"
table = tf.contrib.lookup.HashTable(tf.contrib.lookup.KeyValueTensorInitializer(keys, values), default_value)
input_tensor = tf.constant([0, 2], tf.int64)
out = table.lookup(input_tensor).
tf.initialze_all_tables().run() # or table.init.run()
print out.eval() # Returns ["hello", "UNK"]
Change: 117301920
|
|
|
|
| |
Change: 117301677
|
|
|
|
|
|
|
|
|
| |
This test is flaky. We need a more robust solution for starting
multiple processes and connecting them; `PickUnusedPortOrDie()` is not
robust to multiple concurrent tests on the same host. A possible
approach would be to add a portserver, or add a handshake between the
parent test process and the server processes.
Change: 117293607
|
|
|
|
| |
Change: 117285646
|