| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
conversion script but passing V2 data. Also, remove code from tf_update.py which is also in ast_edits.py.
PiperOrigin-RevId: 205887317
|
|
|
|
| |
PiperOrigin-RevId: 205885372
|
|
|
|
| |
PiperOrigin-RevId: 205885304
|
|
|
|
| |
PiperOrigin-RevId: 205884309
|
|
|
|
| |
PiperOrigin-RevId: 205882419
|
|\
| |
| |
| | |
PiperOrigin-RevId: 205881436
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Instead of remembering is_reusable_, remember BufferAllocation::is_tuple_ and
compute is_reusable() from is_tuple() and is_thread_local().
- Introduce is_readonly() which tells us whether an allocation holds readonly
data. In the future this will return true for constant buffer allocations
but today only entry parameters are readonly.
is_reusable() is about lifetime whereas is_readonly() is about write access. In
particular, we sometimes "re-use" readonly allocations e.g. when the init value
of a while loop is an entry parameter and the while body is readonly.
PiperOrigin-RevId: 205881338
|
|\ \
| | |
| | |
| | | |
PiperOrigin-RevId: 205880828
|
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 205879506
|
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 205878953
|
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 205877002
|
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 205875586
|
| | |
| | |
| | |
| | |
| | |
| | | |
Remove the need for decorators in metric subclasses.
PiperOrigin-RevId: 205875214
|
|\ \ \
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205871985
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205866253
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205866236
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205865103
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205862584
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
different iterators placed on devices.
PiperOrigin-RevId: 205861287
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205859733
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Very large fusions aren't usually useful on the GPU, and if they get
large enough, they can fail to compile (or successfully compile but fail
to launch!).
PiperOrigin-RevId: 205859710
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205858924
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously it would return an allocated buffer, even if there was an error and the buffer was not usable. This could cause memory leaks if the caller did not manually delete the buffer.
Because TF_DeleteBuffer has been updated to be safe to call on nullptr, it's still OK if callers attempt to delete this nullptr.
PiperOrigin-RevId: 205858542
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes #18652
PiperOrigin-RevId: 205858348
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
model to estimator conversion.
PiperOrigin-RevId: 205858208
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Analagous to the existing support for custom collections.Sequence types. They need to be constructable with the same arguments as the base type for pack_sequence_as to work.
Leaves PyDict_* calls for dict subclasses, but adds more general (and likely much slower) fallbacks for instances of collections.Mapping which are not dict subclasses.
My hope is that this support will be enough so I can use a wrapper around dicts which does not inherit from dict in __setattr__ tracking (some tests failed without it). Inheriting from dict and properly shadowing a real dict seems impossible with CPython (since to shadow without synchronization issues, the wrapper needs to respond to updates to the original dict, but to work with e.g. {}.update(dict_subclass) the wrapper's C storage needs to also be updated).
PiperOrigin-RevId: 205858082
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The TF_Delete* functions in TensorFlow's C API now safely do nothing when asked to delete a null pointer. This mirrors the behaviour of free in C and delete in C++.
PiperOrigin-RevId: 205844191
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This change makes Estimator.train() support v2 summaries (tf.contrib.summary.*) out-of-the-box, to match the support for v1 summaries. Estimator.train() will now handle the boilerplate necessary to initialize a file writer and enable summary writing every N steps, and will ensure that its own automatically exported summaries (for loss and global_step/sec) get written to the same underlying events file.
As part of this change, tf.train.SummarySaverHook, tf.train.CheckpointSaverHook, tf.train.StepCounterHook, and tf.train.ProfilerHook have also been adapted to write summaries using the v2 summary system (via a compatibility layer), instead of using FileWriterCache.
A couple additional smaller changes are:
- the 'session' parameter to FileWriter() can now be a callable returning a tf.Session instance.
- the introduction of tf.contrib.summary.record_summaries_if() which takes a boolean tensor for direct control of tf.contrib.summary.should_record_summaries().
- EstimatorSpec.train_op, besides a tf.Operation, is now allowed to be any Tensor-equivalent object rather than just a tf.Tensor.
PiperOrigin-RevId: 205843986
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
LGPL, including fix for the Android/Apple version of code (C++ macros-es fix)
PiperOrigin-RevId: 205842327
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Removes stale mentions of how to construct them from docstrings and adds a new
section to the programmer's guide explaining resource handles and resource
variable semantics.
PiperOrigin-RevId: 205842012
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205832336
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205826660
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is part of the work to make available kernels easier to query at runtime.
PiperOrigin-RevId: 205802663
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We now emit O(log^n) kernel thunks. Each thunk is responsible for looping over
the other dimensions, and then doing a comparison loop through the dimension
that should be sorted.
PiperOrigin-RevId: 205791397
|
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 205789178
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
tensorflow_serving.
PiperOrigin-RevId: 205788702
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 205783316
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 205777765
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This allows the use of CHECK_EQ with Thunk::Kind values.
PiperOrigin-RevId: 205775065
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205771803
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
widely used in lieu of a tuple, and almost never as an actual initialized list that is about to be added even more elements. This removes the possibility to create an initialized tensor list, and to cover for that this CL also introduces a special function for that purpose.
PiperOrigin-RevId: 205771027
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205765869
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205763219
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
(when no input shape is specified.)
PiperOrigin-RevId: 205761788
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205756865
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205755610
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205755115
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205754951
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205754672
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 205754132
|