| Commit message (Collapse) | Author | Age |
|
|
|
| |
PiperOrigin-RevId: 215853105
|
|
|
|
| |
PiperOrigin-RevId: 215651413
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to replace it.
This change prepares `tf.data` for TensorFlow 2.0, where `tf.contrib` will no longer exist. It retains the pre-existing endpoints in `tf.contrib.data` with deprecation warnings.
Note there are some exceptions to the move:
* Deprecated symbols in `tf.contrib.data` have not been moved to `tf.data.experimental`, because replacements already exist.
* `tf.contrib.data.LMDBDataset` has not been moved, because we plan to move it to a SIG-maintained repository.
* `tf.contrib.data.assert_element_shape()` has not yet been moved, because it depends on functionality in `tf.contrib`, and it will move in a later change.
* `tf.contrib.data.AUTOTUNE` has not yet been moved, because we have not yet determined how to `tf_export()` a Python integer.
* The stats-related API endpoints have not yet appeared in a released version of TensorFlow, so these are moved to `tf.data.experimental` without retaining an endpoint in `tf.contrib.data`.
In addition, this change includes some build rule and ApiDef refactoring:
* Some of the "//third_party/tensorflow/python:training" dependencies had to be split in order to avoid a circular dependency.
* The `tf.contrib.stateless` ops now have a private core library for the generated wrappers (and accordingly are hidden in their ApiDef) so that `tf.data.experimental.sample_from_datasets()` can depend on them.
PiperOrigin-RevId: 215304249
|
|
|
|
| |
PiperOrigin-RevId: 215276816
|
|
|
|
| |
PiperOrigin-RevId: 214795331
|
|
|
|
|
|
|
|
| |
This change reduce the size of //tensorflow/tools/pip_package:simple_console_windows's zip file from 1000027677 bytes to 47690474 bytes for a CPU build. For GPU build, it will avoid going over 4GB when multiple CUDA compatibility are specified.
To fix #22390
PiperOrigin-RevId: 214764423
|
|
|
|
| |
PiperOrigin-RevId: 214685427
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also a small bugfix to handle unknown shapes in backprop._num_elements.
Before:
entry {
name: "L2hmcBenchmark.eager_train_cpu_defun"
iters: 10
wall_time: 0.594115018845
extras {
key: "examples_per_sec"
value {
double_value: 336.635152548
}
}
}
After:
entry {
name: "L2hmcBenchmark.eager_train_cpu_defun"
iters: 10
wall_time: 0.322251081467
extras {
key: "examples_per_sec"
value {
double_value: 620.634069216
}
}
}
PiperOrigin-RevId: 214308142
|
|
|
|
| |
PiperOrigin-RevId: 214025729
|
|
|
|
| |
PiperOrigin-RevId: 214007470
|
| |
|
|\
| |
| |
| | |
PiperOrigin-RevId: 212455344
|
|\ \
| | |
| | |
| | | |
PiperOrigin-RevId: 212455284
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Eager execution is over 10x slower than defun/graph execution.
bazel run -c opt benchmarks_test -- --benchmarks=MicroBenchmarks.benchmarkScan.*
entry {
name: "MicroBenchmarks.benchmarkScan"
iters: 100
wall_time: 176364.049911
extras {
key: "examples_per_sec"
value {
double_value: 5.67008979722
}
}
}
entry {
name: "MicroBenchmarks.benchmarkScanDefun"
iters: 100
wall_time: 15466.0701752
extras {
key: "examples_per_sec"
value {
double_value: 64.6576660182
}
}
}
The benchmark deleted by this CL measured graph construction time, whereas this CL does not.
PiperOrigin-RevId: 212356196
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
self.test_session() has been deprecated in 9962eb5e84b15e309410071b06c2ed2d6148ed44 as its name confuses readers of the test. Moving to cached_session() instead which is more explicit about:
* the fact that the session may be reused.
* the session is not closed even when doing a "with self.test_session()" statement.
PiperOrigin-RevId: 212336464
|
| |/
|/|
| |
| |
| |
| | |
The README.md inside rnn_colorbot is broken, this fix fixes the link.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
|
| |
| |
| |
| |
| |
| | |
metrics combined with while loops.
PiperOrigin-RevId: 211479604
|
| | |
|
|\ \
| | |
| | |
| | | |
PiperOrigin-RevId: 211131408
|
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 211006291
|
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 210459088
|
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 210422151
|
| | |
| | |
| | |
| | |
| | |
| | | |
https://github.com/tensorflow/docs/tree/master/site/en/tutorials/eager
PiperOrigin-RevId: 210401536
|
|/ /
| |
| |
| | |
2 was BICUBIC not NEAREST_NEIGHBOR
https://github.com/tensorflow/tensorflow/blob/r1.10/tensorflow/python/ops/image_ops_impl.py#L936
|
| |
| |
| |
| | |
PiperOrigin-RevId: 210127772
|
| |
| |
| |
| | |
PiperOrigin-RevId: 210028452
|
| |
| |
| |
| | |
PiperOrigin-RevId: 209824328
|
| | |
|
|/
|
|
| |
predictions instead of tf.multinomial
|
|\
| |
| |
| | |
PiperOrigin-RevId: 209632789
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Our APIs for creating functions are tfe.defun() and tfe.make_template();
graph_callable is no longer needed.
Additionally, change GraphModeFunction to accept a FuncGraph instead of
a CapturingGraph --- graph_callable was preventing us from doing this.
This is part of ongoing hygiene work to help us think more clearly about the function APIs we'll want to provide. GraphModeFunction (which is renamed to GraphCallable here) previously had way too many attributes.
PiperOrigin-RevId: 209502276
|
| |
| |
| |
| | |
PiperOrigin-RevId: 209239670
|
| |
| |
| |
| |
| |
| | |
Allows a change any time within process.
PiperOrigin-RevId: 209051119
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
drop_remainder=True). Also checkpointing at (epoch + 1) % x while saving the model to consider the last epoch's variables.
|
| |
| |
| |
| | |
PiperOrigin-RevId: 208277185
|
| |
| |
| |
| | |
PiperOrigin-RevId: 208257223
|
| |
| |
| |
| | |
PiperOrigin-RevId: 208223617
|
| |
| |
| |
| | |
PiperOrigin-RevId: 208218148
|
| |
| |
| |
| | |
PiperOrigin-RevId: 208140215
|
| |
| |
| |
| | |
PiperOrigin-RevId: 208126204
|
| |
| |
| |
| |
| |
| |
| | |
- Save a smaller image grid, more often.
- Increase the number of Epochs per Frame as training progresses.
PiperOrigin-RevId: 208091735
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Back-ticks are now converted to links in the api_docs generator. With the new docs repo we're moving to simplify the docs pipeline, and make everything more readable.
By doing this we no longer get test failures for symbols that don't exist (`tf.does_not_exist` will not get a link).
There is also no way, not to set custom link text. That's okay.
This is the result of the following regex replacement (+ a couple of manual edits.):
re: @\{([^$].*?)(\$.+?)?}
sub: `\1`
Which does the following replacements:
"@{tf.symbol}" --> "`tf.symbol`"
"@{tf.symbol$link_text}" --> "`tf.symbol`"
PiperOrigin-RevId: 208042358
|
| |
| |
| |
| | |
PiperOrigin-RevId: 207984871
|
| |
| |
| |
| | |
PiperOrigin-RevId: 207972787
|
| |
| |
| |
| | |
PiperOrigin-RevId: 207968029
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An input signature is a possibly nested collection of `TensorSpec` objects declaring the shapes and dtypes of a function's arguments. tfe.defun propagates these shapes and dtypes to the graph function it generates for the traced Python function.
Since the shapes may be partially specified, this makes it possible to generate functions with partial shape information.
When an input signature is specified, every argument to the `defun`-wrapped function *must* be a Tensor. Input signatures cannot be specified for functions with keyword arguments, but positional arguments that are called in a keyword-like fashion are acceptable. For example, the following code snippet is valid
@tfe.defun(input_signature=(TensorSpec([], tf.float32), TensorSpec([], tf.int32))
def foo(b, a):
...
foo(b=tf.constant(1.0), a=tf.constant(2))
foo(a=tf.constant(2), b=tf.constant(1.0))
while the next code snippet is invalid
@tfe.defun(input_signature=(TensorSpec([], tf.float32), TensorSpec([], tf.int32))
def foo(b, **kwargs):
...
# This will fail --- arbitrary kwargs are not allowed.
foo(b=tf.constant(1.0), a=tf.constant(2))
This change also adds benchmarks that approximately measure the time taken to compute the cache key and verify the signature (and execute an empty function). Signatures introduce an overhead of ~100 us. The benchmarks for the non-signature path are the same as they were before this change.
entry {
name: "MicroBenchmarks.benchmark_defun_with_signature"
iters: 30000
wall_time: 349.911403656
extras {
key: "examples_per_sec"
value {
double_value: 2857.86627572
}
}
}
entry {
name: "MicroBenchmarks.benchmark_defun_with_signature_and_kwargs"
iters: 30000
wall_time: 360.46500206
extras {
key: "examples_per_sec"
value {
double_value: 2774.19442743
}
}
}
entry {
name: "MicroBenchmarks.benchmark_defun_without_signature"
iters: 30000
wall_time: 259.087236722
extras {
key: "examples_per_sec"
value {
double_value: 3859.70383046
}
}
}
entry {
name: "MicroBenchmarks.benchmark_defun_without_signature_and_with_kwargs"
iters: 30000
wall_time: 272.486400604
extras {
key: "examples_per_sec"
value {
double_value: 3669.90792121
}
}
}
PiperOrigin-RevId: 207617442
|
| |
| |
| |
| | |
PiperOrigin-RevId: 207195679
|