aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/ops/sparse_ops.cc
Commit message (Collapse)AuthorAge
* ENH: add gradient for sparse_sliceGravatar Yan Facai (颜发才)2018-05-31
|
* Automated g4 rollback of changelist 180691955Gravatar Anna R2018-01-09
| | | | PiperOrigin-RevId: 181365803
* Automated g4 rollback of changelist 180670333Gravatar Anna R2018-01-03
| | | | PiperOrigin-RevId: 180691955
* Removing doc strings from REGISTER_OP calls in core/ops.Gravatar Anna R2018-01-03
| | | | PiperOrigin-RevId: 180670333
* Adding variant-based serialization and deserialization for sparse tensors.Gravatar Jiri Simsa2017-12-05
| | | | PiperOrigin-RevId: 177971801
* Re-using (the more general) DeserializeSparse kernel to implement ↵Gravatar Jiri Simsa2017-11-28
| | | | | | DeserializeSparseMany and improving documentation. PiperOrigin-RevId: 177241063
* Adding support for (nested) batching of sparse tensor for tf.data.Gravatar Jiri Simsa2017-11-20
| | | | PiperOrigin-RevId: 176444931
* Supporting sparse tensors as inputs and outputs for user-defined functions ↵Gravatar Jiri Simsa2017-11-13
| | | | | | passed into tf.data transformations. PiperOrigin-RevId: 175559045
* Merge changes from github.Gravatar Shanqing Cai2017-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Merge changes from github.Gravatar A. Unique TensorFlower2017-06-27
| | | | PiperOrigin-RevId: 160344052
* Automated g4 rollback of changelist 160182040Gravatar A. Unique TensorFlower2017-06-26
| | | | PiperOrigin-RevId: 160190881
* Merge changes from github.Gravatar A. Unique TensorFlower2017-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | END_PUBLIC Note: this CL will break builds. cl/159887762 to follow to fix all the breakages. --- Commit 2336cdf7f authored by Maxwell Paul Brickner<mbrickn@users.noreply.github.com> Committed by gunan<gunan@google.com>: Updated link to use HTTPS (#10998) Howdy! I just updated a link to use https instead of http. Thanks! --- Commit ad0892df1 authored by Luke Iwanski<luke@codeplay.com> Committed by Luke Iwanski<luke@codeplay.com>: [OpenCL] Fixes run_metadata_test for SYCL This test is designed to test CUDA specific behavior --- Commit 6b37a0725 authored by Todd Wang<toddwang@gmail.com> Committed by GitHub<noreply@github.com>: Update comments --- Commit 1699d904a authored by John Lawson<john@codeplay.com> Committed by Luke Iwanski<luke@codeplay.com>: [OpenCL] Fixes CUDA specific test run on SYCL (#56) The testBadParentValuesOnGPU should only be run on CUDA devices, as the test checks for particular CUDA behaviour. We don't actually provide a SYCL kernel for GatherTree and so it's not a problem that the tests don't target SYCL. --- Commit 3c1946230 authored by myPrecious<Moriadry@users.noreply.github.com> Committed by Shanqing Cai<cais@google.com>: Java API to get the size of specified input list of operations. (#10865) * Java API to get the size of specified input list of operations * remove unnecessary explain to avoid bring a new term to users. --- Commit e911c7480 authored by Luke Iwanski<luke@codeplay.com> Committed by Luke Iwanski<luke@codeplay.com>: [OpenCL] REGISTER -> REGISTER6 --- Commit fbf6c4cec authored by superryanguo<superryanguo@gmail.com> Committed by superryanguo<superryanguo@gmail.com>: Simplify the Quickstart section with the weblink is better --- Commit 72e2918cc authored by Taehoon Lee<taehoonlee@snu.ac.kr> Committed by Taehoon Lee<taehoonlee@snu.ac.kr>: Fix typos --- Commit 90c4406b7 authored by Rishabh Patel<patelrishabh@users.noreply.github.com> Committed by GitHub<noreply@github.com>: Correct the learning rate as per the code snippet --- Commit 03da61134 authored by Todd Wang<toddwang@gmail.com> Committed by GitHub<noreply@github.com>: Update ir_array.cc --- Commit 2df6cd3ac authored by Todd Wang<toddwang@gmail.com> Committed by GitHub<noreply@github.com>: Another try --- Commit af0cbace1 authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Transpose to go through Eigen (#10321) --- Commit fc7361081 authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Registers RGBToHSV and HSVToRGB (#91) (#10848) * [OpenCL] Added RGBToHSV and HSVToRGB * Aligning '\' --- Commit 832894ef8 authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Registers AdjustContrastv2 (#10949) * [OpenCL] Registers AdjustContrastv2 (#93) * [OpenCL] Extended adjust_contrast_op_benchmark_test for OpenCL (#96) * [OpenCL] Extended adjust_contrast_op_benchmark_test for OpenCL * simplified to #ifndef * Changed to "#if GOOGLE_CUDA" * Update adjust_contrast_op_benchmark_test.cc * Added comments --- Commit cb4c2f8d1 authored by Yifei Feng<yifeif@google.com> Committed by Yifei Feng<yifeif@google.com>: Make TransferBufferToInFeed not virual so it compiles. --- Commit e89f04d80 authored by Yifei Feng<yifeif@google.com> Committed by Yifei Feng<yifeif@google.com>: Fix calling Literal member functions. --- Commit 15a8df724 authored by Yifei Feng<yifeif@google.com> Committed by Yifei Feng<yifeif@google.com>: Fix mac build clone from meheff's change: [XLA] Change return type of DeviceAssignment::Deserialize to fix build breakage on mac. The mac build had the following error: error: incomplete type 'xla::DeviceAssignment' used in type trait expression This was due to a static method returning a StatusOr<DeviceAssignment> inside of the definition of DeviceAssignment. --- Commit a54d43fa4 authored by Yifei Feng<yifeif@google.com> Committed by Yifei Feng<yifeif@google.com>: Replace LiteralUtil to Literal in compiler/plugin/executor --- Commit 88a6bb80c authored by Guenther Schmuelling<guschmue@microsoft.com> Committed by Guenther Schmuelling<guschmue@microsoft.com>: expand inline for debug builds to limit number of symbols --- Commit 62fb49d31 authored by Yifei Feng<yifeif@google.com> Committed by Yifei Feng<yifeif@google.com>: Fix visibility error for contrib/remote_fused_graph/pylib/BUILD. --- Commit 4c75252f2 authored by Mark Neumann<markn@allenai.org> Committed by Mark Neumann<markn@allenai.org>: fix initial test values to avoid numerical instability --- Commit b58d98353 authored by sj6077<epik03sj@gmail.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: Fixes of AutoParallel bug (#10368) * Fix the bug that auto_parallel could replicate variable snapshot name * Use NodeName in grappler:utils instead of substr, convert variables->variable_def of grappler item * remove variable_def from grappler item, exclude snapshot nodes from dont_replicate_nodes in auto_parallel --- Commit a286b7db8 authored by Yifei Feng<yifeif@google.com> Committed by Yifei Feng<yifeif@google.com>: Make debug_test slice integer. --- Commit 97fcfdfa6 authored by Toby Boyd<tobyboyd@google.com> Committed by GitHub<noreply@github.com>: Fixed path to seq2seq.py and minor formatting --- Commit 63c1befb8 authored by Anish Shah<shah.anish07@gmail.com> Committed by Anish Shah<shah.anish07@gmail.com>: Improve docs for tf.nn.depthwise_conv2d_native --- Commit 8d42202b2 authored by Yong Tang<yong.tang.github@outlook.com> Committed by Yong Tang<yong.tang.github@outlook.com>: Fix mismatched delete in mkl_tfconv_op.cc This fix fixes mismatched new[]-delete in mkl_tfconv_op.cc (the file went through clang-format so there are some additional changes) Signed-off-by: Yong Tang <yong.tang.github@outlook.com> --- Commit 26301bd55 authored by Danny Goodman<goodman.danny@gmail.com> Committed by Danny Goodman<goodman.danny@gmail.com>: fix error format --- Commit b3f33ad46 authored by Yao Zhang<yaozhang@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make changes to prepare for the fused option of batch norm to be set to None (None means using fused batch norm if possible). PiperOrigin-RevId: 159649743 --- Commit a4a469832 authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Add tests for select ops and while loops that produce tuples that contain predicates. PiperOrigin-RevId: 159645900 --- Commit 980d3f2be authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use C API to implement Operation.name property This name property is used in many existing tests including those that already run with C API enabled (math_ops_test, framework_ops_test, session_test, session_partial_run_test, math_ops_test_gpu, etc). PiperOrigin-RevId: 159645767 --- Commit 26239c706 authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Previously we didn't have an implementation of BatchNormInference and BatchNormTraining, which gives a linker error if anyone ever tries to call that. A dummy implementation is friendlier than a linker error. PiperOrigin-RevId: 159645612 --- Commit f671c5caa authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: BEGIN_PUBLIC Automated g4 rollback of changelist 159570549 PiperOrigin-RevId: 160182040
* Remove ```prettyprint code blocks, they don't render properly.Gravatar Martin Wicke2017-05-26
| | | | PiperOrigin-RevId: 157228649
* Fill in documentation for SparseFillEmptyRows fastpath c++ opGravatar Eugene Brevdo2017-05-23
| | | | | | Tested by enabling the fast path by default and ensuring unit tests still pass. PiperOrigin-RevId: 156866900
* C++ implementation of SparseFillEmptyRowsGravatar Eugene Brevdo2017-05-22
| | | | | | | | | Should be much faster and more efficient than the python version. Does not require sorted indices. safe_embedding_lookup_sparse should now be faster. (will take full effect in 3 weeks, on June 10th) PiperOrigin-RevId: 156806888
* Copy sparse_feature_cross to sparse_ops. Two ops will be exposed as ↵Gravatar A. Unique TensorFlower2017-05-10
| | | | | | sparse_ops._sparse_cross and sparse_ops._sparse_cross_hashed. This cl does not touch the kernels and ops in contrib. PiperOrigin-RevId: 155520054
* Merge changes from github.Gravatar Shanqing Cai2017-04-22
| | | | Change: 153925676
* Automated rollback of change 139371663Gravatar Jonathan Hseu2016-11-18
| | | | Change: 139598626
* Rename `Tensor` to `Output` in all op docs from C++ code.Gravatar Jonathan Hseu2016-11-16
| | | | | | | | | | Generated by running: $ find . -name '*.cc' | xargs sed -i 's/a `Tensor`/an `Output`/g' $ find . -name '*.cc' | xargs sed -i 's/A `Tensor`/An `Output`/g' $ find . -name '*.cc' | xargs sed -i 's/`Tensor`/`Output`/g' And reverting the changes that referred to the C++ Tensor. There are no applicable changes needed in the .h files. Change: 139371663
* Add improved shape information to sparse_tensor_dense_matmul.Gravatar Eugene Brevdo2016-10-28
| | | | Change: 137520986
* Store SparseTensors in a Map inside a container for Queue round-trip.Gravatar Eugene Brevdo2016-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is much more efficient than serializing the underlying Tensors to strings and dserializing them on the other side. Instead we pass through the keys to the SparseTensors inside the Map. Methods are kept private for use by queueing wrappers. Includes benchmarks that show wall-time is almost 50% of the wall-time of using the sparse serialization/deserialization wrappers: I1003 17:24:34.355306 18675 benchmark.py:77] Benchmark [BenchmarkSparseTensorsMapVsSerialization.benchmark_very_large_2d_float_st_tensor_maps] iters: 2000, wall_time: 0.00260997, cpu_time: -1,throughput: -1 I1003 17:24:42.735983 18675 benchmark.py:77] Benchmark [BenchmarkSparseTensorsMapVsSerialization.benchmark_vey_large_2d_float_st_serialization] iters: 2000, wall_time: 0.00415492, cpu_time: -1,throughput: -1 *** Update: After updates to sparse_tensor.h's concat code (pushed in a sister PR), there's a speedup in both benchmarks: I1004 09:39:30.630354 24400 benchmark.py:77] Benchmark [BenchmarkSparseTensorsMapVsSerialization.benchmark_very_large_2d_float_st_tensor_maps] iters: 2000, wall_time: 0.0022105 I1004 09:39:38.125391 24400 benchmark.py:77] Benchmark [BenchmarkSparseTensorsMapVsSerialization.benchmark_very_large_2d_float_st_serialization] iters: 2000, wall_time: 0.00372696 *** Update 2: After properly placed std::moves in the sparse_tensors_map code, that benchmark is now faster: Benchmark [BenchmarkSparseTensorsMapVsSerialization.benchmark_very_large_2d_float_st_tensor_maps] iters: 2000, wall_time: 0.00187492 Total speedup is now: 0.00415492 / 0.00187492 = 2.2x Change: 135805924
* Support negative indices in sparse_concat.Gravatar A. Unique TensorFlower2016-09-22
| | | | Change: 133923136
* Add a new SparseReduceSumSparse op that sums a SparseTensor with a SparseTensorGravatar Jonathan Hseu2016-09-12
| | | | | | | | output. Also add a SparseTensorReduceHelper function that generalizes reductions on SparseTensors. Change: 132883606
* Enable C++ shape function for math_ops.py and array_ops.cc shape functions thatGravatar A. Unique TensorFlower2016-09-02
| | | | | don't require access to the input tensor values. Change: 132071962
* Automated rollback of change 131739513Gravatar A. Unique TensorFlower2016-08-31
| | | | Change: 131887027
* Enable C++ shape function for math_ops.py and array_ops.cc shape functions thatGravatar A. Unique TensorFlower2016-08-30
| | | | | | | | | | | | | don't require access to the input constant tensor, and for which the C++ function's behavior matches python. Fix rank check in C++ BatchMatMul shape function. Fix rank check in C++ sparse cwise shape function. Add an option on common_shapes.call_cpp_shape_fn to verify against the python shape function. This is meant to be called only when preparing a change to switch shape functions over. Change: 131739513
* Add shape_inference::ShapeHandle and shape_inference::DimensionHandle toGravatar A. Unique TensorFlower2016-08-23
| | | | | | | | replace uses of const Shape* and const Dimension*. This change only adds a typedef and updates references. A later change will make DimensionHandle and ShapeHandle real types instead of typedefs (to further hide the pointer access). Change: 131118981
* Add C++ shape inference for SVD.Gravatar A. Unique TensorFlower2016-08-04
| | | | | | | | This also adds Min(), Max(), and Subtract() operators and a few convenience methods to the InferenceContext. Change test utils to emit a human readable error message in case the user forgot to set the inference function. Refactored shape_inference* a bit to enforce the invariant that a Dimension or DimensionOrConstant is always non-negative or equal to InferenceContext::kUnknownDim. This made it possible to tighten & simplify the arithmetic operations a bit. Change: 129385995
* SparseDense C++ shape inference.Gravatar Suharsh Sivakumar2016-07-29
| | | | Change: 128867752
* Translate shape inference functions for sparse_ops to C++.Gravatar A. Unique TensorFlower2016-07-21
| | | | | | | | | Change shape_inference::InferenceContext::MakeShapeFromShapetensor to handle the case where the shape tensor is not known but the rank of the shape tensor is. Add shape_inference::NumElements(). Change: 128124939
* Support Sparse-Sparse cwise ops; use for tf.sparse_{minimum,maximum}().Gravatar Zongheng Yang2016-07-01
| | | | | | This change adds the CPU kernel and Python ifaces. For now, assumes both operands have the same shapes. Change: 126460669
* Automated rollback of change 126348349Gravatar Zongheng Yang2016-06-30
| | | | Change: 126366720
* Support Sparse-Sparse cwise ops; use for tf.sparse_{minimum,maximum}().Gravatar Zongheng Yang2016-06-30
| | | | | | This change adds the CPU kernel and Python ifaces. For now, assumes both operands have the same shapes. Change: 126348349
* Fix the doc strings and Attrs in Op registrations to conform toGravatar Manjunath Kudlur2016-06-14
| | | | | the correct syntax. Change: 124879813
* Add SparseReshape op for reshaping SparseTensorsGravatar A. Unique TensorFlower2016-06-12
| | | | | SparseReshape has the same semantics as Reshape on a dense tensor. Change: 124662721
* Update copyright for 3p/tf/core.Gravatar A. Unique TensorFlower2016-06-02
| | | | Change: 123900938
* Supports negative axes for sparse_reduce_sum().Gravatar Zongheng Yang2016-05-25
| | | | | | Useful for cases where the rank of the sparse input is dynamic/unknown, and the desired axes are static constants (e.g., -1). Change: 123262728
* Add sparse_softmax() op.Gravatar Zongheng Yang2016-05-24
| | | | Change: 123133067
* Register a new SparseDenseCwiseAdd op and add its Python sugar.Gravatar Zongheng Yang2016-05-24
| | | | | | | It has the special semantics in that not all dense-side values participate in the calculation. Hence, we do not override the Python "+" (__add__) operator. Change: 123118195
* Introduce common cwise code for "sparse <op> dense"; use for cdiv, cmul.Gravatar Zongheng Yang2016-05-05
| | | | | Currently it supports broadcasting the dense side to the sparse side only. Change: 121602996
* Introduce tf.sparse_reduce_sum() and a CPU kernel.Gravatar Zongheng Yang2016-04-18
| | | | Change: 120183287
* Implement SparseTensor + (dense) Tensor.Gravatar Zongheng Yang2016-04-15
| | | | | | | | Usage: `tf.sparse_add(sp_tensor, tensor)`; CPU only for now. The newly introduced ScatterNdFunctor can later be extended to handle ScatterNd{Update,Add,Sub} ops, similar to the existing GatherNd op. Change: 120018023
* Implement gradients for SparseAdd.Gravatar Zongheng Yang2016-03-25
| | | | Change: 118216819
* Add a SparseAdd op that adds up two SparseTensors.Gravatar Zongheng Yang2016-03-21
| | | | | This CL provides a CPU kernel implementation. Change: 117778151
* Added SparseDenseMatMul Op.Gravatar Eugene Brevdo2016-02-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmarks: $ .../tensorflow/python/sparse_tensor_dense_matmul_op_test --benchmarks DenseDense MatMul (w/ Sparse Flag) vs. SparseDense MatMul Matrix sizes: A sparse [m, k] with % nonzero values between 1% and 80% B dense [k, n] % nonzero n gpu m k dt(dense) dt(sparse) dt(sparse)/dt(dense) 0.01 1 True 100 100 0.000198262 9.8618e-05 0.497413 0.01 1 True 100 1000 0.000308075 9.71129e-05 0.315225 0.01 1 True 1000 100 0.000297211 9.97391e-05 0.335583 0.01 1 True 1000 1000 0.000749049 0.00011149 0.148842 0.01 1 False 100 100 0.000207866 9.79061e-05 0.471006 0.01 1 False 100 1000 0.000306979 9.8314e-05 0.320263 0.01 1 False 1000 100 0.000297263 9.7379e-05 0.327585 0.01 1 False 1000 1000 0.000858516 0.000112162 0.130647 0.01 10 True 100 100 0.000201347 9.71699e-05 0.482599 0.01 10 True 100 1000 0.00031786 0.000132792 0.417769 0.01 10 True 1000 100 0.000309127 0.000128658 0.416198 0.01 10 True 1000 1000 0.000779245 0.000133656 0.17152 0.01 10 False 100 100 0.000204979 9.80191e-05 0.478191 0.01 10 False 100 1000 0.000313234 0.000147974 0.472406 0.01 10 False 1000 100 0.00030785 0.000128056 0.415969 0.01 10 False 1000 1000 0.000797414 0.00013211 0.165673 0.01 25 True 100 100 0.000207293 0.000120325 0.580458 0.01 25 True 100 1000 0.000323452 0.000144444 0.44657 0.01 25 True 1000 100 0.000380279 0.000160515 0.422098 0.01 25 True 1000 1000 0.000859035 0.000211458 0.246158 0.01 25 False 100 100 0.000209623 0.000121898 0.58151 0.01 25 False 100 1000 0.000323748 0.000142495 0.440142 0.01 25 False 1000 100 0.000382699 0.000160281 0.418818 0.01 25 False 1000 1000 0.000840479 0.000211661 0.251834 0.2 1 True 100 100 0.000204974 9.70461e-05 0.473455 0.2 1 True 100 1000 0.000346863 0.000153119 0.441439 0.2 1 True 1000 100 0.000320219 0.000115405 0.360393 0.2 1 True 1000 1000 0.00100825 0.000204601 0.202927 0.2 1 False 100 100 0.000216355 9.8609e-05 0.455774 0.2 1 False 100 1000 0.000346128 0.000153136 0.442426 0.2 1 False 1000 100 0.000352324 0.00011737 0.333131 0.2 1 False 1000 1000 0.000990642 0.000205285 0.207224 0.2 10 True 100 100 0.000210795 0.000123959 0.588055 0.2 10 True 100 1000 0.000389961 0.000163421 0.41907 0.2 10 True 1000 100 0.000337358 0.000150689 0.446674 0.2 10 True 1000 1000 0.00108544 0.000857206 0.789729 0.2 10 False 100 100 0.000211931 0.000122924 0.580019 0.2 10 False 100 1000 0.00038925 0.000165562 0.425336 0.2 10 False 1000 100 0.000334816 0.000151162 0.451478 0.2 10 False 1000 1000 0.00109655 0.000843113 0.768877 0.2 25 True 100 100 0.000220397 0.000142263 0.645486 0.2 25 True 100 1000 0.000401368 0.000302446 0.753538 0.2 25 True 1000 100 0.000410934 0.000279523 0.680214 0.2 25 True 1000 1000 0.00127376 0.00244192 1.9171 0.2 25 False 100 100 0.000222309 0.000142203 0.639663 0.2 25 False 100 1000 0.000408741 0.000304749 0.745579 0.2 25 False 1000 100 0.000419264 0.000307255 0.732844 0.2 25 False 1000 1000 0.00126944 0.00249004 1.96152 0.5 1 True 100 100 0.00023428 0.000102918 0.439295 0.5 1 True 100 1000 0.000427166 0.000237494 0.555976 0.5 1 True 1000 100 0.000380724 0.00012818 0.336674 0.5 1 True 1000 1000 0.00160976 0.000481297 0.298987 0.5 1 False 100 100 0.000222527 0.000103388 0.464609 0.5 1 False 100 1000 0.000411102 0.000228725 0.556371 0.5 1 False 1000 100 0.000355794 0.000123535 0.347209 0.5 1 False 1000 1000 0.00141619 0.000490552 0.346388 0.5 10 True 100 100 0.000227675 0.000122795 0.539343 0.5 10 True 100 1000 0.000457623 0.000332977 0.727623 0.5 10 True 1000 100 0.000383134 0.000230231 0.600915 0.5 10 True 1000 1000 0.00156323 0.00226315 1.44774 0.5 10 False 100 100 0.000229292 0.000123618 0.539129 0.5 10 False 100 1000 0.000472363 0.000333602 0.706241 0.5 10 False 1000 100 0.000377634 0.000231078 0.61191 0.5 10 False 1000 1000 0.00157633 0.00225711 1.43188 0.5 25 True 100 100 0.000233055 0.00016205 0.695329 0.5 25 True 100 1000 0.000494024 0.000650206 1.31614 0.5 25 True 1000 100 0.00045893 0.000600457 1.30838 0.5 25 True 1000 1000 0.00186364 0.00606201 3.25278 0.5 25 False 100 100 0.000228475 0.00016268 0.712026 0.5 25 False 100 1000 0.000493242 0.000646534 1.31078 0.5 25 False 1000 100 0.000460567 0.000595119 1.29214 0.5 25 False 1000 1000 0.00167901 0.00613069 3.65137 0.8 1 True 100 100 0.000217078 0.000122763 0.565525 0.8 1 True 100 1000 0.000427521 0.000351477 0.822128 0.8 1 True 1000 100 0.0003469 0.000141773 0.408685 0.8 1 True 1000 1000 0.00148282 0.000691401 0.466273 0.8 1 False 100 100 0.000213548 0.000123152 0.576695 0.8 1 False 100 1000 0.000439499 0.000354205 0.805929 0.8 1 False 1000 100 0.000374365 0.000143963 0.384552 0.8 1 False 1000 1000 0.00138026 0.000737316 0.534186 0.8 10 True 100 100 0.000225083 0.00012419 0.551751 0.8 10 True 100 1000 0.000497607 0.000566593 1.13864 0.8 10 True 1000 100 0.000380098 0.000323333 0.850657 0.8 10 True 1000 1000 0.00164113 0.00375094 2.28558 0.8 10 False 100 100 0.00023011 0.0001231 0.534962 0.8 10 False 100 1000 0.000497115 0.000599468 1.20589 0.8 10 False 1000 100 0.000378207 0.000321302 0.849539 0.8 10 False 1000 1000 0.00163274 0.00371959 2.27813 0.8 25 True 100 100 0.000232235 0.000179456 0.772734 0.8 25 True 100 1000 0.000565002 0.00108429 1.91909 0.8 25 True 1000 100 0.000462347 0.000887741 1.92007 0.8 25 True 1000 1000 0.00187698 0.0105369 5.61375 0.8 25 False 100 100 0.00024654 0.000194484 0.788853 0.8 25 False 100 1000 0.000572626 0.00111752 1.95156 0.8 25 False 1000 100 0.000471096 0.000893812 1.8973 0.8 25 False 1000 1000 0.00188041 0.0104448 5.55452 Change: 114590991
* Added 'logging' import to control_flow_ops which is used in the file but not ↵Gravatar A. Unique TensorFlower2016-01-05
| | | | | | imported. Change: 110842260
* TensorFlow: merge changes from internalGravatar Vijay Vasudevan2015-12-11
| | | | | | | | | | | | Change 110010103 Implementing SparseSplitOp. The op takes a sparse tensor (list, values and shape), split_dim and num_splits and produces a list of num_splits tensors where the shape of each tensor is the shape of the original tensor except split_dim = shape[split_dim +num_split - 1 / num_split]. in case if shape[split_dim] is not an integer multiple of num_split an extra one dimension get added to the slices starting from 0. For example if the input shape is a [2, 10] split_dim = 1, num_split = 3 output shapes will be [[2, 4], [2, 4], [2, 2]]. The Op register shape to [Unknown, dim] for indices tensors and [Unknown] for the values tensor because shape can't be inferred without evaluate input tensors. Base CL: 110012853
* TensorFlow: upstream changes to git.Gravatar Vijay Vasudevan2015-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 109695551 Update FAQ Change 109694725 Add a gradient for resize_bilinear op. Change 109694505 Don't mention variables module in docs variables.Variable should be tf.Variable. Change 109658848 Adding an option to create a new thread-pool for each session. Change 109640570 Take the snapshot of stream-executor. + Expose an interface for scratch space allocation in the interface. Change 109638559 Let image_summary accept uint8 input This allows users to do their own normalization / scaling if the default (very weird) behavior of image_summary is undesired. This required a slight tweak to fake_input.cc to make polymorphically typed fake inputs infer if their type attr is not set but has a default. Unfortunately, adding a second valid type to image_summary *disables* automatic implicit conversion from np.float64 to tf.float32, so this change is slightly backwards incompatible. Change 109636969 Add serialization operations for SparseTensor. Change 109636644 Update generated Op docs. Change 109634899 TensorFlow: add a markdown file for producing release notes for our releases. Seed with 0.5.0 with a boring but accurate description. Change 109634502 Let histogram_summary take any realnumbertype It used to take only floats, not it understands ints. Change 109634434 TensorFlow: update locations where we mention python 3 support, update them to current truth. Change 109632108 Move HSV <> RGB conversions, grayscale conversions, and adjust_* ops back to tensorflow - make GPU-capable version of RGBToHSV and HSVToRGB, allows only float input/output - change docs to reflect new size constraints - change HSV format to be [0,1] for all components - add automatic dtype conversion for all adjust_* and grayscale conversion ops - fix up docs Change 109631077 Improve optimizer exceptions 1. grads_and_vars is now a tuple, so must be wrapped when passed to format. 2. Use '%r' instead of '%s' for dtype formatting Base CL: 109697989
* TensorFlow: Improve performance of AlexnetGravatar Manjunath Kudlur2015-11-20
| | | | | | | | | | | | | | | | | | | | | | Changes: * error message that refers to removed `DefaultSession` method. * -Wnull-conversion warnings * the "_start_time" attr for recvs when the flag "--brain_enable_scheduling_for_recvs" is set. * typo in tutorial data download progress message. * a typo ("however their installing"=>"however installing"). * typo, rename "TensorFlow Mechanics" to "How To" to be consistent with the website. * a typo ("subtact"=>"subtract"). * protobuf examples in comments in tensorflow::Example.proto. * formula formatting in MNIST beginner tutorial * negative fraction-of-queue-full stats * protobuf inclusion path so that Android demo will build under Blaze. * small typo (moderatly > moderately) * Session.run() to check that tensor arguments come from the session's graph. * another six import * seq2seq typo in bazel command Base CL: 108349164
* TensorFlow: Initial commit of TensorFlow library.Gravatar Manjunath Kudlur2015-11-06
TensorFlow is an open source software library for numerical computation using data flow graphs. Base CL: 107276108