| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
| |
Implements an incomplete version of Operation._add_control_input()
using a new extension to make sure the plumbing works.
This also adds header guards to c_api_internal.h, which were missing. For some reason the missing guards caused problems in the cmake build even though there doesn't appear to be any #include cycles.
PiperOrigin-RevId: 161705859
|
|
|
|
|
|
| |
naming conventions.
PiperOrigin-RevId: 161704561
|
|
|
|
|
|
| |
tf.nn.sampled_softmax_loss that has been shown to improve rank loss. Paper: https://arxiv.org/abs/1707.03073
PiperOrigin-RevId: 161702455
|
|
|
|
| |
PiperOrigin-RevId: 161698801
|
|
|
|
| |
PiperOrigin-RevId: 161686867
|
|
|
|
| |
PiperOrigin-RevId: 161679855
|
|
|
|
| |
PiperOrigin-RevId: 161671226
|
|
|
|
|
|
| |
training time, instead of only after FinalizeTreeOp.
PiperOrigin-RevId: 161663317
|
|
|
|
|
|
| |
bridge. Stacks are used when computing loop gradients.
PiperOrigin-RevId: 161659980
|
|
|
|
| |
PiperOrigin-RevId: 161657633
|
|
|
|
| |
PiperOrigin-RevId: 161632224
|
|
|
|
| |
PiperOrigin-RevId: 161629493
|
|
|
|
| |
PiperOrigin-RevId: 161627209
|
|
|
|
|
|
| |
integral types.
PiperOrigin-RevId: 161624003
|
|
|
|
| |
PiperOrigin-RevId: 161622376
|
|
|
|
|
|
|
|
|
|
| |
Looking at graph._c_graph should be safer. The logic would be as
follows. You need to set _USE_C_API global when you create the graph.
Once the graph is created, it is either in the "C API mode" or in the
old mode. All ops created on this graph inherit its mode and don't look
at the global.
PiperOrigin-RevId: 161620767
|
|
|
|
| |
PiperOrigin-RevId: 161616162
|
|
|
|
|
|
|
|
|
| |
they have an
explicit cluster and master (i.e. give an indication that they intend to be
running distributed).
PiperOrigin-RevId: 161612632
|
|
|
|
| |
PiperOrigin-RevId: 161611475
|
|
|
|
| |
PiperOrigin-RevId: 161609382
|
|
|
|
| |
PiperOrigin-RevId: 161598138
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change first converts _input_types into a property and renames the
member to _input_types_val. We keep _input_dtypes as an alias for
_input_types as it was before this change.
Similarly to _output_types, we can't enable normal tests yet. Instead,
we add a simple temporary test for _input_types.
Also, fix two minor typos in doc strings of function.py
PiperOrigin-RevId: 161597185
|
|
|
|
|
|
| |
Fixes #11422
PiperOrigin-RevId: 161581508
|
|
|
|
| |
PiperOrigin-RevId: 161581264
|
|
|
|
|
|
| |
output ScheduledOutputTrainingHelper helper. Also results in minor speedup.
PiperOrigin-RevId: 161577148
|
|
|
|
| |
PiperOrigin-RevId: 161569039
|
|
|
|
|
|
|
|
| |
Instead of constructing a temporary set, adding all its members to
our big set, then flattening into a vector, add the members to our
vector directly, then sort it and remove duplicates at the end.
PiperOrigin-RevId: 161565289
|
|
|
|
|
|
|
| |
Now that we have tensorflow::hash and it's the default hasher for
FlatMap and FlatSet, we can get rid of HashStr and HashStringPiece.
PiperOrigin-RevId: 161560034
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the default hasher for FlatMap and FlatSet used std::hash by
default. Most stdlibs' std::hash for pointers is the identity function.
This works for std::unordered_{set,map} because those are prime-sized
hashtables. But FlatSet and FlatMap are power-of-two-sized, and so the
identity function is bad, bad news.
This change also switches us to use Hash64 for strings, rather than
std::hash.
PiperOrigin-RevId: 161553663
|
|
|
|
| |
PiperOrigin-RevId: 161544671
|
|
|
|
| |
PiperOrigin-RevId: 161544617
|
|
|
|
| |
PiperOrigin-RevId: 161543495
|
|
|
|
|
|
| |
tf.contrib.layers.optimize_loss without changing the actual contents.
PiperOrigin-RevId: 161542768
|
|
|
|
| |
PiperOrigin-RevId: 161542200
|
|
|
|
|
|
|
|
|
|
|
|
| |
This brings tf.gather closer to compatibility with numpy.take.
To emulate gathering over an axis generally requires inefficient workarounds, e.g. transpose/gather/transpose. This technique is gaining popularity (hundreds of uses inside and outside of Google), so it is worth supporting efficiently.
For an `[a_0, ..., a_i, ..., a_n]` tensor, gathering `N` elements from axis `i` requires `(a_0*...*a_i-1) * N` copies of `(a_i+1 * ... * a_n)` elements each. The CPU kernel does this with memcpy which is far more efficient than transpose/gather/transpose since it requires no intermediate allocations and copies. The GPU kernel does the same number of copies but in parallel across multiple hardware threads.
Since this is a backwards incompatible change, this adds a "GatherV2" op with an axis input, and simultaneously supports backwards compatibility with "Gather" ops by defaulting to axis 0 if a 3rd input is not present.
PiperOrigin-RevId: 161541416
|
|
|
|
| |
PiperOrigin-RevId: 161531749
|
|
|
|
| |
PiperOrigin-RevId: 161527685
|
|
|
|
|
|
| |
Note: does not yet support nested tuples, for symmetry with the current infeed
limitations.
PiperOrigin-RevId: 161502502
|
|
|
|
| |
PiperOrigin-RevId: 161486865
|
|
|
|
|
|
| |
Made the tensor_summary op directly use the TensorSummaryV2 kernel.
PiperOrigin-RevId: 161486007
|
|
|
|
| |
PiperOrigin-RevId: 161478803
|
|
|
|
| |
PiperOrigin-RevId: 161478409
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
END_PUBLIC
---
Commit d0f53f77f authored by Penghao Cen<scorpiocph@gmail.com>
Committed by Shanqing Cai<cais@google.com>:
Minor fix typo (#11323)
---
Commit 02fcf564e authored by Chris Song<sjhshy@gmail.com>
Committed by Chris Song<sjhshy@gmail.com>:
Fix misspells.
---
Commit 764c9b6b4 authored by Louis Tiao<ltiao@users.noreply.github.com>
Committed by GitHub<noreply@github.com>:
Fixed typo in docstring
---
Commit f8cd1283e authored by Shanqing Cai<cais@google.com>
Committed by Shanqing Cai<cais@google.com>:
Chaser
---
Commit 01383b946 authored by Shanqing Cai<cais@google.com>
Committed by Shanqing Cai<cais@google.com>:
Adapt TensorFlowTestCase.setUp() to new reset_default_graph() semantics
Avoid calling reset_default_graph() directly to prevent exceptions in
cases where test methods error out from within nested graph contexts,
which can leave _default_graph_stack non-empty in certain Python
versions.
---
Commit 0ffc37890 authored by Amit Patankar<amitpatankar@google.com>
Committed by Amit Patankar<amitpatankar@google.com>:
Removing second declaration of functions.
---
Commit f9c9cacb0 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Refactor ElementalIrEmitter's slice index finding code into
IrArray::Index::SourceIndexOfSlice().
PiperOrigin-RevId: 161140653
---
Commit ba297aec9 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Update ops-related pbtxt files.
PiperOrigin-RevId: 161138258
---
Commit 68d666737 authored by Alexandre Passos<apassos@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Fixes a reentrant lock issue with tensors using ndarray memory which uses tensor memory.
PiperOrigin-RevId: 161137788
---
Commit a2ee8bca3 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Add support for int8 x int8 -> int32 matrix multiplication via cublasGemmEx to stream_executor.
PiperOrigin-RevId: 161137741
---
Commit 755fa7b50 authored by Mark Daoust<markdaoust@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Block generate_test, and docs generating from running in python3.
- Doc generation is currently unsupported in python3
- These both end in errors in python 3.5.1+
PiperOrigin-RevId: 161137467
---
Commit 97cbcac45 authored by Peter Hawkins<phawkins@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
[TF:XLA] Fix failure in functionalize_control_flow rewrite for Enter nodes that are unused. Make sure we ignore such nodes without producing an error.
PiperOrigin-RevId: 161136545
---
Commit dabcb60bc authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
[XLA] Add reasonable error messages to Builder::Build for bad parameter numbers.
PiperOrigin-RevId: 161136262
---
Commit 0cbd249e8 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Add complex tensors support to `matrix_determinant`.
PiperOrigin-RevId: 161132422
---
Commit 335f1f14d authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Extend static shape inference for SparseTensors with dense_shapes constructed using slicing.
PiperOrigin-RevId: 161132391
---
Commit 53604916e authored by Jianwei Xie<xiejw@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Fixed the missing labels test in TPUEstimator.
PiperOrigin-RevId: 161131282
---
Commit 9f57dc8dd authored by Bruno Rosa<bruno.rosa@eldorado.org.br>
Committed by Bruno Rosa<bruno.rosa@eldorado.org.br>:
Use mcpu instead of march for ppc64le
march is not support by gcc on ppc64le
---
Commit 7d5c74a9c authored by Skye Wanderman-Milne<skyewm@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Move duplicate detection logic from Graph to FunctionLibraryDefinition
Turns out this is more useful, since there are many function libraries
that don't belong to a graph. This will be used in a future
change. Note that this maintains the current behavior of Graph.
In addition, updates FunctionDefsEqual() to handle unset attr entries
(I ran into this when using this in said future change).
PiperOrigin-RevId: 161126628
---
Commit 2caec3af1 authored by Shanqing Cai<cais@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Disable more timeseries py tests failing in OSS PIP GPU builds
PiperOrigin-RevId: 161124799
---
Commit 0b5cce367 authored by Eugene Brevdo<ebrevdo@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Get TopK op working on GPU again. Extend using cub's radix sort.
1. Undo rollback of Andreas Kirsch's initial implementation.
2. Use cub segmented radix sort if Andreas' heap-based impl
for large k and small num_cols (thresholds of k=100, n=1000
determined empirically).
3. Use cub segmented radix sort if k == num_cols (this case is always faster).
4. Added benchmarks.
Benchmarks show that the GPU implementation is up to 3x slower for small k but
can be 10x faster for large num_cols and k.
Benchmarks:
Benchmark: m_128_n_10_k_5_use_gpu_False wall_time: 0.000166 s Throughput: 0.0077 GB/s
Benchmark: m_128_n_10_k_5_use_gpu_True wall_time: 0.000796 s Throughput: 0.00161 GB/s
Benchmark: m_128_n_10_k_9_use_gpu_False wall_time: 0.00017 s Throughput: 0.00751 GB/s
Benchmark: m_128_n_10_k_9_use_gpu_True wall_time: 0.000796 s Throughput: 0.00161 GB/s
Benchmark: m_128_n_10_k_10_use_gpu_False wall_time: 0.00017 s Throughput: 0.00753 GB/s
Benchmark: m_128_n_10_k_10_use_gpu_True wall_time: 0.000775 s Throughput: 0.00165 GB/s
Benchmark: m_128_n_100_k_1_use_gpu_False wall_time: 0.000155 s Throughput: 0.0826 GB/s
Benchmark: m_128_n_100_k_1_use_gpu_True wall_time: 0.000796 s Throughput: 0.0161 GB/s
Benchmark: m_128_n_100_k_50_use_gpu_False wall_time: 0.000247 s Throughput: 0.0519 GB/s
Benchmark: m_128_n_100_k_50_use_gpu_True wall_time: 0.0008 s Throughput: 0.016 GB/s
Benchmark: m_128_n_100_k_99_use_gpu_False wall_time: 0.000261 s Throughput: 0.049 GB/s
Benchmark: m_128_n_100_k_99_use_gpu_True wall_time: 0.000794 s Throughput: 0.0161 GB/s
Benchmark: m_128_n_100_k_100_use_gpu_False wall_time: 0.000239 s Throughput: 0.0536 GB/s
Benchmark: m_128_n_100_k_100_use_gpu_True wall_time: 0.000777 s Throughput: 0.0165 GB/s
Benchmark: m_128_n_1000_k_1_use_gpu_False wall_time: 0.000324 s Throughput: 0.395 GB/s
Benchmark: m_128_n_1000_k_1_use_gpu_True wall_time: 0.000916 s Throughput: 0.14 GB/s
Benchmark: m_128_n_1000_k_10_use_gpu_False wall_time: 0.00042 s Throughput: 0.305 GB/s
Benchmark: m_128_n_1000_k_10_use_gpu_True wall_time: 0.000902 s Throughput: 0.142 GB/s
Benchmark: m_128_n_1000_k_500_use_gpu_False wall_time: 0.0011 s Throughput: 0.116 GB/s
Benchmark: m_128_n_1000_k_500_use_gpu_True wall_time: 0.00097 s Throughput: 0.132 GB/s
Benchmark: m_128_n_1000_k_990_use_gpu_False wall_time: 0.00133 s Throughput: 0.0962 GB/s
Benchmark: m_128_n_1000_k_990_use_gpu_True wall_time: 0.000993 s Throughput: 0.129 GB/s
Benchmark: m_128_n_1000_k_1000_use_gpu_False wall_time: 0.00102 s Throughput: 0.126 GB/s
Benchmark: m_128_n_1000_k_1000_use_gpu_True wall_time: 0.000964 s Throughput: 0.133 GB/s
Benchmark: m_128_n_10000_k_10_use_gpu_False wall_time: 0.002 s Throughput: 0.64 GB/s
Benchmark: m_128_n_10000_k_10_use_gpu_True wall_time: 0.00288 s Throughput: 0.445 GB/s
Benchmark: m_128_n_10000_k_100_use_gpu_False wall_time: 0.00233 s Throughput: 0.549 GB/s
Benchmark: m_128_n_10000_k_100_use_gpu_True wall_time: 0.00325 s Throughput: 0.394 GB/s
Benchmark: m_128_n_10000_k_5000_use_gpu_False wall_time: 0.0127 s Throughput: 0.101 GB/s
Benchmark: m_128_n_10000_k_5000_use_gpu_True wall_time: 0.00381 s Throughput: 0.336 GB/s
Benchmark: m_128_n_10000_k_9900_use_gpu_False wall_time: 0.015 s Throughput: 0.0853 GB/s
Benchmark: m_128_n_10000_k_9900_use_gpu_True wall_time: 0.00438 s Throughput: 0.292 GB/s
Benchmark: m_128_n_10000_k_10000_use_gpu_False wall_time: 0.0104 s Throughput: 0.123 GB/s
Benchmark: m_128_n_10000_k_10000_use_gpu_True wall_time: 0.00427 s Throughput: 0.3 GB/s
Benchmark: m_128_n_100000_k_100_use_gpu_False wall_time: 0.0148 s Throughput: 0.865 GB/s
Benchmark: m_128_n_100000_k_100_use_gpu_True wall_time: 0.0262 s Throughput: 0.488 GB/s
Benchmark: m_128_n_100000_k_1000_use_gpu_False wall_time: 0.0201 s Throughput: 0.636 GB/s
Benchmark: m_128_n_100000_k_1000_use_gpu_True wall_time: 0.0263 s Throughput: 0.486 GB/s
Benchmark: m_128_n_100000_k_50000_use_gpu_False wall_time: 0.214 s Throughput: 0.0599 GB/s
Benchmark: m_128_n_100000_k_50000_use_gpu_True wall_time: 0.0322 s Throughput: 0.398 GB/s
Benchmark: m_128_n_100000_k_99000_use_gpu_False wall_time: 0.262 s Throughput: 0.0489 GB/s
Benchmark: m_128_n_100000_k_99000_use_gpu_True wall_time: 0.0377 s Throughput: 0.34 GB/s
Benchmark: m_128_n_100000_k_100000_use_gpu_False wall_time: 0.118 s Throughput: 0.108 GB/s
Benchmark: m_128_n_100000_k_100000_use_gpu_True wall_time: 0.0365 s Throughput: 0.351 GB/s
END_PUBLIC
BEGIN_PUBLIC
BEGIN_PUBLIC
Automated g4 rollback of changelist 157169178
PiperOrigin-RevId: 161476569
|
|
|
|
|
|
| |
We want a bitwise or, not bitwise and, to add in the sign bit. This was previously just creating zeros instead of negative test values.
PiperOrigin-RevId: 161473273
|
|
|
|
|
|
| |
multiple 'one-pass' evaluations.
PiperOrigin-RevId: 161470441
|
|
|
|
| |
PiperOrigin-RevId: 161461980
|
|
|
|
|
|
| |
SessionBundles that may run into a problem with undefined attributes.
PiperOrigin-RevId: 161461770
|
|
|
|
| |
PiperOrigin-RevId: 161461239
|
|
|
|
|
|
|
| |
The code is excercised by many tests in ops_test.py, math_ops_test*.py,
session_*test.py.
PiperOrigin-RevId: 161460668
|
|
|
|
|
|
| |
Added a `constant_values` keyword argument to the tf.pad Python API for compatibility with numpy.pad. For now, only scalar values are supported. To efficiently support specifying a `[D, 2]` tensor for `constant_values` to pick per-dimension pre/post constant values will require adding Eigen and XLA support first.
PiperOrigin-RevId: 161460091
|