Merge changes from github.
END_PUBLIC --- Commitf0e185d1f
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Better handle nodes with a variable number of outputs PiperOrigin-RevId: 158435028 --- Commitbc3e20807
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unused BUILD dependencies PiperOrigin-RevId: 158431059 --- Commita0c80e4d5
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Delete unnecessary (mistakenly duplicated) logging message. PiperOrigin-RevId: 158428506 --- Commitb6ad1d747
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds DNN-only tests for DNNLinearCombinedClassifier. PiperOrigin-RevId: 158423119 --- Commitddbb58034
authored by Shanqing Cai<cais@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unnecessary pylint disable PiperOrigin-RevId: 158416140 --- Commitfcaa724e2
authored by Luke Iwanski<luke@codeplay.com> Committed by gunan<gunan@google.com>: [OpenCL] Cleans pack and unpack ops (#10336) * [OpenCL] Cleans pack op * [OpenCL] Cleans unpack op --- Commit2f53cacb2
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix a test failure of quantization_utils_test on ASAN PiperOrigin-RevId: 158414538 --- Commit50b2f951c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 158413455 --- Commit1e90b78e9
authored by Brennan Saeta<saeta@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add CacheDataset ops. Some input pipelines may pull down data from remote webservers or perform expensive processing. In order to avoid extraneous work, we now support caching the dataset (e.g. on disk). PiperOrigin-RevId: 158411901 --- Commite16cd2ede
authored by Taehoon Lee<taehoonlee@snu.ac.kr> Committed by gunan<gunan@google.com>: Fix typos (#10533) --- Commit50d80ddf9
authored by Jonathan Hseu<jhseu@google.com> Committed by Jonathan Hseu<jhseu@google.com>: Fix fft_ops_test.py for CPU --- Commitd35cbbb44
authored by Mustafa Ispir<ispir@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add weight-column support to the heads. PiperOrigin-RevId: 158409180 --- Commit7fb52cd54
authored by Justin Lebar<jlebar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Don't crash when displaying XLA metrics if they happen to be negative. PiperOrigin-RevId: 158407664 --- Commit12a7a752a
authored by Jianfei Wang<me@thinxer.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Add a tip for tf.train.LoggingTensorHook (#10237) `INFO` logs are not printed by default unless in IPython. Add a friendly tip for newcomers. --- Commit216dcbf1e
authored by Luke Iwanski<luke@codeplay.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: [OpenCL] Cleans reduction ops (#10340) * [OpenCL] Cleans reduction_ops_max.cc * [OpenCL] Cleans reduction_ops_mean.cc * [OpenCL] Cleans reduction_ops_min.cc * [OpenCL] Cleans reduction_ops_prod.cc * [OpenCL] Cleans reduction_ops_sum.cc --- Commit2b351062a
authored by Androbin<robin.richtsfeld@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Improve docs for selective registration headers (#10351) * Improve docs for selective registration headers progressing #10299 * Update print_selective_registration_header.py * Mention both flags -DSELECTIVE_REGISTRATION and -DSUPPORT_SELECTIVE_REGISTRATION --- Commitee919510f
authored by Yun Peng<pcloudy@google.com> Committed by gunan<gunan@google.com>: Re-enable some python tests in Windows Bazel build (#10526) --- Commitb0e881457
authored by Androbin<robin.richtsfeld@gmail.com> Committed by gunan<gunan@google.com>: [Bash] Declare and assign separately (#10509) As proposed by static analysis tool: https://github.com/koalaman/shellcheck/wiki/SC2155 --- Commit284901b08
authored by Androbin<robin.richtsfeld@gmail.com> Committed by gunan<gunan@google.com>: [Bash] Remove unquoting quotes (#10506) As proposed by static analysis tool: https://github.com/koalaman/shellcheck/wiki/SC2027 --- Commit2a1f11556
authored by ksellesk<zhengdachuan200305@gmail.com> Committed by ksellesk<zhengdachuan200305@gmail.com>: Fix AttributeError in resnet.py There is no function tf.softmax() in Tensorflow 1.x. When running the old code, Python interpreter complains: File "resnet.py", line 152, in res_net_model prediction, loss = res_net(x, y) File "resnet.py", line 148, in res_net return tf.softmax(logits), loss AttributeError: 'module' object has no attribute 'softmax' --- Commit1d68f729b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unneeded BUILD dependency PiperOrigin-RevId: 158391996 --- Commit08ed32dbb
authored by Yun Peng<pcloudy@google.com> Committed by gunan<gunan@google.com>: Windows: Make TensorFlow build without --cpu=x64_windows_msvc (#10466) * Windows: Make TensorFlow build without --cpu=x64_windows_msvc Since from Bazel 0.5.0, MSVC toolchain became the default toolchain on Windows. So --cpu=x64_windows_msvc is not required as long as we adjust the BUILD files in TensorFlow. --cpu=x64_windows_msvc is also supported for now, but is depracated. The configuration for cpu value x64_windows_msvc is a duplicate of x64_windows, which should be removed in the future. * Fix breakage on macOS --- Commit02dbe153a
authored by Androbin<robin.richtsfeld@gmail.com> Committed by gunan<gunan@google.com>: [Bash] Simplify Conditional (#10503) --- Commitc07bc581f
authored by Androbin<robin.richtsfeld@gmail.com> Committed by gunan<gunan@google.com>: [Bash] Prefer read -a to split path (#10508) As proposed by static analysis tool: https://github.com/koalaman/shellcheck/wiki/SC2207 --- Commit0a389674d
authored by Androbin<robin.richtsfeld@gmail.com> Committed by gunan<gunan@google.com>: [Bash] Prefer [ p ] && [ q ] over [ p -a q ] (#10507) As proposed by static analysis tool: https://github.com/koalaman/shellcheck/wiki/SC2166 --- Commit87a008ec3
authored by Jonathan Hseu<vomjom@vomjom.net> Committed by gunan<gunan@google.com>: Delete non-deterministic testEmpty() test (#10512) --- Commit3a2971bd8
authored by Frank Chen<frankchn@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds the base for ClusterResolvers, a new way of communicating with and retrieving cluster information for running distributed TensorFlow. Implementations of this class would eventually allow users to simply point TensorFlow at a cluster management endpoint, and TensorFlow will automatically retrieve the host names/IPs and port numbers of TensorFlow workers from the cluster management service. PiperOrigin-RevId: 158358761 --- Commit28b4e7f04
authored by Jonathan Hseu<vomjom@vomjom.net> Committed by gunan<gunan@google.com>: Disable stage_op_test and map_stage_op_test (#10516) --- Commit390e57a75
authored by Yan (Asta) Li<yanastali@users.noreply.github.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: Check EIGEN_MAX_ALIGN_BYTES to prevent mod-by-0 (#10380) * Check EIGEN_MAX_ALIGN_BYTES to prevent mod-by-0 If EIGEN_MAX_ALIGN_BYTES is set to 0, alignment checks that mod by EIGEN_MAX_ALIGN_BYTES fail at runtime. * Returns true, as in tensorflow/core/framework/tensor.h * Update unit tests * Enable tests only if EIGEN_MAX_ALIGN_BYTES > 0 --- Commitcd5ac40b3
authored by Peter Hawkins<phawkins@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Update LLVM to upstream revision r304927. Add LLVM build rules for the LLVM AMDGPU backend, commented out by default. Fixes issue #10437. PiperOrigin-RevId: 158351480 --- Commit91cb809bd
authored by David Norman<DavidNorman@users.noreply.github.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: [XLA] Add ability to run the XLA unit tests against a different device (#9759) * Add ability to run the XLA unit tests against a different device * Allow for multiple extra backend devices * Correct merge error * Include options for additional tags --- Commitaff4d124b
authored by Yuxin Wu<ppwwyyxxc@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Compare base_dtype instead of dtype in piecewise_constant (#10280) * Compare base_dtype instead of dtype in piecewise_constant Compare base_dtype instead of dtype in piecewise_constant. Fix #10086 * add unit test * Small lint fix and comment --- Commit845539f98
authored by Jianwei Xie<xiejw@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add evaluation test for linear classifier (n==2 or n >2). PiperOrigin-RevId: 158340296 --- Commit7c46214ab
authored by Jonathan Hseu<vomjom@vomjom.net> Committed by GitHub<noreply@github.com>: Fix numpy 1.13 incompatibilities (#10501) * Fix numpy 1.13 incompatibilities * Skip tests with numpy 1.13.0 --- Commit4572c41df
authored by gunan<gunan@google.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: A few changes to kernel_tests. (#10502) * Disable reader_ops_test on windows. * Run buildifier on kernel_tests/BUILD * Mark map_stage_op_test as large. * Set the size of stage_op_test to large --- Commit892293d98
authored by Brennan Saeta<saeta@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Set a default for datasets end_of_sequence. While all datasets carefully set the end_of_sequence to true at the appropriate time, some datasets might forget to set it to false in the normal case. In order to avoid potential undefined behavior, we set the end_of_sequence variable to be false by default. PiperOrigin-RevId: 158337799 --- Commit187404eac
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Setup the env to since ops such as MatchFileOp rely on it. PiperOrigin-RevId: 158336344 --- Commit2741561c8
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix up vz_projector script structure We now make sure scripts and HTML imports are declared in the correct places. In the future, pedantically listing script tags should not be necessary. PiperOrigin-RevId: 158334306 --- Commitbeeaade46
authored by Kay Zhu<kayzhu@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Resubmit a reverted change. Original description: [XLA] Enable HloEvaluator for constant folding, also merged a few operations from hlo_constant_folding to hlo_evaluator. Additionally: - In ShapeUtil::ForEachIndex: * fix a bug where visitor is called when the shape has zero elements (e.g., F32{1,0}) * added test case for ForEachIndex. - In HloEvaluator: * Instead of copying and caching a Constant instruction, return the literal directly if the instruction is constant. * Fix an issue where TUPLE and OPAQUE primitives are not keyed in the templated typed_visitor. * Use (fixed) LiteralUtil::Populate to populate resulting literal, fixes the preexisting bug in the evaluator where R0 and shape with zero size dimensions are not handled. * Refactor ElementWiseUnaryOp and HandleCompare to be templatized on the operand's type. * Refactor IsFinite to be top level since it is only applicable to floats and the return type is always boolean. * Change from std::remainder to std::fmod for kRemainder to be compliant with existing XLA behavior. * Change from std::max and std::min to std::fmax and std::fmin to handle NaNs. * Minor comments fix. PiperOrigin-RevId: 158330052 --- Commitb94540e6f
authored by Toby Boyd<tobyboyd@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: tf.layers.conv2d use_bias=True to use nn.bias_add PiperOrigin-RevId: 158326493 --- Commit379aa9911
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Go: Update generated wrapper functions for TensorFlow ops. PiperOrigin-RevId: 158325855 --- Commit4e529f0f1
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 158325293 --- Commit0a9d2dac0
authored by Yuefeng Zhou<yuefengz@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add a util function in virtual placer to return canonicalized device string, which can be used to fix the node's device field before passing them to the maxcut algorithm. PiperOrigin-RevId: 158322753 --- Commit2d8da1d9b
authored by Daniel Ylitalo<daniel@blodan.se> Committed by gunan<gunan@google.com>: Recognize CPU core count in FreeBSD (#10490) --- Commitc19e6cac0
authored by Peter Hawkins<phawkins@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [TF:XLA] Initial implementation of TensorArray ops. The XLA implementation of TensorArrays is more restrictive than regular TensorArrays: * XLA TensorArrays must have dynamic_size=False. * all elements in an XLA TensorArray must have the same shape. * writes always add their values to any existing values; neither reads nor writes ever issue errors. Out-of-bounds writes currently wrap. Refactor Variable handling in the TF/XLA bridge. Use a XlaVariable* to refer to variables inside compilation rather than a numerical ID. Allow for variables that don't correspond to variables known to the user. Also use XlaVariable to handle TensorArrays. PiperOrigin-RevId: 158322041 --- Commitb5e8d3086
authored by Peter Hawkins<phawkins@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [TF:XLA] Refactor randomized tests to allow testing of larger inputs without running out of memory. PiperOrigin-RevId: 158321431 --- Commit5d90bbaac
authored by Kay Zhu<kayzhu@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Disable constant_folding in test base, so that intended test code paths would not be elided by constant_folding pass. PiperOrigin-RevId: 158317641 --- Commit036ce8ba6
authored by Luke Iwanski<luke@codeplay.com> Committed by gunan<gunan@google.com>: [OpenCL] Cleans dense_update_ops (#10335) * [OpenCL] Cleans dense_update_ops * Acts on feedback from: #10335#discussion_r120536460 --- Commit85f968125
authored by Luke Iwanski<luke@codeplay.com> Committed by gunan<gunan@google.com>: [OpenCL] Cleans cast operation (#10330) * [OpenCL] Removes not needed typedef for SYCLDevice * [OpenCL] Fixes formatting * [OpenCL] use SYCLDevice for int32 cast case --- Commitbff5e72da
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix typo. PiperOrigin-RevId: 158310742 --- Commit38249d6be
authored by Shanqing Cai<cais@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Swap the order of NanTensorHook and custom hooks to ensure that when the training encounteres NaN's in the loss function, user-supplied hooks such as tf_debug.LocalCLIDebugHook can still be used to debug the root cause of the numeric issues. PiperOrigin-RevId: 158310249 --- Commit599727c65
authored by Eli Bendersky<eliben@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Propagate debug option flags to hlo_test_base. Specific HLO tests have to replace the generic test_main target with a manual main() that invokes RUN_ALL_TESTS. To get access to a module with debug options set up, a new convenience method is created on HloTestBase. Initially algebraic_simplifier_test is modified as a canary; in a followup we'll convert all HLO tests to this approach. PiperOrigin-RevId: 158309488 --- Commit0770393e9
authored by Eric Liu<ioeric@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [Tensorboard] Add a trace viewer component to TensorBoard. We make the trace viewer a separate app; otherwise, there would be dependency conflicts (e.g. Polymer) between the trace viewer app and the tensorboard app. The trace viewer app would be served by a plugin, and Tensorboard dashboard will integrate trace viewer app using iframe in the future. This CL also added "mominify" support for link import HTML tags in the tensorboard home-grown java vulnizer; otherwise, the vulcanized trace viewer code would crash the java vulcanizer. For open-source build, we add a denpendency on the Catapult github repository (https://github.com/catapult-project/catapult/tree/master/tracing). We use a bazel genrule to vulcanize a trace viewer binary which is then used in the tf-trace-viewer component. PiperOrigin-RevId: 158309408 --- Commit85e832201
authored by RJ Ryan<rjryan@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Support unknown emit shapes in tf.nn.raw_rnn. PiperOrigin-RevId: 158308002 --- Commitedb5fed7f
authored by Mustafa Ispir<ispir@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add label-vocab support to binary logistic head. Add assertion that binary classifier label is in range [0., 1.] Fixed Classifier Integration tests. PiperOrigin-RevId: 158307521 --- Commitf8e1cf8fa
authored by Justine Tunney<jart@google.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Open up visibility of tf_imports (#10500) This also fixes the definition of Clutz. --- Commit9fd7cf054
authored by Luke Iwanski<luke@codeplay.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: [OpenCL] Cleans relu ops (#10343) * [OpenCL] register relu ops to gpu types (no half) * [OpenCL] Removes #undef EIGEN_USE_SYCL --- Commit09c1455e3
authored by Luke Iwanski<luke@codeplay.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: [OpenCL] Cleans reverse_op.cc (#10346) --- Commitb7892a30f
authored by orome<royl@aldaron.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Clarify tf.matmul documentation (#10381) * Update math_ops.py * Fix non-ascii character --- Commit9786b7062
authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Cleans StridedSlice Op (#10314) * [OpenCL] Cleans StridedSlice Op * [OpenCL] Removes half from registred types --- Commitf105df047
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: In the CUDA path of depthwise_conv2d, optimize backward filter convolution for images 2 or 4 times smaller than 16x16. Also initialize in_cols from blockDim, to fix the regression caused in CL 157906773. PiperOrigin-RevId: 158296136 --- Commit492afc2e3
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Go: Update generated wrapper functions for TensorFlow ops. PiperOrigin-RevId: 158295169 --- Commitabe0877ef
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add bazel version check to .configure PiperOrigin-RevId: 158294569 --- Commitb702e7e79
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 158294289 --- Commit94085bee7
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Replace std::function object with regular function. The function is called recursively, and the std::function object had only existed to allow recursion from within a lambda expression. A regular function should be cheaper than a polymorphic function wrapper. PiperOrigin-RevId: 158292415 --- Commitba656b261
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use template specialization instead of overloaded methods. This is a more appropriate tool here. NFC PiperOrigin-RevId: 158292035 --- Commit55f987692
authored by Yutaka Leon<yleon@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make tf.contrib.lookup python functions use the kernels v2 that uses the resource tensor as handler. PiperOrigin-RevId: 158291836 --- Commitebae3deba
authored by Wei Ho<weiho@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Switch back to max_num_rows_to_load instead of reading slice by slice due to performance regression from network overhead. Add check when using initializing values to avoid seg fault PiperOrigin-RevId: 158291218 --- Commit7b4c01794
authored by RJ Ryan<rjryan@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Support numpy-style padding and slicing of tf.spectral.rfft/irfft to match the desired FFT length. Fixes incorrect RFFT/IRFFT results when fft_length does not match the input dimension. PiperOrigin-RevId: 158289991 --- Commitfdb8e2935
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update iOS examples to use CocoaPods, and moved to tensorflow/examples/ios PiperOrigin-RevId: 158289285 --- Commitd86167b5f
authored by Amit Patankar<amitpatankar@google.com> Committed by Amit Patankar<amitpatankar@google.com>: Merging rc2 back into master. --- Commitdffea202a
authored by Eli Bendersky<eliben@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Clean up some code after previous CL PiperOrigin-RevId: 158282834 --- Commit7b5302af0
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds ability to set a "family" attribute in Tensorflow summaries, which controls the "tab name" of the summary that is displayed. This solution keeps using name_scope to keep names unique, but then prefixes the tag with the family name if provided. PiperOrigin-RevId: 158278922 --- Commit611c82b5b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds integration test for DNNLinearCombined((Classifier)|(Regressor)). PiperOrigin-RevId: 158278512 --- Commitcc6c91a9a
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove a further unused proto header inclusion PiperOrigin-RevId: 158278026 --- Commit9f17c26ca
authored by Mark Heffernan<meheff@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Add HloLocation to dataflow analysis. Add an HloLocation abstraction to dataflow analysis which indicates where (in the output of what instruction and at which index) an HloValue may appear. Previously only uses were stored with an HLO value where a use is an edge in the HLO graph (instruction, operand number and ShapeIndex). Also, change the handling of tuple-shaped kSelect instructions when ssa_form is true. Previously a phi value would be created. With this change the the value set instead contains the union of it's inputs identical to the ssa_form=false case. PiperOrigin-RevId: 158276598 --- Commitb9d5e1441
authored by Eli Bendersky<eliben@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Start collecting flags for debug options in a single place. ClientLibraryTestBase will now parse command-line flags for debug options automatically, permitting subclasses to override certain options by using mutable_debug_options. main() still has to call AppendDebugOptionsFlags() explicitly before running the TF flag parser. In the mean-time, this CL leaves flag handling to the current "legacy" approach. However, this is part of a larger plan to move *all* debugging flags for XLA into the DebugOptions message and expose them as flags from a single place. The other flags (which are not controlling debugging options) will have to be propagated more explicitly. PiperOrigin-RevId: 158276294 --- Commit3b6fe94bb
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Properly handle shape nodes that have a preexisting control dependency PiperOrigin-RevId: 158274845 --- Commit1d67379d5
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Minor cleanup PiperOrigin-RevId: 158268933 --- Commit41997756c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Sort header inclusions; define EIGEN_USE_THREADS where headers depend on it. PiperOrigin-RevId: 158267803 --- Commit85355f015
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add missing header inclusion PiperOrigin-RevId: 158265934 --- Commit3cf88d390
authored by Gunhan Gulsoy<gunan@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: When GPU is configured, do not require --config=cuda. Also fix indentation in configure. PiperOrigin-RevId: 158232959 --- Commitf48673b50
authored by Luke Iwanski<luke@codeplay.com> Committed by gunan<gunan@google.com>: [OpenCL] Removes ReductionFunctor for SYCLDevice (#10326) We are using Eigen implementation --- Commit1b6453bec
authored by Joan Puigcerver<joapuipe@gmail.com> Committed by gunan<gunan@google.com>: Fixes issue #10258 (#10366) On CUDA versions previous to 8.0, only __shared__ variables could be declared as static in the device code. --- Commitcd56a638d
authored by Beomsu Kim<123bskim@naver.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Fixed wrong range in docstring (#10272) --- Commitd13ae380c
authored by Micha? Jastrz?bski<michal.jastrzebski@intel.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Fix CMD in Dockerfile (#10444) Currently Notebook fails execution because default user for this container is root, and unless explicitly allowed, jupyter notebook will not start. --- Commit8118ab4ec
authored by Simon Perkins<simon.perkins@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Support partial gets in MapStagingArea (#10276) * Modify map staging area tests - size from `small` to `medium` - introduce 2 shards * Add partial get support in MapStagingArea A partial list of tensors in a (key, value) map entry can now be requested. Once all tensors associated with the entry are removed, it is removed from the map. * Correct output/indices mismatch errors * Rename IncompleteTuple to OptionalTuple * Add partial get test with indices * Add some more index checks * Improve stage test case graph creation Test sessions (and default graphs) are reused by default. Create explicit, finalized graphs in each test to prevent possible interactions between stateful Staging Areas and others ops created in separate tests. * Make staging area tests small and remove shards They were originally made 'medium' to ameliorate timeouts in the test case, but they usually run in ~1s so they should be small. * Improve imports Avoid importing base tensorflow package * Support both python 2 and python 3 range. * Set map_stage_op_test to size=large * Convert the tests to size=medium --- Commit0df102b0a
authored by Androbin<robin.richtsfeld@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Update `configure` script sample (#10455) The `configure` script was changed regularly since the generation of the sample. This PR updates the sample to reflect those changes. --- Commitf6dc1ac61
authored by Earthson Lu<Earthson.Lu@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: MKL_INSTALL_PATH should not be ignore when given (#10180) * MKL_INSTALL_PATH should not be clear when given * fix overwrite by default --- Commit8ad6a036e
authored by Asim Shankar<ashankar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Java: Update Maven release to 1.2.0-rc2 PiperOrigin-RevId: 158212897 --- Commit15eddf035
authored by Fritz Obermeyer<fritz.obermeyer@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Export C API symbols in _pywrap_tensorflow_internal.so (#10469) * Export C API symbols * Export C API symbols under config:default --- Commit754e12668
authored by Luke Iwanski<luke@codeplay.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: [OpenCL] Removes half concat op registration (#10331) --- Commitcfdc22dee
authored by Peng Yu<yupbank@users.noreply.github.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: fix the error (#10293) --- Commit58747e357
authored by Joel Hestness<jthestness@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: PhiloxRandom: Fix race in GPU fill function (#10298) * PhiloxRandom: Fix race in GPU fill function The PhiloxRandom fill kernel for the GPU had race conditions that caused the outputs to be non-deterministic. In particular, the code previously executed with N GPU threads (# thread contexts per GPU), but it would only advance the fill addresses by N-1 stride in each step. This incorrect stride caused the 0th and N-1st threads to write to the same memory locations, racing for which was last to write their common locations. Make the stride equal to the number of threads to eliminate the race. BONUS: By fixing this race, PhiloxRandom constant-sized GPU initializers now match CPU initializers. * Update random_ops_test.py to find race conditions Increasing the size of arrays in the random_ops_test.py test to manifest the race conditions to be resolved. --- Commit2cbcda08f
authored by Androbin<robin.richtsfeld@gmail.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Fixed formatting in Linux install guide (#10353) Formatting issues were introduced in PR #8825, commitf30918b369
--- Commitab5f38560
authored by Lakshay Garg<lakshayg@outlook.in> Committed by Jonathan Hseu<vomjom@vomjom.net>: Fixed typos in documentation & READMEs (#10365) --- Commit94dc1dbfa
authored by Christos Nikolaou<cNikolaou@users.noreply.github.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Enable figures in the tfprof README.md (#10372) --- Commit3018d4678
authored by Taehoon Lee<taehoonlee@snu.ac.kr> Committed by Jonathan Hseu<vomjom@vomjom.net>: Fix typos (#10386) --- Commitc5f3c6171
authored by Daniel Rasmussen<drasmuss@users.noreply.github.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Fix unbatch for Datasets with multiple elements (#10401) * Fix unbatch for datasets with multiple elements * fixup! pylint (indent two spaces instead of four) --- Commit8b065bc10
authored by Yong Tang<yong.tang.github@outlook.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: Fix unaligned args in api_docs/python/tf/contrib/learn/Evaluable (#10423) This commit fixes unaligned args in api_docs/python/tf/contrib/learn/Evaluable Signed-off-by: Yong Tang <yong.tang.github@outlook.com> --- Commit8f89b654f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Profile memory usage in VirtualScheduler and report peak memory usage. To do so, NodeState now handles different output ports of a node (in case a node has multiple outputs). Also, VirtualScheduler code is cleaned up with more comments. PiperOrigin-RevId: 158209068 --- Commit0ea0bf5aa
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add a frontend for viewing the first ops that exhibit bad values (NaN, +/- Inf). This helps the user identify problematic ops. Also moved the debugger data logic within tf-graph-info into a new tf-graph-debugger-data-card component. PiperOrigin-RevId: 158208679 --- Commited47ecf2d
authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Cleans variable op (#10333) * [OpenCL] Cleans variable op * Fixes formatting and float / double -> GPU_NUMBER_TYPES_NO_HALF --- Commit9b2c1af63
authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Improves device reporting (#10462) Prints: id, type, name, vendor and profile of the device --- Commit7f5384dcc
authored by Alexandre Passos<apassos@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Making load() work for resource variables. PiperOrigin-RevId: 158205361 --- Commit05412bd36
authored by Mark Heffernan<meheff@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Simplify Shape traversal visitors. Simplify shape traversal visitors in ShapeUtil and ShapeTree. Add a non-Status form because most uses of the traversal methods do not use it, and remove is_leaf parameter from ShapeTree.ForEach* as it is not frequently used. PiperOrigin-RevId: 158201574 --- Commit69c9365b4
authored by Mustafa Ispir<ispir@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Extracted linear estimator testing utils to be reused by dnn-linear-combined. Added tests for linear part of dnn-linear-combined estimator. PiperOrigin-RevId: 158200827 --- Commit65ce8c723
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add arrowheads to dataflow edges. Make reference edges orange. Remove animations from tooltips in the graph documentation. Previously, arrowheads were only added to reference edges (because we assumed users knew about the convention that arrowless edges flow upwards). That decision nicely reduces clutter. However, recently, some internal and external folks have expressed confusion, and so I want to try adding arrowheads to all data flow edges. And make the reference edges starkly different. See #10428 PiperOrigin-RevId: 158195388 --- Commitbf4c3dd6b
authored by gunan<gunan@google.com> Committed by GitHub<noreply@github.com>: Revert "Fix patching issue on Windows" (#10472) This reverts commit47e6785646
. --- Commitb49515539
authored by David Soergel<soergel@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add only string constants to ASSET_FILEPATHS collection. PiperOrigin-RevId: 158192152 --- Commit51acad09c
authored by Sergio Guadarrama<sguada@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add tests with different delta to huber_loss. PiperOrigin-RevId: 158191361 --- Commita4e7b7add
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fixes a bug in setting default optimizers for DNNLinearCombinedClassifier. PiperOrigin-RevId: 158190192 --- Commitddd67e333
authored by Luke Iwanski<luke@codeplay.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: [OpenCL] Cleans reshape.cc (#10347) * [OpenCL] Cleans reshape.cc * Removes half and complex numbers. Half is extension and complex numbers needs implementation in Eigen first --- Commit3ca653304
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 158186454 --- Commit8cda8660e
authored by Luke Iwanski<luke@codeplay.com> Committed by gunan<gunan@google.com>: [OpenCL] Cleans sendrecv_ops.cc (#10345) --- Commit6915bb919
authored by Luke Iwanski<luke@codeplay.com> Committed by gunan<gunan@google.com>: [OpenCL] Cleans Slice op (#10341) --- Commit54998b45d
authored by Michele Colombo<m-colombo@users.noreply.github.com> Committed by Jonathan Hseu<vomjom@vomjom.net>: BasicRNNCell comment fix (#10467) --- Commitdf5906fb7
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Mark saver/restore ops that depend on filesystem as stateful to disable them from being folded into a constant by graph optimizer. PiperOrigin-RevId: 158182282 --- Commit96cb4d182
authored by Sergio Guadarrama<sguada@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add support of scale_l1 == 0. or scale_l2 == 0 to l1_l2_regularizer. Added tests. PiperOrigin-RevId: 158179790 --- Commitb65eb3f9b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Speed up atrous_convolution_test by combining evaluations. To make this test run faster (and prevent it from timing out under certain circumstances), this change combines all evaluations for each test method into a single call to Session.run, to eliminate overhead. This reduces the test time from about 40 seconds to 10 seconds. RELNOTES: n/a PiperOrigin-RevId: 158175227 --- Commitb440abce7
authored by Gao, Xiang<qasdfgtyuiop@gmail.com> Committed by Rasmus Munk Larsen<rmlarsen@google.com>: add Cuda{2D,3D}LaunchConfig that maximizes occupancy (#10032) * add Cuda{2D,3D}LaunchConfig that max occupancy * remove default val, check input<=0 * add max size check * fix typo * tests, docs, and related changes * build the test * buildify * cudaOccupancy... call check success, and style fix --- Commit81cf61fdb
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Initialize tensor in graph_properties_test, to avoid msan complaint. PiperOrigin-RevId: 158169374 --- Commitcabc5c35c
authored by Eli Bendersky<eliben@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Add xla_disable_hlo_passes to DebugOptions Also add a SetDebugOptions method to ClientLibraryTestBas; this lets us set debug options in tests by calling it. As an example, this CL removes the current way of passing xla_disable_hlo_passes programmatically in tests - it used to employ a special constructor parameter which is no longer required. PiperOrigin-RevId: 158169006 --- Commit187d23337
authored by Luke Iwanski<luke@codeplay.com> Committed by gunan<gunan@google.com>: [OpenCL] Cleans Pad op (#10339) --- Commite8bc38ef6
authored by gunan<gunan@google.com> Committed by GitHub<noreply@github.com>: Fix test failures on windows. (#10470) --- Commit2b3535c64
authored by David Soergel<soergel@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Minor docstring fix for build_parsing_serving_input_receiver_fn PiperOrigin-RevId: 158163615 --- Commite55f2e036
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Propagates constants through switch nodes. PiperOrigin-RevId: 158163537 --- Commitb01d4b905
authored by Jacques Pienaar<jpienaar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Remove outdated todo. PiperOrigin-RevId: 158161411 --- Commit7125733d7
authored by William Chargin<wchargin@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Create a set of sample data for the audio plugin This implements a simple tone generator, with sine waves, square waves, and triangle waves, plus two simple combinations of sine waves. The step value is used to control the frequency. PiperOrigin-RevId: 158160889 --- Commitdc81a2420
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Updates to the WALSMatrixFactorization estimator: - Add a completed_sweeps variable to keep track of sweeps that have been completed during training. - Add a StopAtSweepHook, which can request a stop after completing a specified number of sweeps. PiperOrigin-RevId: 158156347 --- Commit74220616c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Set device cores and frequency in op_level_cost_estimator_test, to avoid asan error about assigning inf to int64 (this comes in from a divide-by-0). PiperOrigin-RevId: 158155488 --- Commit47e678564
authored by Yun Peng<pcloudy@google.com> Committed by gunan<gunan@google.com>: Fix patching issue on Windows (#10452) --- Commit6d54f09d9
authored by Yun Peng<pcloudy@google.com> Committed by gunan<gunan@google.com>: Fix linking errors of lmdb on Windows (#10457) --- Commit61c8a745b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Minor cleanup: Add braces around if statement arms; remove redundant "return" and "static". PiperOrigin-RevId: 158143418 --- Commite9a889c5e
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Pass int parameter by value, not by const reference PiperOrigin-RevId: 158142102 --- Commit9184726ed
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Avoid unnecessary copying of map data during visitation PiperOrigin-RevId: 158141962 --- Commit2e7e1d57b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Small fix for how std::move is used in constructors PiperOrigin-RevId: 158141564 --- Commit2a61c1652
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: In cpu compiler's CompileAheadOfTime, pass ordering when compiling entry computation. PiperOrigin-RevId: 158140349 --- Commitf3f53e8b3
authored by Derek Murray<mrry@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [tf.contrib.data] Add support for dicts and remove lists from nested structures. This changes the behavior of constructors like `tf.contrib.data.Dataset.from_tensors()` when passed a list. Previously, the `nest` utility would recurse into each element of such a list and create a separate Dataset component. Now the list will be converted to a tensor, allowing code like: ```python dataset = tf.contrib.data.Dataset.from_tensor_slices(([1, 2, 3], [4, 5, 6])) ``` ...to define a dataset with two components (each of shape `()`). This change also adds support for dictionaries as nested structures, which simplifies integration with dictionary-returning ops like `tf.parse_example()`. Fixes #10151. RELNOTES: Breaking change to `tf.contrib.data.Dataset` APIs that expect a nested structure. Lists are now converted to tf.Tensor implicitly. You may need to change uses of lists to tuples in existing code. In addition, dicts are now supported as a nested structure. PiperOrigin-RevId: 158139467 --- Commitb6a8848c1
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Enabling python configuration to use a remotely generated configuration that is located inside of the org_tensorflow repo (previously it *had* to be a remote repo declared in workspace file). PiperOrigin-RevId: 158138601 --- Commit0fe0bfcc3
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unused protobuf header inclusions PiperOrigin-RevId: 158120864 --- Commitf0c4c6c3f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: In the CUDA path of depthwise_conv2d, add a fast NCHW backward filter convolution for images smaller than 16x16. PiperOrigin-RevId: 158111294 --- Commit8dcf37b47
authored by Jon Malmaud<malmaud@gmail.com> Committed by gunan<gunan@google.com>: Fix typo (#10379) --- Commit3039d7da2
authored by Androbin<robin.richtsfeld@gmail.com> Committed by gunan<gunan@google.com>: Remove "bazel clean" (#10318) Reverting #8880 (see #10236) unnecessary since bazelbuild/bazel#2759 was merged --- Commitae1c16ae8
authored by Yifei Feng<fengyifei2026@gmail.com> Committed by gunan<gunan@google.com>: Update docker to cudnn6. (#10307) * Update docker to cudnn6. * Update Dockerfile.gpu * Add --expunge to bazel clean to make cuda_configure run again and update TF_CUDNN_VERSION. * Remove expunge and set CUDA and CUDNN version default in configure. * Update configure * Only set --action_env once * Update prints for default version. --- Commit232e9d86d
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: tf_workspace() claims that the tf_repo_name argument is unused. temp_workaround_http_archive still requires it. This change silences the spurious message. PiperOrigin-RevId: 158089834 --- Commitcc1a02d37
authored by Francois Chollet<fchollet@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add fp16 support to convolutional layers that support it. PiperOrigin-RevId: 158086284 --- Commit7d3fbba48
authored by Mustafa Ispir<ispir@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Extracted dnn estimator testing utils to be reused by dnn-linear-combined. Added tests for dnn part of dnn-linear-combined estimator. PiperOrigin-RevId: 158084898 --- Commit9d12c629c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Refactor the document and some polishment PiperOrigin-RevId: 158083952 --- Commit134138299
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Corrected comment: import_scoped_metagraph does not return a Saver. PiperOrigin-RevId: 158082288 --- Commita58553e4d
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add function in shape inference to try to infer output tensor content based on the input shapes of the op. In some cases (E.g: shape), knowing the shapes of the input is all that is necessary to infer the content of the output tensor. This improves shape inference. PiperOrigin-RevId: 158079306 --- Commit0cc851c08
authored by Yuefeng Zhou<yuefengz@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Call maxcut algorithm in the model_based_cost_estimator. PiperOrigin-RevId: 158078511 --- Commit7d76a90be
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add question marks next to items in the graph legend. PiperOrigin-RevId: 158076005 --- Commit68fdb7628
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add DNNLinearCombinedClassifier. PiperOrigin-RevId: 158075939 --- Commit3d52e4cb9
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix create_meta_graph to respect an empty collection_list. PiperOrigin-RevId: 158073112 --- Commit54ccc3e5a
authored by Mark Heffernan<meheff@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Add module-scoped HLO dataflow analysis. This is the first step to replacing TuplePointsToAnalysis with a global, module-scoped analysis. This dataflow analysis identifies all values and their defs and uses in the XLA graph. The analysis is currently unused. Follow up CLs will add buffer alias analysis using this dataflow analysis, and incrementally switch the transformation passes (for example, CopyInsertion) to use these new module-scoped analyses. PiperOrigin-RevId: 158067910 --- Commit93c57c6e4
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Handle control flow logic properly: * Don't fold enter/exit nodes since that can interact badly with frames * Create proper control dependencies on switch nodes PiperOrigin-RevId: 158066691 --- Commit9e6899720
authored by Jingyue Wu<jingyue@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [SE] Add cudnnTransformTensor to StreamExecutor. PiperOrigin-RevId: 158062553 --- Commit827874c30
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: In the CUDA path of depthwise_conv2d, add a fast NCHW backward input convolution for images smaller than 16x16. PiperOrigin-RevId: 158061669 --- Commitbee26215c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Speed up multinomial_op on CPU by using a vectorized Eigen expression and avoiding unnecessary casts. Benchmark with AVX+FMA enabled: Run on <redacted> (12 X 3492 MHz CPUs); 2017-06-05T12:54:07.881672447-07:00 CPU: Intel Haswell with HyperThreading (6 cores) dL1:32KB dL2:256KB dL3:15MB Benchmark Base (ns) New (ns) Improvement ------------------------------------------------------------------ BM_Multinomial_cpu_1_10000_4 250817 172953 +31.0% BM_Multinomial_cpu_1_10000_128 273834 187552 +31.5% BM_Multinomial_cpu_1_10000_10000 1174175 1130778 +3.7% BM_Multinomial_cpu_1_100000_4 2040741 1276761 +37.4% BM_Multinomial_cpu_32_10000_4 10221765 4498666 +56.0% BM_Multinomial_cpu_32_10000_128 10638159 4994754 +53.0% BM_Multinomial_cpu_32_100000_4 100790019 44193314 +56.2% BM_Multinomial_cpu_128_100000_1 431269640 182506078 +57.7% PiperOrigin-RevId: 158061480 --- Commit515b3ac67
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add Clutz to TensorBoard build This is so we can get JavaScript protobufs. This CL also improves the web_aspect and makes some peculiar Closure Compiler errors go away relating to externs. PiperOrigin-RevId: 158061198 --- Commit0df6760fe
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Added a test to make sure that graph properties for variables are properly reported PiperOrigin-RevId: 158053084 --- Commit2ccfe8e76
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Added a new method to extract the graph properties from a cost graph without having to run the model. This will simplify the process of creating regression tests PiperOrigin-RevId: 158050327 --- Commit27f1b80c2
authored by Alexandre Passos<apassos@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fixes memory leak in py_func when functions return unwrapped strings. PiperOrigin-RevId: 158046530 --- Commitcf238e1f2
authored by Eugene Brevdo<ebrevdo@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix memory leak in python caused by @tf_should_use. The issue is that python's GC has trouble collecting objects with __del__ methods. The solution is two pronged: * Keep track of usage state outside of the class, via a dict mapping id(object) => state * Remove __del__ (this was the source: python's GC couldn't collect wrapped objects), and instead use weakref.finalize to emit warnings just as the object is being garbage collected. * Added tests for garbage collection [they were failing before i fixed the issue] PiperOrigin-RevId: 158042388 --- Commite6f581863
authored by Bo Wang<david.b.wang@gmail.com> Committed by Rasmus Munk Larsen<rmlarsen@google.com>: New reader for LMDB databases (#9950) * Add LMDBReader op and test case * Add testcase to load LMDB from a folder * Add tensorflow/core/lib/lmdb/testdata/data.mdb * Add EOF test * Add license export * Blacklist the test data in pip_smoke_test.py * Address issues with respect to review * Add LICENSE to BUILD rules * Remove the prefx of LICENSE * Wrap key with compat.as_bytes() * Fixed a compilation flag * Improve BUILD rules * Support LMDB build in cmake * Fix BUILD file format with buildifier * Add fake unistd.h for lmdb to build on Windows * Avoid building lmdb tools which depends on unistd.h * Fix the string encoding issue in Python3 * Update lmdb library name in CMakeList.txt --- Commitcc411f938
authored by Yao Zhang<yaozhang@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: When converting the layout of Conv2DBackpropInput, we need to permute one of its inputs, which is a constant node. We permute a copy of this node, instead of the original node, because the original node may be used as input to other nodes. This kind of sharing of const node could arise if the graph is pre-optimized by common subexpression elimination, which is part of the L1 optimizations in TensorFlow. PiperOrigin-RevId: 158037552 --- Commit88bdb6fca
authored by Dandelion Man?<dandelion@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove all remaining references to non-public TF modules from TensorBoard. I deleted the PluginAssetUtil tests because that code is deprecated. I'll later add manual testing for backcompat in the text plugin. PiperOrigin-RevId: 158037466 --- Commit6c531eb2f
authored by Francois Chollet<fchollet@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add file hash to Keras Boston Housing dataset to force cache update. PiperOrigin-RevId: 158036587 --- Commitafdc38cd3
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove deprecated resource handle functions in InferenceContext. PiperOrigin-RevId: 158034419 --- Commit9f932e6ce
authored by Derek Murray<mrry@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Avoid parsing a rendezvous key for Send/Recv ops outside a loop. For such ops, the rendezvous key will be constant, because `ctx->frame_iter()` will always evaluate to `{0, 0}`. Benchmarking reveals that this can save between 1 and 2 microseconds per Send or Recv op execution. The optimization applies to all cross-process, inter-device, and intra-device (host-to/from-device memory) Send/Recv ops. PiperOrigin-RevId: 158032522 --- Commitcc2dd4ac8
authored by Shanqing Cai<cais@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: tfdbg: dump debug data from different devices in separate directories Fixes: #7051 wherein TFDBG failed to load the data dump from a Session.run() involving multiple GPUs. The root cause of the bug was that TFDBG previously assumed that node names are unique across all partition graphs. This is however not the case when multiple GPUs exist. The Send/Recv nodes in the partition graphs of the GPUs can have duplicate names. There will potentially be other cases like this in the future due to other reasons (e.g., distributed sessions and/or graph optimization). This CL relaxes this assumption, by dumping the GraphDef and tensor data from different devices into different sub-directories under the dump root directory. PiperOrigin-RevId: 158029814 --- Commita5909d643
authored by Toby Boyd<tobyboyd@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fixed triggering create device multiple times PiperOrigin-RevId: 158025196 --- Commit504a307b7
authored by Martin Wicke<wicke@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make sure that Adam colocates ops with a consistent variable across workers. PiperOrigin-RevId: 158022292 --- Commit69ba4d3d4
authored by Asim Shankar<ashankar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix #10371 cpuinfo.get_cpu_info() doesn't seem to include the l2_cache_size key on some architectures. PiperOrigin-RevId: 158021008 --- Commita51a9846c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Performance-related tweaks: Don't copy loop variables; remove ineffective std::move casts. PiperOrigin-RevId: 158017670 --- Commit009789f74
authored by Peter Hawkins<phawkins@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Allow 0-sized slices in DynamicSlice and DynamicUpdateSlice; add tests. PiperOrigin-RevId: 158015870 --- Commit48a4853eb
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Miscellaneous cleanups PiperOrigin-RevId: 158012131 --- Commit379ddde24
authored by Chris Song<sjhshy@gmail.com> Committed by Chris Song<sjhshy@gmail.com>: Fix misspells. --- Commita0a76da97
authored by Lakshay Garg<lakshay.garg.1996@gmail.com> Committed by Lakshay Garg<lakshay.garg.1996@gmail.com>: Fixed typo in code --- Commit7ffc35732
authored by Eugene Brevdo<ebrevdo@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add support for bools in matrix_diag, matrix_diag_part, matrix_set_diag, matrix_band_part. PiperOrigin-RevId: 157939272 --- Commitedf3d5dbe
authored by Darren Garvey<darren.garvey@gmail.com> Committed by Darren Garvey<darren.garvey@gmail.com>: configure: Fix default path when enabling MPI. Correct showing what the default path is when mpi is installed. --- Commitaad2e3daf
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: In the CUDA path of depthwise_conv2d, add a fast NCHW forward convolution for images smaller than 16x16. PiperOrigin-RevId: 157915637 --- Commit5cf08d9cb
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Drop blockDim.y for the equivalent in_cols, and slightly improve naming (use 'pixels' instead of 'size' for height*width numbers). PiperOrigin-RevId: 157906773 --- Commit563f05ff6
authored by Eugene Brevdo<ebrevdo@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [tf contrib seq2seq] Expand tile_batch to handle nested structures. This allows it to properly tile the initial wrapper state when using BeamSearchDecoder with AttentionWrapper. Unit tests updated to show this use. PiperOrigin-RevId: 157903115 --- Commit1234e2dda
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix Plottable definition On Mac OS the build directory in the Node package conflicts with BUILD. PiperOrigin-RevId: 157899970 --- Commitbb7a8d8e7
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Don't use the _output_shape attribute in the op_level_cost_estimator since there is no guaranty that it will be present or accurate. PiperOrigin-RevId: 157898989 --- Commit6f4204c3d
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix TensorBoard SHA256 in cmake PiperOrigin-RevId: 157897958 --- Commitc9d2f432b
authored by Justine Tunney<jart@google.com> Committed by Justine Tunney<jart@google.com>: Fix TensorBoard SHA256 in cmake --- Commit1c70fb686
authored by Jianwei Xie<xiejw@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add training test for multi classes (n>2) linear classifier. PiperOrigin-RevId: 157896002 --- Commit675d36be0
authored by Yao Zhang<yaozhang@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add fused batch norm to tf.layers. PiperOrigin-RevId: 157893874 --- Commitf37d0ea47
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Internal change -- first draft docs PiperOrigin-RevId: 157891937 --- Commit9b8f6113b
authored by Zongheng Yang<zongheng@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: tensor_bundle: fix that the read path forgets to cache file handles. In a case where a reader is geographically far from the file, this change achieves a speedup of end-to-end checkpoint restore by 5.8x. PiperOrigin-RevId: 157889659 --- Commit0c92dada6
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use inplace Cholesky factorization and solves to speed up and reduce memory usage in matrix_solve_ls. Check succes before copying outputs in cholesky_op. PiperOrigin-RevId: 157887564 --- Commita4caeb2ea
authored by William Chargin<wchargin@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Extract the graphs dashboard to a plugin This completes the great plugin migration! The graphs plugin is somewhat different from the plugins considered so far. First, it exposes two kinds of data: graph data and run metadata. We elect to put both sources of data under the domain of the graphs plugin for now, because it's not clear that the run metadata would be useful for anything else. Second, the graph data really has no use for "tags": a run either has an associated graph or it does not. Thus, we expose an endpoint /data/plugin/graphs/runs that is different in format from the /tags routes exposed by other plugins (it returns just a list instead of a run-to-tag mapping). This change removes a bunch of tests from application_test.py. The tests cover the compresion behavior of the graph endpoint, but the graph endpoint doesn't have any special logic in the way of compression. Thus, the tests are, apparently, testing that werkzeug (or whatever is relevant here) provides good compression defaults. This isn't necessarily a bad idea, but it shouldn't be coupled to the graph tests. To get test data that includes run metadata, you can run this script: https://raw.githubusercontent.com/tensorflow/tensorflow/326942394e69074d50d5889218a24c9371eff259/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py PiperOrigin-RevId: 157884714 --- Commit05a6a13f7
authored by Gunhan Gulsoy<gunan@google.com> Committed by gunan<gunan@google.com>: Make sure all writer caches are closed before deleting directories in dnn_test. --- Commitd0e761f8d
authored by Gunhan Gulsoy<gunan@google.com> Committed by gunan<gunan@google.com>: Disable another test that uses matrix_set_diag on windows. --- Commit8939b8562
authored by Derek Murray<mrry@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [tf.contrib.data] Re-implement IteratorGetNext as an AsyncOpKernel. This prevents the op from consuming an inter-op thread pool thread when blocked, and fixes a potential deadlock when many IteratorGetNext ops are blocked. Fixes #10369. PiperOrigin-RevId: 157878885 --- Commit9e25c68ad
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add loss_only_head to hold additional loss terms for multi_head setup PiperOrigin-RevId: 157875934 --- Commit7cdcd0cca
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Filter more op types that don't benefit from constant folding. PiperOrigin-RevId: 157875168 --- Commit366990d92
authored by Kay Zhu<kayzhu@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Fix a subtle issue in copy_insertion due the interaction between copy overriding logic and RecordIndicesToColocatingBuffers: - When building instructions ShapeTree to be copy overriden, it is possible that we create a single kCopy for two identical instructions. An example can be: %tuple.19 = tuple(%constant.4, %constant.1793, %constant.1793) where it is used in a while.init operand, and constant.1793 is read-only within the loop and also used by another while loop. The copy overriding pass will then create the following (logical, not finalized) tuple: %tuple.19 = tuple(%constant.4, %copy.5, %copy.5) - In the subsequent pass RecordAmbiguousOrNonDistinctIndices, to add copies to ensure point_to set is distinct, the duplicate %copy.5 are ignored because they are not yet finalized, and these indices (1 and 2 in the example) are still marked as to-be copied. Therefore distinctiveness is lost. This fix applies to the override building stage, to explicitly avoid creating shared copies for non-distinct buffers. PiperOrigin-RevId: 157872231 --- Commitf4b8d21b8
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Change function parameters to references to avoid copying, or otherwise move from function parameters when moving reduces the amount of copying. PiperOrigin-RevId: 157867333 --- Commit3eee61caa
authored by Drew Hintz<pushespretn@gmail.com> Committed by GitHub<noreply@github.com>: fix quotes in example code from ? to " --- Commit4905c0eae
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove TODO - the new tolerance is okay to keep. PiperOrigin-RevId: 157861020 --- Commit55f6b6ff1
authored by David Soergel<soergel@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add explicit SparseTensor support to SignatureDef. PiperOrigin-RevId: 157860466 --- Commit79099d677
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Removes default thresholds from BinaryLogisticHead and adds predict and evaluate tests for DNNClassifier. PiperOrigin-RevId: 157856471 --- Commit54595f0f3
authored by Jianwei Xie<xiejw@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds the training test for LinearClassifier with n_classes=2. PiperOrigin-RevId: 157855473 --- Commitcd6c02985
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add 'streaming_curve_points' metric which returns curve [ROC, PR] approximation at specified number of points. PiperOrigin-RevId: 157851535 --- Commit0f2db7391
authored by Peter Hawkins<phawkins@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [TF:XLA] Split union-find implementation in mark_for_compilation_pass.cc into a separate library, make it more generic. PiperOrigin-RevId: 157850985 --- Commitd5421cf58
authored by Justin Lebar<jlebar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add additional concat test. PiperOrigin-RevId: 157844113 --- Commitf661128db
authored by Geoffrey Irving<geoffreyi@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unused overloads of SummarizeGraphDef and EqualGraphDef PiperOrigin-RevId: 157843404 --- Commita56d59a84
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Set flow to a value during TensorArray creation, Re-enable tensor_array_ops_test in msan. PiperOrigin-RevId: 157841785 --- Commitedcc5cc13
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add manual test runner for vz_sorting PiperOrigin-RevId: 157841098 --- Commit3f6404f20
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Assign a max height of 800px to images in the image dashboard. The user could always expand to actual dimensions if need be. PiperOrigin-RevId: 157838046 --- Commitc6ea6972a
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove debugging LOG(INFO) from previous change. PiperOrigin-RevId: 157837305 --- Commit07d39f28e
authored by freedom" Koan-Sin Tan<koansin.tan@gmail.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: make gcc-5 on Ubuntu 16.04 happy (#10385) gcc-5 complains of ambiguity and refuses to go when doing something like 'bazel build -c opt tensorflow/...' --- Commitac66be783
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Minor cleanup: Remove unused BUILD dependencies and unnecessary code. PiperOrigin-RevId: 157837211 --- Commit4161ccc8e
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adjust tolerance on dirichlet_multinomial test. PiperOrigin-RevId: 157834660 --- Commit43c0f52f1
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix off-by-one error in BoolVector(begin, end) constructor. PiperOrigin-RevId: 157833086 --- Commit419d437ba
authored by Lakshay Garg<lakshay.garg.1996@gmail.com> Committed by Lakshay Garg<lakshay.garg.1996@gmail.com>: Fixed typo in code comment --- Commit07710014d
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix device colocation for KMeans in case of multiple parameter servers. PiperOrigin-RevId: 157795360 --- Commitb659bc39f
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Simplify TensorBoard build - Remove tensorboard_typescript_genrule - Remove tensorboard_typescript_bundle - Introduce ts_web_library Skylark rule which supports seamless TypeScript compilation. - Use Closure Compiler in semi-advanced mode to compile JavaScript. This is done in a way that preserves <script> tag placement, which causes pages to load faster and avoid FOUC, thereby making it a better solution than the existing vulcanize. PiperOrigin-RevId: 157794795 --- Commit0503ce09c
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Wipe out previous shape inference result when importing a grappler item Run graph optimizations last: since they can be expensive it's best to filter invalid items first. PiperOrigin-RevId: 157792834 --- Commit9ae941c4a
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Turn reductions along an empty set of dimensions into identity nodes. PiperOrigin-RevId: 157792209 --- Commit69075f354
authored by Yangzihao Wang<yangzihao@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add functional support for cudnnConvolutionBiasActivationForward(). PiperOrigin-RevId: 157788425 --- Commit7d7a40309
authored by William Chargin<wchargin@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Extract the distributions dashboard to a plugin This continues the great plugin migration. The distributions plugin was similar to the histograms plugin, but it also purported to allow CSV download like the scalars plugin. However, the existing implementation of this was flawed, and would always yield a 500 on current prod [1] (unless there were actually no data). This indicates that no one is actually using it---probably because there isn't a relevant button on the frontend, anyway!---so I just removed it. This also changes most frontend occurrences of "compressedHistograms" to "distributions" while we're at it. [1]: Due to the reference `value.rank_in_bps` in the handler `_serve_compressed_histograms`; this field does not exist and throws an `AttributeError`. PiperOrigin-RevId: 157787156 --- Commit23cdf96b8
authored by Brennan Saeta<saeta@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Re-enable session_test.py A number of CL's have split up session_test.py to be a bit smaller. As a result, this CL will re-enable the session_test to see if it remains flaky. PiperOrigin-RevId: 157786407 --- Commitd741d81c5
authored by Dandelion Man?<dandelion@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Expose tf.test.StubOutForTesting in the tf testing api Also redirect TensorBoard usage to use that endpoint. This is part of my ongoing effort to have TensorBoard only depend on TensorFlow via its public api, so that it can be split into a project with a fast external build. PiperOrigin-RevId: 157784552 --- Commit40411cd5c
authored by Dandelion Man?<dandelion@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Refactor projector plugin to only use tf public methods. Remove all reference to the PluginAsset system, which is deprecated. Part of an ongoing effort to have TensorBoard only consume the public TensorFlow api. PiperOrigin-RevId: 157784016 --- Commita65a70ea5
authored by Gunhan Gulsoy<gunan@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix pip tests under contrib/text PiperOrigin-RevId: 157783952 --- Commitfb4bc806a
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix flakiness in GpuMultiSessionMemoryTest. PiperOrigin-RevId: 157781368 --- Commitf7de292df
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update placeholder nodes' shapes in the GraphDef to reflect manually specified values for incomplete placeholder shapes. Previously, these overrides were only specified in the feed nodes, which improves estimates when using dynamic shapes but not when using static shapes. With this change, static shapes also benefit. PiperOrigin-RevId: 157780800 --- Commiteebd44123
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add a frontend method for retrieving numeric alerts from the debugger plugin. This route responds with a list of alerts (occurrences of bad values) in ascending timestamp order. PiperOrigin-RevId: 157780270 --- Commit5bc685d7f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] If an op has a single "large" operand, we want to fuse this op into some of its consumers, even if we can't fuse into all of them. PiperOrigin-RevId: 157779106 --- Commit2ee09b873
authored by Mark Heffernan<meheff@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Various improvements to ShapeTree. Add support for holding non-copyable types, operator==, and a CopySubtreeFrom method for copying a subtree from one ShapeTree to another. PiperOrigin-RevId: 157777636 --- Commit4f3ae7699
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add beam_search kernels used by BeamSearchDecoder to tensorflow.contrib. PiperOrigin-RevId: 157775011 --- Commit6b16c33b3
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make audio-related logic use the audio plugin. Previously, fetching audio and related data from TensorBoard used handlers within application.py. We now remove those handlers in favor of routes offered by the audio plugin. ML Dash is updated as well. PiperOrigin-RevId: 157774953 --- Commit8032e1f75
authored by Geoffrey Irving<geoffreyi@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make function instantiation use std::vector<NodeDef> instead of GraphDef It's about to turn into std::vector<NodeInfoPtr>; this change gets us partway there. RELNOTES: n/a PiperOrigin-RevId: 157771141 --- Commit2e44be35d
authored by Vinu Rajashekhar<vinuraja@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds a protected DeleteResourceMgr(...) method in Device. PiperOrigin-RevId: 157770378 --- Commitcc346e690
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Strip the :x suffix when generating control inputs from input names PiperOrigin-RevId: 157770257 --- Commitd6fe47af5
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use tensorflow::StringPiece in literal_util. Use template for RepeatedField assignment. PiperOrigin-RevId: 157765477 --- Commit7866fa01b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: This change significantly reduces time and resources used to load large TensorFlow graphs. For a real-world large graph (13k nodes, 20k edges), this change: * reduces all heap allocations by 19% * reduces retained (final) heap allocations by 2.2% * reduces CPU time by 11.2% In most TF graphs, the set of unique values set to Node::assigned_device_name() is quite small. This change adds an interning table to the Graph object, which contains all of the unique values used for Node::set_assigned_device_name(), as well as a look-up table. This is the main source of the reduction in retained heap memory; nearly all nodes are assigned to just one or two unique devices. This change removes the "string assigned_device_name_" field from the Node class, and replaces it with "int assigned_device_name_index_". However, because you need both the index and the name table to get the actual value, the Node::assigned_device_name() accessor needs access to the parent Graph. This requires adding a "Graph* graph_" field to the Node class. In the future, if all users of this property are converted to use Graph::assigned_device_name(Node*), then the Node::graph_ field can be deleted, and the space reclaimed. However, doing so is out of the scope of this CL, and even with this new pointer field, the Node class is smaller than it was before, so this is still a net win. The placement algorithm in simple_placer.cc is one of the main accessors of the Node::assigned_device_name property. This CL contains significant changes to simple_placer.cc, which directly take advantage of the fact that the property is an index into a name table, rather than treating it simply as a string. Many temporary allocations are also removed, which is the main source of the reduction in total heap allocations. This CL also contains a few changes that remove short-lived allocations in unrelated code, such as the changes in op.cc/h, costmodel.cc, etc. It is extremely easy in C++ to accidentally allocate memory, especially when implicit conversions and copy constructors allocate memory. All of the changes in this CL were motivated by empirical measurement, using CPU profiling and heap profiling. PiperOrigin-RevId: 157762909 --- Commitfdffafbc1
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add QueueDequeueUpTo to the list of dequeue ops PiperOrigin-RevId: 157760201 --- Commit7ad0d0698
authored by Mustafa Ispir<ispir@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add type error to start_queue_runners if given session is not a `tf.Session`. Due to semver, we suppress the error if a MonitoredSession is provided. PiperOrigin-RevId: 157748375 --- Commit7106f9fac
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Implemented an initial version of virtual scheduler unit test. PiperOrigin-RevId: 157746305 --- Commitb020db0c6
authored by Andrew Harp<andrewharp@google.com> Committed by Andrew Harp<andrewharp@google.com>: revert public visibility --- Commit5b05728c2
authored by Andrew Harp<andrewharp@google.com> Committed by Andrew Harp<andrewharp@google.com>: visibility workaround 3 --- Commit15a740ebb
authored by Mustafa Ispir<ispir@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update and Move DNNLinearCombinedRegressor to estimator/canned. PiperOrigin-RevId: 157744087 --- Commitd29bbeca3
authored by Dandelion Man?<dandelion@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix outdated code ref in TensorBoard README, add link to SO question. PiperOrigin-RevId: 157743374 --- Commit9fc164225
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix index_table_from_file to allow vocabulary_file be a Tensor PiperOrigin-RevId: 157740677 --- Commit0aa3e0194
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Internal change PiperOrigin-RevId: 157740660 --- Commit02ac85399
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Introduce new class Literal to replace protobuf Literal. This renames the existing Literal message to LiteralProto and introduces a new C++ class named Literal to replace it. The LiteralProto is only used at RPC boundaries, or when protobuf-specific functionality is required. The Literal class offers a 'ToProto' function to generate a new LiteralProto message when necessary. Currently, all the static functions in class LiteralUtil, just forward to their counterparts in class Literal. This will change in a future CL. Class Literal implements all the buffers as std::vectors. The only exception is preds(), which given the std::vector<bool> representation, makes it unusable for the semantics we require (it's not possible to get the address of the underlying vector, for instance). The CL adds a BoolVector class to work around that issue. In future CLs, the std::vector representation may be changed to something more efficient, if needed. PiperOrigin-RevId: 157739125 --- Commit207203253
authored by gunan<gunan@google.com> Committed by GitHub<noreply@github.com>: Python 3.6 support on windows. (#10356) * Python 3.6 support on windows. * Fix typo in README.md * Make environment configurable for windows gpu build. --- Commit2b75a9a6e
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Go: Update generated wrapper functions for TensorFlow ops. PiperOrigin-RevId: 157734029 --- Commitf60b6bdcb
authored by Mustafa Ispir<ispir@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add a warning to documentation of MonitoredSession. PiperOrigin-RevId: 157728225 --- Commiteb10a4c49
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Preallocate vector storage when the ultimate vector size is known in advance PiperOrigin-RevId: 157724431 --- Commitce32228c4
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add release notes for Intel MKL integration. PiperOrigin-RevId: 157722003 --- Commita23255bc0
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds missing group OP to benchmark PiperOrigin-RevId: 157716500 --- Commitd3e840a6c
authored by Asim Shankar<ashankar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Disable writing of compressed checkpoints. Snappy compression (and decompression) was enabled after the 1.1 release (in commit63b2f999d3
). This means that checkpoints produced by the 1.2.0 release candidates will cause TensorFlow 1.1 (and prior) binaries to crash as they CHECK fail when trying to load snappy-compressed tables. To ease transition, disable writing of compressed checkpoints in 1.2.0 for now. Reconsider this in the next release. PiperOrigin-RevId: 157675189 --- Commit6db400bbc
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Refactoring Python op code generation. PiperOrigin-RevId: 157675126 --- Commitd9620cab8
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add flag to determine whether to do L1 optimizations and inline functions. Default is to do them. In tf_optimizer don't inline or do l1 optimizations. PiperOrigin-RevId: 157673614 --- Commit25bb504cc
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make a plugin that serves data for the audio dashboard. Subsequent changes will make TensorBoard use this audio plugin instead of the previous handlers for audio-related data. PiperOrigin-RevId: 157673132 --- Commit24623653b
authored by James Qin<jamesqin@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix graph text format serialization PiperOrigin-RevId: 157669530 --- Commit3aed1735c
authored by Andrew Harp<andrewharp@google.com> Committed by Andrew Harp<andrewharp@google.com>: visibility workaround 2 --- Commitfea90f89d
authored by Andrew Harp<andrewharp@google.com> Committed by Andrew Harp<andrewharp@google.com>: visibility workaround --- Commit732a6b1ae
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Upgrade TypeScript to v2.3.4 PiperOrigin-RevId: 157667511 --- Commit95d90ab2e
authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Fixes Split op (#10322) * [OpenCL] Fixes Split op Split should alway go through SYCL device * [OpenCL] Removes half from registred types --- Commit963441400
authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Extends softmax op to cover double (#10323) --- Commita702863e8
authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Extends tile ops to int16 and int32 (#10328) * [OpenCL] Extends tile ops to int16 and int32 * [OpenCL] Extends tile_ops to cover bool, uint8, int16, int64 --- Commit75385814f
authored by cxx<cxxgtxy@gmail.com> Committed by cxx<cxxgtxy@gmail.com>: Fix comments error in mnist_replica.py where only one ps is used with two works by default. --- Commit23364e2c6
authored by Andrew Harp<andrewharp@google.com> Committed by Andrew Harp<andrewharp@google.com>: buildifier fix --- Commite5088cb82
authored by Yao Zhang<yaozhang@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix discrepancy between measured and analytical cost graph. Use tf_cuda_library for utils. PiperOrigin-RevId: 157660745 --- Commit787381ca5
authored by Brennan Saeta<saeta@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Split up session_test.py -> session_clusterspec_prop_test.py session_test.py has gotten very large. Additionally, recently it has become flaky. In order to both (1) improve overall code health, and (2) to facilitate root-causing the test flakiness, this CL begins to split apart session_test into focused subsets. I've suffixed the scoping of the session_test in order to preserve filesystem sort-order grouping. PiperOrigin-RevId: 157658981 --- Commitb09932d74
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Added PlaceholderWithDefault to the list of known placeholder types Use PartialTensorShape instead of TensorShapes to better handle partially known shapes PiperOrigin-RevId: 157657664 --- Commit0462416f6
authored by Dandelion Man?<dandelion@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add make_ndarray, tensor_proto, and MetaGraphDef to tf api. Since TensorProtos are part of the TensorFlow API, it makes sense to also include the methods that generate and parse them. Similarly, we write out MetaGraphDef protos in the summary writer, so we should provide the proto as well. This is part of an ongoing effort to have TensorBoard only consume TensorFlow methods through the public api. PiperOrigin-RevId: 157657564 --- Commit458f94c12
authored by Wei Ho<weiho@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Open-source skip-gram ops PiperOrigin-RevId: 157655970 --- Commitfaac0331c
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Introduce tensorboard_zip_file build rule This rule can depend on web_library or tensorboard_html_binary. In both cases it will create a .zip file containing all the transitive web server paths. This can be used to deploy static assets to web servers. A small change was also made to Vulcanize to support path overriding. PiperOrigin-RevId: 157655047 --- Commit7ed44f4c9
authored by Brennan Saeta<saeta@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Split up session_test.py -> session_partial_run_test.py session_test.py has gotten very large. Additionally, recently it has become flaky. In order to both (1) improve overall code health, and (2) to facilitate root-causing the test flakiness, this CL begins to split apart session_test into focused subsets. I've suffixed the scoping of the session_test in order to preserve filesystem sort-order grouping. PiperOrigin-RevId: 157651813 --- Commit3c7ac46ae
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Teach Executable to do its own profiling (patch 4/4). This CL removes the xla::Service stub for ExecuteOnStreamWrapper so the users call the xla::Executable version directly, and simplifies the function API to simply accept "arguments" as a parameter (with a templated type) rather than requiring the user to capture it into a lambda around the relevant Executable::ExecuteOnStream method. PiperOrigin-RevId: 157651740 --- Commit626f95ab9
authored by Peter Hawkins<phawkins@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [TF:XLA] Don't enforce that all nodes in an encapsulated subgraph are on the same device. Use the assigned device rather than the user-requested device when converting a Graph to a FunctionDef. PiperOrigin-RevId: 157648977 --- Commit414470329
authored by Jacques Pienaar<jpienaar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Guard stream pool with mutex. A data race can occur while populating the map. PiperOrigin-RevId: 157647183 --- Commitccdb30763
authored by Eugene Brevdo<ebrevdo@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Additional colocation options and bugfixes for TensorArray * colocate_with is now set properly when a TensorArray is passed through a while_loop * added a new argument, "colocate_with_first_write" (default: True; this is the current behavior). If False, the TensorArray is simply placed on the device from the context it's constructed in, and no colocation constraints are added. PiperOrigin-RevId: 157643133 --- Commit03fc7022b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 157642677 --- Commit41b87d6ce
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add a new attribute narrow_range to FakeQuant* operations. It quantizes into range [1; 255] instead of [0; 255]. PiperOrigin-RevId: 157641054 --- Commitc048e2938
authored by Alexandre Passos<apassos@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds support to non-placeholder inputs in _graph_to_function_def. Specifically, supports input ops with more than one output tensor. PiperOrigin-RevId: 157640908 --- Commitd310de4fa
authored by Brennan Saeta<saeta@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Split up session_test.py -> session_list_devices_test.py session_test.py has gotten very large. Additionally, recently it has become flaky. In order to both (1) improve overall code health, and (2) to facilitate root-causing the test flakiness, this CL begins to split apart session_test into focused subsets. I've suffixed the scoping of the session_test in order to preserve filesystem sort-order grouping. PiperOrigin-RevId: 157640788 --- Commit8e868cf6a
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unused arguments to call_cpp_shape_fn. PiperOrigin-RevId: 157640125 --- Commit9ddbf31fe
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use unnamed namespace to effect internal linkage, replace string constructors with array-deducing helper function PiperOrigin-RevId: 157636308 --- Commit88ffe6276
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Increase cholesky_op_test to medium, bump shard_count 1 more. PiperOrigin-RevId: 157635774 --- Commitbef563dc8
authored by Benjamin Kramer<kramerb@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Don't add constraints for computations we're not currently looking at. TuplePointsToAnalysis is computed globally per module, so we add all unconstrained buffers in that module, even if it's outside of the computation we're currently running on. Then we proceed to propagate default layouts to all those buffers and then throw the constraints away because they don't affect any instruction in the current computation. PiperOrigin-RevId: 157635564 --- Commita980aead8
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use test_adjusted_name when making the mangled_test_name in run_and_gather_logs_lib.py, to avoid duplicate file names when the same test is run on multiple GPUs. PiperOrigin-RevId: 157630193 --- Commit0a84cfd58
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 157629497 --- Commit6882effb8
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make single-parameter constructors explicit PiperOrigin-RevId: 157628970 --- Commit0b8070253
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Support negative axis for Split op PiperOrigin-RevId: 157628162 --- Commit289e7bf5b
authored by gunan<gunan@google.com> Committed by GitHub<noreply@github.com>: Fixes and improvements to cmake windows build. (#10354) * Disable linalg ops tests on windows. * Do not print the full source code path for logs on windows. --- Commitbc236cfc3
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Passes classification head to LinearClassifier. PiperOrigin-RevId: 157624020 --- Commitcebd7e246
authored by Luke Iwanski<luke@codeplay.com> Committed by Shanqing Cai<cais@google.com>: [OpenCL] Cleans debug ops (#10334) * [OpenCL] Cleans debug ops * Acts on feedback from #10334#discussion_r119452513 * Acts on #10334#discussion_r119459463 --- Commitfd6c3c4f1
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fixes flaky test in dnn_linear_combined_test. PiperOrigin-RevId: 157622951 --- Commitc9cc388dc
authored by Asim Shankar<ashankar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Avoid CHECKs in BundleReader, propagate errors instead. Motivation: We'd like to evolve the checkpoint format over time (e.g., enable different types of compression). Without this change, a TensorFlow version that encounters a format that it doesn't understand would CHECK fail with an unhelpful error message. With this, it propagates a clearer error message up, giving the user some hints about what could be wrong. I don't have a unittest for this - I thought about writing a bundle and then strategically corrupting the bytes on disk before reading it back, but that seems a bit much. The intention of this change is to enable graceful reporting of forward compatibility breakages. Ideas for an appropriate unittest are appreciated. PiperOrigin-RevId: 157620358 --- Commitee05b8b69
authored by Wei Ho<weiho@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix to remove TF op usage outside of the initializer fn (due to deferred execution of initializer fn, this prevent issues with graph mismatch). PiperOrigin-RevId: 157620177 --- Commite8d17ea8c
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Materialize shapes that are known at graph construction time into constants that can be folded PiperOrigin-RevId: 157619380 --- Commitdc0427d48
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Directly depend on the used libraries Do not rely on transitive dependencies. PiperOrigin-RevId: 157618184 --- Commit964d1a509
authored by Yuan Yu<yuanbyu@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix a bug that an erroneous control edge can be introduced when loops are nested in control dependency context. PiperOrigin-RevId: 157616919 --- Commit2de94bbb8
authored by Eli Bendersky<eliben@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Add an option to set the "generate HLO graph" regex without a flag. Pipes the option through xla.proto ExecutionOptions, to HloModuleConfig, which can then be accessed throughout the compiler. PiperOrigin-RevId: 157615458 --- Commitd3c0482e6
authored by My name is<raviqqe@gmail.com> Committed by gunan<gunan@google.com>: Fix a typo in export_output.py (#9975) --- Commit0c75d9f52
authored by ddurham2<ddurham@davyandbeth.com> Committed by gunan<gunan@google.com>: Adding lost documentation to tf.abs from the old tf.complex_abs when it learned how to work on complex data. (#9954) --- Commit84661fa73
authored by Benoit Steiner<bsteiner@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Propagate control dependencies during constant folding PiperOrigin-RevId: 157610040 --- Commita3520340e
authored by gunan<gunan@google.com> Committed by GitHub<noreply@github.com>: Improve windows bazel python test suite. (#10305) * Improve windows bazel python test suite. - Create new tags, no_windows and no_windows_gpu - Instead of a separate maintained list, use bazel tags to exclude tests. - Tag all the python tests that are known to have issues in windows. * Also blacklist neon_depthwise_conv_ops_test in windows. * Only build tests in CPU windows tests. * Only build tests in GPU windows tests. * Also disable session_test on windows. * Only run py tests on windows, and only build tests that are not disabled. --- Commita6f284ca4
authored by Jianwei Xie<xiejw@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds integration tests for LinearRegressor. PiperOrigin-RevId: 157604107 --- Commitd21bf7d75
authored by Francois Chollet<fchollet@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Backport changes from Github master. PiperOrigin-RevId: 157603238 --- Commit43bfc138c
authored by Shanqing Cai<cais@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix OSS compilation error in tfprof_main.cc PiperOrigin-RevId: 157602449 --- Commit904a3d075
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fixing issue with cuda compilation related to missing include (exception is only thrown when running with sandboxing on) PiperOrigin-RevId: 157602401 --- Commitf59203c98
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Shard cholesky_op_test. PiperOrigin-RevId: 157601172 --- Commit3fdbb5579
authored by Amit Patankar<amitpatankar@google.com> Committed by Amit Patankar<amitpatankar@google.com>: Merging rc1 back into master. --- Commitbe5d98a8b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adds integration tests for DNNClassifier. PiperOrigin-RevId: 157592010 --- Commita05de6cd2
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Change reporting feature importances in RandomForestEstimator to run at the end of training, instead of part of the inference graph. PiperOrigin-RevId: 157591575 --- Commite96f1142f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unnecessary casts PiperOrigin-RevId: 157591439 --- Commit5f8571a6b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix missing namespace comments PiperOrigin-RevId: 157591364 --- Commiteeb0b4067
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Go: Update generated wrapper functions for TensorFlow ops. PiperOrigin-RevId: 157573997 --- Commit7f9674217
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 157573723 --- Commit473a590c9
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Allow complex valued input for Cholesky decomposition. PiperOrigin-RevId: 157572536 --- Commit2d1860859
authored by Blake Hechtman<blakehechtman@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix test name in array_elementwise_ops_test. PiperOrigin-RevId: 157552402 --- Commita7fff05e0
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: tfprof multi-step profiling. This allows users to fill in RunMetadata across different steps. 1. It is useful for RL model which runs a subset of graph each step. 2. It also gets averages of multi-step stats. PiperOrigin-RevId: 157552388 --- Commitfe589d9e7
authored by Luke Iwanski<luke@codeplay.com> Committed by Benoit Steiner<benoitsteiner@users.noreply.github.com>: [OpenCL] Implementation improvements (#9117) * OpenCL Improvements * Registers Scatter and ScatterNd Ops for SYCL * Registers Stack op for SYCL * Fixes No sycl buffer found error for debug ops * Registers MatMul and Transpose Ops to SYCL device for double * Extends analyzer_cli_test.py test to cover SYCL * Fixes Transpose Op for double when on SYCL * Bumps Eigen version to fix double precision issue on SYCL * Extends SessionDebugTestBase to cover SYCL * Register SYCL implementations for random ops * Avoid functions that might not be defined on SYCL device (#51) * Avoid functions that might not be defined on SYCL device * Simplify by using Eigen math functions * OpenCL improvements - Bumps Eigen Version - Refactors Ops registration - Introduces workaround for Const Op related to the difference between CUDA which uses pointers and OpenCL that uses buffers/accessors - Extends memory types to cover DEVICE_SYCL as well - Introduces GetSYCLDevice() method that returns list of supported devices with GPU device having the highest priority ( doesn't include blacklisted devices ) - ::internal::Transpose -> tensorflow::internal::Transpose in order to avoid compilation reported error - re-introduces fix for bugged string replacement causing a lot of compilation warnings -c -> --include - Adds sycl_runtime to bazels ARRAY_DEPS - Replicates TF_CALL_GPU_PROXY_TYPES for SYCL * [OpenCL] Fixes an issue caused by switch to aligned allocator for sycl buffer (#53) * [Build] Use gcc/g++ as a host compiler to avoid #8394 (#54) * [OpenCL] Fixes Scatter Op * Fix testSimple and testConst in stack_op_test (#3) * Fix testSimple and testConst in stack_op_test * Create a specialisation of DoParallelConcatUpdate for SyclDevice and register it * Guard all code in TENSORFLOW_USE_SYCL * Do not use sycl device for int32 * Registration of the Sycl version is now looking like the one for the GPU * Remove added empty line * Register batch normalization kernels for OpenCL (#61) * [OpenCL] RandomGamma has no GPU friendly implementation (#57) * [OpenCL] Compatibility fixes for TensorFlow 1.1.0-rc1 * [OpenCL] Implements BatchMatmul Op for SYCL * Lowercase the device name when GPU or SYCL returned * [OpenCL] kernel_estimator_test.py assertEqual-> assertAlmostEqual due to floating point representation on the device * [Eigen] Version bump * GPU device name string manipulation is not needed anymore * [OpenCL] Adds SYCL to device backwards compatibility * [OpenCL] Extends core_rnn_test.py to run for SYCL device * [OpenCL] Minor optimizations for build script * [OpenCL] Enables skip folder list in build script * [OpenCL] Fixes ApplyAdamOp for Sycl device * [OpenCL] SYCL device improvements * [OpenCL] Fixes debug_ops's SEGFAULT for SYCL device * [Build] Adds hexagon to skipped folders list * [OpenCL] Removes EnterLameDuckMode from SYCL device and allocator * [OpenCL] Registers Unique Op for SYCL device * [OpenCL][Temporary] Disables tests for SYCL target due to features not being implemented yet Tests affected: - tensorflow/contrib/memory_stats/python/kernel_tests/memory_stats_ops_test.py - tensorflow/contrib/rnn/python/kernel_tests/core_rnn_test.py - tensorflow/python/kernel_tests/conv_ops_test.py - tensorflow/python/kernel_tests/depthwise_conv_op_test.py - tensorflow/python/kernel_tests/pooling_ops_3d_test.py - tensorflow/python/kernel_tests/pooling_ops_test.py - tensorflow/python/kernel_tests/scatter_nd_ops_test.py - tensorflow/python/training/adam_test.py - tensorflow/python/training/localhost_cluster_performance_test.py - tensorflow/python/training/training_ops_test.py * [OpenCL][Temporary] Disables failing tests for SYCL in order to establish regression baseline Tests affected: - tensorflow/python/debug/cli/analyzer_cli_test.py - tensorflow/python/debug/lib/session_debug_testlib.py - tensorflow/python/debug/lib/stepper_test.py - tensorflow/python/kernel_tests/unstack_op_test.py - tensorflow/python/ops/image_ops_test.py * [OpenCL] Take options.config.device_count() into consideration * [OpenCL] Fixes compilation warning * [OpenCL] device:SYCL:0 -> sycl:0 * [OpenCL] Removes unwanted flags in building script Removes flags given to computecpp that enable SIMD instructions Removes duplicate flags * bool -> const bool * [OpenCL] sycl in test_util.gpu_device_name() -> is_sycl_enabled() * [OpenCL][Temporary] Disables failing tests for SYCL in order to establish regression baseline Test affected: - tensorflow/contrib/stateless/python/kernel_tests/stateless_random_ops_test.py * Imports test_util from tensorflow.python.framework * [OpenCL] Fixes formatting in Python code * [OpenCL] Extends session_test.py to cover SYCL device * [OpenCL] Cleans singleton class * [OpenCL] Keeping CUDA happy * [OpenCL][Temporary] Disables failing tests for SYCL in order to establish regression baseline Test affected: - tensorflow/contrib/rnn/python/kernel_tests/core_rnn_cell_test.py - tensorflow/contrib/seq2seq/python/kernel_tests/beam_search_ops_test.py * Added support for building with SYCL on ARM. * Acts on the review feedback from: - #9117#discussion_r113608975 - #9117#discussion_r113609173 * [OpenCL] Fixes scatter_nd_op_test * Fixes auto-merge mistake * [OpenCL] struct SyclDevice -> class SyclDevice * Revert "[OpenCL] struct SyclDevice -> class SyclDevice" This reverts commit addd43348c374a5379f67bb1e5ad084715722fc2. * [OpenCL] Reverting refactoring commit. As requested in the review #9117#issuecomment-298454466 This change set will be re-introduced in smaller chunks. * Revert "[OpenCL] device:SYCL:0 -> sycl:0" This reverts commit cf16e60340b62d16c3764d71b716fe03d35f87a9. * Revert "[OpenCL] Adds SYCL to device backwards compatibility" This reverts commit b8401b5164199b7a169be1c1d8dea5001195c390. * Acts on the feedback from #9117#discussion_r115036905 * control_flow_ops_py_test.py expects device name to be lower cased * Acts on the feedback from #9117#discussion_r115037222 * Removes debug print * Removes not needed partial specialisation * [OpenCL] Registers ScatterNdFunctor for SYCL device * [OpenCL] Make it compile * [OpenCL] Follow gpu_device changes * [OpenCL] Adds cxx_builtin_include_directory for python lib Fixes bazels missing undeclared inclusions that appeared after merge with TensorFlow upstream * [OpenCL] Fixes Constant Op * [OpenCL] gXX-4.8 -> gXX * [OpenCL] Removes -D_GLIBCXX_USE_CXX11_ABI=0 as it breaks default compiler setup for Ubuntu 16.04 * Revert "[OpenCL] kernel_estimator_test.py assertEqual-> assertAlmostEqual due to floating point representation on the device" This reverts commit 06c50c0a485f40c30a436f02c3fa7794e370c49d. * [OpenCL] CPU allocator is a singleton we should not delete it --- Commit7aac2395c
authored by Blake Hechtman<blakehechtman@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Merge a copies of copies. PiperOrigin-RevId: 157549434 --- Commit37d9d5f0e
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add some routines for managing summaries to slim. PiperOrigin-RevId: 157541902 --- Commitd58cd2962
authored by Justine Tunney<jart@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix weblas license mirror URL PiperOrigin-RevId: 157537115 --- Commit5c13ee13b
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Make images-related logic use the images plugin. Previously, fetching images and related data from TensorBoard used handlers within application.py. We now remove those handlers in favor of routes offered by the images plugin. ML Dash is updated as well. PiperOrigin-RevId: 157536471 --- Commit60394a3d1
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Reduce size of the no-winograd tests, but still large enough that ShouldIncludeWinogradNonfusedAlgo returns true. PiperOrigin-RevId: 157535386 --- Commit9501c4104
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Replace protobuf CopyFrom with assignment PiperOrigin-RevId: 157534272 --- Commit96698f7fd
authored by Eugene Brevdo<ebrevdo@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [tf contrib seq2seq] Improve BeamSearchDecoder's ability to handle unknown shapes. Updated unit tests to contain inputs of unknown shape (at graph build time). Found an issue in the gather helper that stops it from properly propagating the batch size of the output shape. This caused problems with tf.while_loop. Fixed. PiperOrigin-RevId: 157533937 --- Commit5c73d0102
authored by Neal Wu<wun@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Batch norm docs fix applied to _fused_batch_norm as well PiperOrigin-RevId: 157530527 --- Commitabd4aa49a
authored by Jonathan Hseu<jhseu@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix docs for tf.abs() and tf.pow(). PiperOrigin-RevId: 157528475 --- Commitdd5ad6917
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Declarations of operators to support batch norm in xla PiperOrigin-RevId: 157527596 --- Commitbbeaa1307
authored by Jianwei Xie<xiejw@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix the expand_dim for label and weight for classifier heads. PiperOrigin-RevId: 157524909 --- Commit346021ab4
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Cleanup: Use C++ casts, remove redundant casts, use CHECK_OK PiperOrigin-RevId: 157522142 --- Commite405b0f6b
authored by Francois Chollet<fchollet@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Refactoring of layer name autogeneration, to remove a graph serialization warning. PiperOrigin-RevId: 157520123 --- Commit5784e1e35
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add HasOutputProperties to check for pruned ops; Return device name instead of casting it to a short name (GPU:0/CPU:0); VLOG(2) when printing op device placement since it is a lot of output. PiperOrigin-RevId: 157519077 --- Commit2994444bf
authored by Peter Hawkins<phawkins@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Issue a more user-friendly error message if a variable's initializer is from inside a control-flow scope, such as tf.cond() or tf.while_loop(). Fixes #8604. PiperOrigin-RevId: 157516279 --- Commitda2daf068
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unused using declarations PiperOrigin-RevId: 157513772 --- Commit8b2e8b566
authored by Derek Murray<derek.murray@gmail.com> Committed by gunan<gunan@google.com>: Exclude Python test files from CMake PIP package. (#10302) * Exclude *_test.py files from the CMake-built PIP package. * Add stray _test.py file to the PIP package. * Nit. Convert tabs to spaces in tf_python.cmake --- Commit2249a4ea8
authored by Dan Ringwalt<ringwalt@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix control reaching the end of ProjectiveGenerator. PiperOrigin-RevId: 157510013 --- Commit040e2e20f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unneeded check for has properties in grappler. PiperOrigin-RevId: 157507665 --- Commit684006955
authored by Yun Peng<pcloudy@google.com> Committed by gunan<gunan@google.com>: Windows: Remove session_test from bazel_test_lib.sh (#10274) It was disabled in49b17146d2
--- Commit890a0a407
authored by Gunhan Gulsoy<gunan@google.com> Committed by Gunhan Gulsoy<gunan@google.com>: Upgrade TF ci build and docker files to use bazel 0.5.0 --- Commit46db634e5
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Only run the no-winograd tests once each. Only run the no-winograd tests on GPU; this also fixes timeouts in asan and msan. PiperOrigin-RevId: 157505317 --- Commita6cd4e735
authored by Dandelion Man?<dandelion@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove all TB build references that circumvent TF's public API. This doesn't actually remove all the code references, lots of code references continue to work despite the BUILD references being removed. I think this is because depending on the public api transitively makes all of TensorFlow's guts available too. PiperOrigin-RevId: 157502987 --- Commitdcc3cdce8
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove redundant get() calls and string conversions PiperOrigin-RevId: 157497932 --- Commitaf2b9d875
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix the trace inputs functionality of the graph explorer. After migrating to d3 v4, the graph can no longer directly index into d3.Selections to obtain elements. Instead, we must use the nodes method of d3.Selection to generate an array of selected elements. PiperOrigin-RevId: 157493509 --- Commit5cf484584
authored by Jacques Pienaar<jpienaar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Small test that performs A*B+A and A*B+B. PiperOrigin-RevId: 157492992 --- Commitb2355913b
authored by Androbin<robin.richtsfeld@gmail.com> Committed by drpngx<drpngx@users.noreply.github.com>: remove some invalid entries (#10294) I noticed that some entries don't exist (anymore). This seems to be some kind of a consistency issue. More specifically: `tensorflow/contrib/ios_examples/camera/data` `tensorflow/contrib/session_bundle/testdata/saved_model_half_plus_two` `tensorflow/contrib/session_bundle/testdata/saved_model_half_plus_two/variables` This is the continuation of PR #10264 --- Commit367ec84f8
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add SampleEmbeddingHelper to do sampling at inference time PiperOrigin-RevId: 157487623 --- Commita3ba225d5
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add BatchMatMul execution cost prediction PiperOrigin-RevId: 157487507 --- Commit34a29fc3b
authored by Eric Liu<ioeric@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [TF:XLA] preserve metadata when replacing HLO instructions. The motivation is to add metadata for HLO instructions that are created to replace existing HLO instructions during optimizations. The assumption is that the old instruction and the new instruction would perform the same function, and that they would be correlated to the same TF op. This might not always be correct since HLO optimizations can cross TF op boundaries. But still this seems to be better than nothing. Note that this still doesn't fully resolve missing OpMetadata after HLO optimizations; new instructions might be added without using ReplaceInstruction. PiperOrigin-RevId: 157484394 --- Commit092a7b6e6
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Disable keras lstm test in tsan. PiperOrigin-RevId: 157484268 --- Commit7280dafca
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use "empty" member function to test for emptiness PiperOrigin-RevId: 157483181 --- Commit6c3b15915
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Expands integration tests in dnn_test. PiperOrigin-RevId: 157476608 --- Commit727193b1f
authored by Androbin<robin.richtsfeld@gmail.com> Committed by drpngx<drpngx@users.noreply.github.com>: add missing import for `signal` package (#10264) * add missing import for `signal` package * add missing dependency for `signal` package * Update tf_python.cmake --- Commit21461213d
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unused BUILD dependencies PiperOrigin-RevId: 157473460 --- Commit4788ca2be
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix handling of Infinity/NaN in line chart domain Test Plan: - Use the script listed below to generate data that has enough infinities for these values to not be treated as outliers. - Load the data into TensorBoard (`--logdir /tmp/infbug`) and look at the scalars plot; also look at the console. - Before this change, the chart is completely blank, and there is a console warning: "QuantitativeScales cannot take NaN or Infinity as a domain value. Ignoring." - After this change, there is no console output, and the chart appears as intended: a reasonable domain is shown, and the infinities just shoot off the chart. Generating script: ```py import tensorflow as tf LOGDIR = '/tmp/infbug' STEPS = 134 def main(): x = tf.Variable(3.1415) y = x.assign_add(x) tf.summary.scalar('y', y) summ = tf.summary.merge_all() sess = tf.Session() writer = tf.summary.FileWriter(LOGDIR) writer.add_graph(sess.graph) sess.run(tf.global_variables_initializer()) for step in xrange(STEPS): writer.add_summary(sess.run(summ), step) writer.close() if __name__ == '__main__': main() ``` PiperOrigin-RevId: 157472340 --- Commit49476a62c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Remove unused namespace aliases PiperOrigin-RevId: 157468609 --- Commitd83074847
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Use "nullptr" for null pointer values PiperOrigin-RevId: 157468186 --- Commitb73fea6e2
authored by Tim Harley<tharley@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Refactor `tf.Operation.traceback` implementation in to methods of tf.Graph. Adds an `_extract_frame_info` method to allow derived classes to extend the information available in each op traceback, if desired. The default result of `tf.Operation.traceback` is unchanged. Also fixes a poorly scoped `pylint disable=line-too-long`, so adds the necessary enable/disable blocks to silence pylint for the offending docstrings. PiperOrigin-RevId: 157466174 --- Commitf7ca8db7d
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [XLA] Improve shape inference error messages for DynamicSlice/DynamicUpdateSlice. PiperOrigin-RevId: 157461335 --- Commit8c2a079ec
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Adding a slot / accumulator warmstart initializer that overrides the provided partitioner at call time with one passed at construction time. This is intended to be used for slot Variables (such as accumulators) associated with Optimizers, since these Variables are created in a fashion that relies on replicating the exact shape of the associated primary variables (see slot_creator). PiperOrigin-RevId: 157453498 --- Commit73d10599f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Default CUDNN_HOME to CUDA_TOOLKIT_TARGET_DIR. The cuDNN distro is most naturally installed in the same directory as the CUDA SDK, so try to find it there if the user doesn't specify any other directory. PiperOrigin-RevId: 157436253 --- Commiteb7cf9331
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Go: Update generated wrapper functions for TensorFlow ops. PiperOrigin-RevId: 157429266 --- Commit346dcc0a4
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 157429078 --- Commit3d5ede131
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update documentation for sparse_matmul op to reflect gradient calculation. PiperOrigin-RevId: 157428135 --- Commit822d64f0c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix embedding_lookup() bug where normalization did not work with ids of rank != 1. PiperOrigin-RevId: 157422220 --- Commit8cad6b824
authored by Jianwei Xie<xiejw@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Improve the error message for live set memory check. PiperOrigin-RevId: 157415647 --- Commit34dcd5b49
authored by Eugene Brevdo<ebrevdo@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: [tf contrib seq2seq] Bugfixes to BeamSearchDecoder Implementation by Cinjon Resnick. He can't push this since he's traveling. I just copied the fix and added some small syntax tweaks to make the unit tests pass. More comprehensive unit tests will come in the near future. Fixes at least part of #9904. BeamSearchDecoder: 1. Fix the bug where we don't pass the next cell state through. 2. Gather the cell state (and attention if that's a part of the model as an AttentionWrapper on the cell) according to the next_beam_ids. PiperOrigin-RevId: 157415564 --- Commitf7ae1461c
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix oversampling in the GPU version of multinomial due to an error in generating gumbel noise. -log(-log(U)) gives infinity if U draws a hard 0. Adds a tiny offset to U (2e-30) to avoid log(U) = -inf. The CPU sampling algorithm depends on the order of the logits which is undesirable and can also oversample the first logit if it is smaller than the smallest random float larger than 0 (~1e-7). Switching to double precision internally mitigates these problems, although it doesn't fix them. Slowdown is ~35% in the worst case. Also adds various tests that we would like the sampling to pass. CPU Benchmark before: 32 10000 1 0.060 0.069 0.87 32 10000 4 0.229 0.074 3.10 32 10000 32 2.180 0.059 37.09 32 100000 1 0.430 0.480 0.90 32 100000 4 2.322 0.449 5.17 32 100000 32 31.508 0.471 66.96 128 10000 1 0.168 0.235 0.71 128 10000 4 0.965 0.246 3.93 128 10000 32 7.989 0.225 35.51 128 100000 1 1.681 1.539 1.09 128 100000 4 9.012 1.57 35.73 128 100000 32 126.222 1.626 77.60 CPU Benchmark after: 32 10000 1 0.054 0.112 0.48 32 10000 4 0.206 0.093 2.21 32 10000 32 1.826 0.091 20.12 32 100000 1 0.292 0.636 0.46 32 100000 4 2.086 0.606 3.44 32 100000 32 28.496 0.633 45.03 128 10000 1 0.125 0.266 0.47 128 10000 4 0.759 0.258 2.94 128 10000 32 7.362 0.254 29.03 128 100000 1 1.550 2.18 10.71 128 100000 4 8.712 2.22 23.92 128 100000 32 122.585 2.213 55.39 PiperOrigin-RevId: 157414849 --- Commit62cf561f1
authored by Jianwei Xie<xiejw@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add numpy_input_fn integration for LinearRegressor and fix the expand_dim for label and weight. PiperOrigin-RevId: 157405237 --- Commit40c7e0dd7
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Go: Update generated wrapper functions for TensorFlow ops. PiperOrigin-RevId: 157402364 --- Commit2726c00ce
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 157402063 --- Commite9d2fba8f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix comment describing ignore_longer_outputs_than_inputs. PiperOrigin-RevId: 157400110 --- Commit5f097217f
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: An initial step of eliminating all implicit broadcast at the HLO level. Guard the shape inference for binary ops behind a flag. PiperOrigin-RevId: 157373647 --- Commite78e5ec8a
authored by Yangzihao Wang<yangzihao@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Set winograd nofused flag to be true by default. Disable winograd nonfused conv for certain input params to avoid a known bug in cuDNNv5 and cuDNNv6. PiperOrigin-RevId: 157352847 --- Commit3f9b69a50
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: In the CUDA path of depthwise_conv2d, add a fast variant for forward convolution when the input images are smaller than 16x16. PiperOrigin-RevId: 157347823 --- Commit848123e61
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix incorrect condition to instantiate depthwise_ops introduced in commit15d9f00fa
. The change should have excluded depthwise_conv2d for doubles on windows debug builds, but it excluded it for all windows and all debug builds. PiperOrigin-RevId: 157345929 --- Commit060d67b34
authored by Taehoon Lee<taehoonlee@snu.ac.kr> Committed by Taehoon Lee<taehoonlee@snu.ac.kr>: Fix typos --- Commit409419bcc
authored by Mark Daoust<markdaoust@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: add closing code quotes PiperOrigin-RevId: 157339360 --- Commitd20d0a623
authored by Jonathan Hseu<jhseu@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Fix the contrib estimator_test by updating the global step in all the appropriate spots. PiperOrigin-RevId: 157328239 --- Commitd1144d3a9
authored by Juang, Yi-Lin<b02901026@ntu.edu.tw> Committed by Juang, Yi-Lin<b02901026@ntu.edu.tw>: Fix typos --- Commitfa8bb43b1
authored by lanhin<lanhin1@gmail.com> Committed by lanhin<lanhin1@gmail.com>: Fixed a comment typo in GraphView:InitializeNode(), executor.cc. --- Commit9f13ae93f
authored by Asim Shankar<ashankar@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Java: Update Maven release to 1.2.0-rc1 PiperOrigin-RevId: 157294719 --- Commitc8256769c
authored by Gunhan Gulsoy<gunan@google.com> Committed by Gunhan Gulsoy<gunan@google.com>: Address comments and sanity check failures. --- Commit344225a60
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Update ops-related pbtxt files. PiperOrigin-RevId: 157292254 --- Commiteb2f6d041
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: VLOG(2) instead of VLOG(1) for detailed op printouts. PiperOrigin-RevId: 157291238 --- Commitb4466279a
authored by Shanqing Cai<cais@google.com> Committed by TensorFlower Gardener<gardener@tensorflow.org>: tfdbg: add runtime shape and dtype info to DebugNumericSummary PiperOrigin-RevId: 157291215 --- Commit4fb2425f8
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: Add GraphOptimizer to Grappler item builder to do L1 optimizations and inlining. Op Counts Comparison (BNMT) Counts: Profile vs Grappler Op: Add, 968 vs 965 Op: AddN, 2228 vs 2228 Op: ApplyGradientDescent, 84 vs 84 Op: BatchMatMul, 998 vs 998 Op: Identity, 142 vs 105 Op: MatMul, 63 vs 63 Op: Mul, 10318 vs 10306 Op: OneHot, 1 vs 1 Op: Reshape, 8421 vs 8422 Op: Select, 488 vs 488 Op: Shape, 8132 vs 8131 Op: Sigmoid, 942 vs 942 Op: Softmax, 19 vs 19 Op: StridedSlice, 58 vs 74 Op: Sub, 1398 vs 1394 Op: Tanh, 333 vs 333 Op: Tile, 21 vs 21 Op: Transpose, 39 vs 39 PiperOrigin-RevId: 157288420 --- Commit8918fa9ef
authored by A. Unique TensorFlower<gardener@tensorflow.org> Committed by TensorFlower Gardener<gardener@tensorflow.org>: BEGIN_PUBLIC Automated g4 rollback of changelist 157272843 PiperOrigin-RevId: 158534336
This commit is contained in:
parent
98eb5270e2
commit
1b5235fd89
12
README.md
12
README.md
@ -34,12 +34,12 @@ and discussion.**
|
||||
|
||||
People who are a little more adventurous can also try our nightly binaries:
|
||||
|
||||
* Linux CPU-only: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.1.0-cp27-none-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=cpu-slave)) / [Python 3.4](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.1.0-cp34-cp34m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=cpu-slave/)) / [Python 3.5](https://ci.tensorflow.org/view/Nightly/job/nightly-python35-linux-cpu/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.1.0-cp35-cp35m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-python35-linux-cpu/))
|
||||
* Linux GPU: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-linux/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.1.0-cp27-none-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-linux/)) / [Python 3.4](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-linux/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.1.0-cp34-cp34m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-linux/)) / [Python 3.5](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3.5,label=gpu-linux/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.1.0-cp35-cp35m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3.5,label=gpu-linux/))
|
||||
* Mac CPU-only: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=mac-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.1.0-py2-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=mac-slave/)) / [Python 3](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=mac-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.1.0-py3-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=mac-slave/))
|
||||
* Mac GPU: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-mac/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.1.0-py2-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-mac/)) / [Python 3](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-mac/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.1.0-py3-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-mac/))
|
||||
* Windows CPU-only: [Python 3.5 64-bit](https://ci.tensorflow.org/view/Nightly/job/nightly-win/DEVICE=cpu,OS=windows/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tensorflow-1.1.0-cp35-cp35m-win_amd64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-win/DEVICE=cpu,OS=windows/))
|
||||
* Windows GPU: [Python 3.5 64-bit](https://ci.tensorflow.org/view/Nightly/job/nightly-win/DEVICE=gpu,OS=windows/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tensorflow_gpu-1.1.0-cp35-cp35m-win_amd64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-win/DEVICE=gpu,OS=windows/))
|
||||
* Linux CPU-only: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.2.0rc2-cp27-none-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=cpu-slave)) / [Python 3.4](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.2.0rc2-cp34-cp34m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=cpu-slave/)) / [Python 3.5](https://ci.tensorflow.org/view/Nightly/job/nightly-python35-linux-cpu/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.2.0rc2-cp35-cp35m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-python35-linux-cpu/))
|
||||
* Linux GPU: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-linux/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.2.0rc2-cp27-none-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-linux/)) / [Python 3.4](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-linux/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.2.0rc2-cp34-cp34m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-linux/)) / [Python 3.5](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3.5,label=gpu-linux/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.2.0rc2-cp35-cp35m-linux_x86_64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-linux-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3.5,label=gpu-linux/))
|
||||
* Mac CPU-only: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=mac-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.2.0rc2-py2-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=mac-slave/)) / [Python 3](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=mac-slave/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow-1.2.0rc2-py3-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-cpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=mac-slave/))
|
||||
* Mac GPU: [Python 2](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-mac/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.2.0rc2-py2-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=gpu-mac/)) / [Python 3](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-mac/lastSuccessfulBuild/artifact/pip_test/whl/tensorflow_gpu-1.2.0rc2-py3-none-any.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-matrix-mac-gpu/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=gpu-mac/))
|
||||
* Windows CPU-only: [Python 3.5 64-bit](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows,PY=35/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tensorflow-1.2.0rc2-cp35-cp35m-win_amd64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows,PY=35/)) / [Python 3.6 64-bit](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows,PY=36/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tensorflow-1.2.0rc2-cp36-cp36m-win_amd64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows,PY=36/))
|
||||
* Windows GPU: [Python 3.5 64-bit](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows-gpu,PY=35/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tensorflow_gpu-1.2.0rc2-cp35-cp35m-win_amd64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows-gpu,PY=35/)) / [Python 3.6 64-bit](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows-gpu,PY=36/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tensorflow_gpu-1.2.0rc2-cp36-cp36m-win_amd64.whl) ([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-win/M=windows-gpu,PY=36/))
|
||||
* Android: [demo APK](https://ci.tensorflow.org/view/Nightly/job/nightly-android/lastSuccessfulBuild/artifact/out/tensorflow_demo.apk), [native libs](http://ci.tensorflow.org/view/Nightly/job/nightly-android/lastSuccessfulBuild/artifact/out/native/)
|
||||
([build history](https://ci.tensorflow.org/view/Nightly/job/nightly-android/))
|
||||
|
||||
|
136
RELEASE.md
136
RELEASE.md
@ -1,9 +1,11 @@
|
||||
# Changes since the last release
|
||||
# Release 1.2.0
|
||||
|
||||
## Major Features and Improvements
|
||||
* Python 3.6 support on Windows.
|
||||
* Added `tf.layers.conv3d_transpose` layer for spatio temporal deconvolution.
|
||||
* Added `tf.Session.make_callable()`, which provides a lower overhead means of running a similar step multiple times.
|
||||
* Added ibverbs-based RDMA support to contrib (courtesy @junshi15 from Yahoo).
|
||||
* Added libverbs-based RDMA support to contrib (courtesy @junshi15 from Yahoo).
|
||||
* Bring `tf.feature_column.*` into the API. Non-deprecated functionality from `tf.contrib.layers.*` is moved to `tf.feature_column.*` with cosmetic changes.
|
||||
* `RNNCell` objects now subclass `tf.layers.Layer`. The strictness described
|
||||
in the TensorFlow 1.1 release is gone: The first time an RNNCell is used,
|
||||
it caches its scope. All future uses of the RNNCell will reuse variables from
|
||||
@ -48,11 +50,141 @@
|
||||
Activation: rectified linear unit (ReLU)
|
||||
Data manipulation: multi-dimensional transposition (conversion), split,
|
||||
concat, sum and scale.
|
||||
* TensorForest Estimator now supports SavedModel export for serving.
|
||||
* Support client-provided ClusterSpec's and propagate them to all workers to enable the creation of dynamic TensorFlow clusters.
|
||||
* TensorFlow C library now available for Windows.
|
||||
* We released a new open-source version of TensorBoard.
|
||||
* [`SavedModel CLI`](https://www.tensorflow.org/versions/master/programmers_guide/saved_model_cli) tool available to inspect and execute MetaGraph in SavedModel
|
||||
* Android releases of TensorFlow are now pushed to jcenter for easier
|
||||
integration into apps. See
|
||||
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/README.md
|
||||
for more details.
|
||||
* RNNCells' variable names have been renamed for consistency with Keras layers.
|
||||
Specifically, the previous variable names "weights" and "biases" have
|
||||
been changed to "kernel" and "bias", respectively.
|
||||
This may cause backward incompatibility with regard to your old
|
||||
checkpoints containing such RNN cells, in which case you can use the tool
|
||||
[checkpoint_convert script](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/rnn/python/tools/checkpoint_convert.py)
|
||||
to convert the variable names in your old checkpoints.
|
||||
* Many of the RNN functions and classes that were in the `tf.nn` namespace
|
||||
before the 1.0 release and which were moved to `tf.contrib.rnn` have now
|
||||
been moved back to the core namespace. This includes
|
||||
`RNNCell`, `LSTMCell`, `GRUCell`, and a number of other cells. These
|
||||
now reside in `tf.nn.rnn_cell` (with aliases in `tf.contrib.rnn` for backwards
|
||||
compatibility). The original `tf.nn.rnn` function is now `tf.nn.static_rnn`,
|
||||
and the bidirectional static and state saving static rnn functions are also
|
||||
now back in the `tf.nn` namespace.
|
||||
|
||||
Notable exceptions are the `EmbeddingWrapper`, `InputProjectionWrapper` and
|
||||
`OutputProjectionWrapper`, which will slowly be moved to deprecation
|
||||
in `tf.contrib.rnn`. These are inefficient wrappers that should often
|
||||
be replaced by calling `embedding_lookup` or `layers.dense` as pre- or post-
|
||||
processing of the rnn. For RNN decoding, this functionality has been replaced
|
||||
with an alternative API in `tf.contrib.seq2seq`.
|
||||
* Intel MKL Integration (https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel-architecture). Intel developed a number of
|
||||
optimized deep learning primitives: In addition to matrix multiplication and
|
||||
convolution, these building blocks include:
|
||||
Direct batched convolution
|
||||
Pooling: maximum, minimum, average
|
||||
Normalization: LRN, batch normalization
|
||||
Activation: rectified linear unit (ReLU)
|
||||
Data manipulation: multi-dimensional transposition (conversion), split,
|
||||
concat, sum and scale.
|
||||
|
||||
## Deprecations
|
||||
|
||||
* TensorFlow 1.2 may be the last time we build with cuDNN 5.1. Starting with
|
||||
TensorFlow 1.3, we will try to build all our prebuilt binaries with cuDNN 6.0.
|
||||
While we will try to keep our source code compatible with cuDNN 5.1, it will
|
||||
be best effort.
|
||||
|
||||
## Breaking Changes to the API
|
||||
* `org.tensorflow.contrib.android.TensorFlowInferenceInterface` now throws exceptions where possible and has simplified method signatures.
|
||||
|
||||
## Changes to contrib APIs
|
||||
* Added `tf.contrib.util.create_example`.
|
||||
* Added bilinear interpolation to `tf.contrib.image`.
|
||||
* Add `tf.contrib.stateless` for random ops with custom seed control.
|
||||
* MultivariateNormalFullCovariance added to contrib/distributions/
|
||||
* tensorflow/contrib/rnn undergoes RNN cell variable renaming for
|
||||
consistency with Keras layers. Specifically, the previous variable names
|
||||
"weights" and "biases" are changed to "kernel" and "bias", respectively.
|
||||
This may cause backward incompatibility with regard to your old
|
||||
checkpoints containing such RNN cells, in which case you can use the
|
||||
[checkpoint_convert script](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/rnn/python/tools/checkpoint_convert.py)
|
||||
to convert the variable names in your old checkpoints.
|
||||
|
||||
## Bug Fixes and Other Changes
|
||||
* In python, `Operation.get_attr` on type attributes returns the Python DType
|
||||
version of the type to match expected get_attr documentation rather than the
|
||||
protobuf enum.
|
||||
* tensorflow/contrib/rnn undergoes RNN cell variable renaming for
|
||||
consistency with Keras layers. Specifically, the previous variable names
|
||||
"weights" and "biases" are changed to "kernel" and "bias", respectively.
|
||||
* Changed MIN_SDK version to 8.0 when building iOS libraries.
|
||||
* Fixed LIBXSMM integration.
|
||||
* Make decode_jpeg/decode_png/decode_gif handle all formats, since users frequently try to decode an image as the wrong type.
|
||||
* Improve implicit broadcasting lowering.
|
||||
* Improving stability of GCS/Bigquery clients by a faster retrying of stale transmissions.
|
||||
* Remove OpKernelConstruction::op_def() as part of minimizing proto dependencies.
|
||||
* VectorLaplaceDiag distribution added.
|
||||
* Android demo no longer requires libtensorflow_demo.so to run (libtensorflow_inference.so still required)
|
||||
* Added `categorical_column_with_vocabulary_file`.
|
||||
* Introduce ops for batching/unbatching tensors across Session::Run() calls.
|
||||
* Add tf.log_sigmoid(x) = tf.log(tf.sigmoid(x)) = -tf.nn.softplus(-x).
|
||||
* Changed hooks lists to immutable tuples, and now allow any iterable for the associated arguments.
|
||||
* Introduce TFDecorator.
|
||||
* Added an Mfcc op for speech feature generation.
|
||||
* Improved DirectSession::Run() overhead and error checking. Feeding a value of the wrong type will now synchronously raise an INVALID_ARGUMENT error instead of asynchronously raising an INTERNAL error. Code that depends on the (undefined) behavior when feeding a tensor of the wrong type may need to be updated.
|
||||
* Added unreduced NONE, and reduced MEAN options for losses. Removed "WEIGHTED_" prefix from other Reduction constants.
|
||||
* assertAllClose now handles dicts.
|
||||
* Added Gmock matcher for HloInstructions.
|
||||
* Add var name to errors on variable restore.
|
||||
* Added an AudioSpectrogram op for audio feature generation.
|
||||
* Added `reduction` arg to losses.
|
||||
* `tf.placeholder` can represent scalar shapes and partially known.
|
||||
* Remove estimator_spec(mode) argument.
|
||||
* Added an AudioSpectrogram op for audio feature generation.
|
||||
* TensorBoard disables all runs by default if there are more than 40 runs.
|
||||
* Removed old doc generator code.
|
||||
* GCS file system integration now supports domain buckets, e.g gs://bucket.domain.com/path.
|
||||
* Add `tf.summary.text` for outputting text to TensorBoard.
|
||||
* The "run" command of tfdbg's command-line interface now supports filtering of tensors by node name, op type and tensor dtype.
|
||||
* `tf.string_to_number` now supports int64 and float64 outputs.
|
||||
|
||||
## Thanks to our Contributors
|
||||
|
||||
This release contains contributions from many people at Google, as well as:
|
||||
|
||||
4F2E4A2E, Aaron Schumacher, Abhi Agg, admcrae, Adriano Carmezim, Adrià Arrufat,
|
||||
agramesh1, Akimitsu Seo, Alan Mosca, Alex Egg, Alex Rothberg, Alexander Heinecke,
|
||||
Alexander Matyasko, Alexandr Baranezky, Alexandre Caulier, Ali Siddiqui, Anand Venkat,
|
||||
Andrew Hundt, Androbin, Anmol Sharma, Arie, Arno Leist, Arron Cao, AuréLien Geron, Bairen Yi,
|
||||
Beomsu Kim, Carl Thomé, cfperez, Changming Sun, Corey Wharton, critiqjo, Dalei Li, Daniel
|
||||
Rasmussen, Daniel Trebbien, DaríO Hereñú, David Eng, David Norman, David Y. Zhang, Davy Song, ddurham2,
|
||||
Deepak Subburam, Dmytro Kyrychuk, Dominic Rossi, Dominik SchlöSser, Dustin Tran,
|
||||
Eduardo Pinho, Egil Martinsson, Elliot Saba, Eric Bigelow, Erik Smistad, Evan Klitzke,
|
||||
Fabrizio Milo, Falcon Dai, Fei Gao, FloopCZ, Fung Lam, Gautam, GBLin5566, Greg Peatfield,
|
||||
Gu Wang, Guenther Schmuelling, Hans Pabst, Harun Gunaydin, Huaizheng, Ido Shamay, Ikaro
|
||||
Silva, Ilya Edrenkin, Immexxx, James Mishra, Jamie Cooke, Jay Young, Jayaram Bobba,
|
||||
Jianfei Wang, jinghua2, Joey Meyer, John Maidens, Jonghoon Jin, Julian Villella,
|
||||
Jun Kim, Jun Shi, Junwei Pan, jyegerlehner, Karan Desai, Karel Van De Plassche,
|
||||
Kb Sriram, KhabarlakKonstantin, Koan-Sin Tan, krivard, Kwotsin, Leandro Gracia Gil,
|
||||
Li Chen, Liangliang He, Louie Helm, lspvic, Luiz Henrique Soares, LáSzló Csomor,
|
||||
Mark Wong, Mathew Wicks, Matthew Rahtz, Maxwell Paul Brickner, Michael Hofmann, Miguel
|
||||
Flores Ruiz De Eguino, MikeTam1021, Mortada Mehyar, Mycosynth, Namnamseo,
|
||||
Nate Harada, Neven Miculinic, Nghia Tran, Nick Lyu, Niranjan Hasabnis, Nishidha, Oleksii
|
||||
Kuchaiev, Oyesh Mann Singh, Panmari, Patrick, Paul Van Eck, Piyush Chaudhary, Quim Llimona,
|
||||
Raingo, Richard Davies, Ruben Vereecken, Sahit Chintalapudi, Sam Abrahams, Santiago Castro,
|
||||
Scott Sievert, Sean O'Keefe, Sebastian Schlecht, Shane, Shubhankar Deshpande, Spencer Schaber,
|
||||
Sunyeop Lee, t13m, td2014, Thomas H. P. Andersen, Toby Petty, Umang Mehta,
|
||||
Vadim Markovtsev, Valentin Iovene, Vincent Zhao, Vit Stepanovs, Vivek Rane, Vu Pham, wannabesrevenge,
|
||||
weipingpku, wuhaixutab, wydwww, Xiang Gao, Xiaolin Lin, xiaoyaozhuzi, Yaroslav Bulatov, Yi Liu,
|
||||
Yoshihiro Sugi, Yuan (Terry) Tang, Yuming Wang, Yuxin Wu, Zader Zheng, Zhaojun Zhang, zhengjiajin,
|
||||
ZhipengShen, Ziming Dong, zjj2wry
|
||||
|
||||
We are also grateful to all who filed issues or helped resolve them, asked and
|
||||
answered questions, and were part of inspiring discussions.
|
||||
|
||||
# Release 1.1.0
|
||||
|
||||
|
157
configure
vendored
157
configure
vendored
@ -13,28 +13,16 @@ popd > /dev/null
|
||||
PLATFORM="$(uname -s | tr 'A-Z' 'a-z')"
|
||||
|
||||
function is_linux() {
|
||||
if [[ "${PLATFORM}" == "linux" ]]; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
[[ "${PLATFORM}" == "linux" ]]
|
||||
}
|
||||
|
||||
function is_macos() {
|
||||
if [[ "${PLATFORM}" == "darwin" ]]; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
[[ "${PLATFORM}" == "darwin" ]]
|
||||
}
|
||||
|
||||
function is_windows() {
|
||||
# On windows, the shell script is actually running in msys
|
||||
if [[ "${PLATFORM}" =~ msys_nt*|mingw*|cygwin*|uwin* ]]; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
[[ "${PLATFORM}" =~ msys_nt*|mingw*|cygwin*|uwin* ]]
|
||||
}
|
||||
|
||||
function sed_in_place() {
|
||||
@ -105,9 +93,7 @@ function setup_python {
|
||||
|
||||
if [ -z "$PYTHON_LIB_PATH" ]; then
|
||||
# Split python_path into an array of paths, this allows path containing spaces
|
||||
IFS=','
|
||||
python_lib_path=($(python_path))
|
||||
unset IFS
|
||||
IFS=',' read -r -a python_lib_path <<< "$(python_path)"
|
||||
|
||||
if [ 1 = "$USE_DEFAULT_PYTHON_LIB_PATH" ]; then
|
||||
PYTHON_LIB_PATH=${python_lib_path[0]}
|
||||
@ -119,7 +105,7 @@ function setup_python {
|
||||
echo " $x"
|
||||
done
|
||||
set -- "${python_lib_path[@]}"
|
||||
echo "Please input the desired Python library path to use. Default is ["$1"]"
|
||||
echo "Please input the desired Python library path to use. Default is [$1]"
|
||||
read b || true
|
||||
if [ "$b" == "" ]; then
|
||||
PYTHON_LIB_PATH=${python_lib_path[0]}
|
||||
@ -135,8 +121,9 @@ function setup_python {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local python_major_version=$("${PYTHON_BIN_PATH}" -c 'from __future__ import print_function; import sys; print(sys.version_info[0]);')
|
||||
if [ "$python_major_version" == "" ]; then
|
||||
local python_major_version
|
||||
python_major_version=$("${PYTHON_BIN_PATH}" -c 'from __future__ import print_function; import sys; print(sys.version_info[0]);' | head -c1)
|
||||
if [ -z "$python_major_version" ]; then
|
||||
echo -e "\n\nERROR: Problem getting python version. Is $PYTHON_BIN_PATH the correct python binary?"
|
||||
exit 1
|
||||
fi
|
||||
@ -144,6 +131,7 @@ function setup_python {
|
||||
# Convert python path to Windows style before writing into bazel.rc
|
||||
if is_windows; then
|
||||
PYTHON_BIN_PATH="$(cygpath -m "$PYTHON_BIN_PATH")"
|
||||
PYTHON_LIB_PATH="$(cygpath -m "$PYTHON_LIB_PATH")"
|
||||
fi
|
||||
|
||||
# Set-up env variables used by python_configure.bzl
|
||||
@ -184,7 +172,13 @@ fi
|
||||
# This file contains customized config settings.
|
||||
rm -f .tf_configure.bazelrc
|
||||
touch .tf_configure.bazelrc
|
||||
touch .bazelrc
|
||||
if [[ ! -e .bazelrc ]]; then
|
||||
if [[ -e "${HOME}/.bazelrc" ]]; then
|
||||
echo "import ${HOME}/.bazelrc" >.bazelrc
|
||||
else
|
||||
touch .bazelrc
|
||||
fi
|
||||
fi
|
||||
sed_in_place "/tf_configure/d" .bazelrc
|
||||
echo "import %workspace%/.tf_configure.bazelrc" >> .bazelrc
|
||||
|
||||
@ -241,12 +235,14 @@ if [ "$TF_NEED_MKL" == "1" ]; then # TF_NEED_MKL
|
||||
else
|
||||
default_mkl_path=/opt/intel/mklml
|
||||
fromuser=""
|
||||
read -p "Please specify the location where MKL is installed. [Default is $default_mkl_path]: " MKL_INSTALL_PATH
|
||||
fromuser="1"
|
||||
if [ -z "$MKL_INSTALL_PATH" ]; then
|
||||
read -p "Please specify the location where MKL is installed. [Default is $default_mkl_path]: " MKL_INSTALL_PATH
|
||||
fromuser="1"
|
||||
fi
|
||||
if [ -z "$MKL_INSTALL_PATH" ]; then
|
||||
MKL_INSTALL_PATH=$default_mkl_path
|
||||
fi
|
||||
# Result returned from "read" will be used unexpanded. That make "~" unuseable.
|
||||
# Result returned from "read" will be used unexpanded. That make "~" unusable.
|
||||
# Going through one more level of expansion to handle that.
|
||||
MKL_INSTALL_PATH=`${PYTHON_BIN_PATH} -c "import os; print(os.path.realpath(os.path.expanduser('${MKL_INSTALL_PATH}')))"`
|
||||
fi
|
||||
@ -481,7 +477,7 @@ done
|
||||
while true; do
|
||||
# Configure the Cuda SDK version to use.
|
||||
if [ -z "$TF_CUDA_VERSION" ]; then
|
||||
read -p "Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to use system default]: " TF_CUDA_VERSION
|
||||
read -p "Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 8.0]: " TF_CUDA_VERSION
|
||||
fi
|
||||
|
||||
fromuser=""
|
||||
@ -524,7 +520,6 @@ while true; do
|
||||
export CUDA_TOOLKIT_PATH
|
||||
write_action_env_to_bazelrc "CUDA_TOOLKIT_PATH" "$CUDA_TOOLKIT_PATH"
|
||||
export TF_CUDA_VERSION
|
||||
write_action_env_to_bazelrc "TF_CUDA_VERSION" "$TF_CUDA_VERSION"
|
||||
break
|
||||
fi
|
||||
echo "Invalid path to CUDA $TF_CUDA_VERSION toolkit. ${CUDA_TOOLKIT_PATH}/${CUDA_RT_LIB_PATH} cannot be found"
|
||||
@ -537,6 +532,13 @@ while true; do
|
||||
CUDA_TOOLKIT_PATH=""
|
||||
done
|
||||
|
||||
# Set default CUDA version if not set
|
||||
if [ -z "$TF_CUDA_VERSION" ]; then
|
||||
TF_CUDA_VERSION="8.0"
|
||||
export TF_CUDA_VERSION
|
||||
fi
|
||||
write_action_env_to_bazelrc "TF_CUDA_VERSION" "$TF_CUDA_VERSION"
|
||||
|
||||
# Set up which gcc nvcc should use as the host compiler
|
||||
# No need to set this on Windows
|
||||
while [[ "$TF_CUDA_CLANG" != "1" ]] && ! is_windows && true; do
|
||||
@ -570,7 +572,7 @@ done
|
||||
while true; do
|
||||
# Configure the cuDNN version to use.
|
||||
if [ -z "$TF_CUDNN_VERSION" ]; then
|
||||
read -p "Please specify the cuDNN version you want to use. [Leave empty to use system default]: " TF_CUDNN_VERSION
|
||||
read -p "Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 6.0]: " TF_CUDNN_VERSION
|
||||
fi
|
||||
|
||||
fromuser=""
|
||||
@ -581,7 +583,7 @@ while true; do
|
||||
if [ -z "$CUDNN_INSTALL_PATH" ]; then
|
||||
CUDNN_INSTALL_PATH=$default_cudnn_path
|
||||
fi
|
||||
# Result returned from "read" will be used unexpanded. That make "~" unuseable.
|
||||
# Result returned from "read" will be used unexpanded. That make "~" unusable.
|
||||
# Going through one more level of expansion to handle that.
|
||||
CUDNN_INSTALL_PATH=`"${PYTHON_BIN_PATH}" -c "import os; print(os.path.realpath(os.path.expanduser('${CUDNN_INSTALL_PATH}')))"`
|
||||
fi
|
||||
@ -603,7 +605,7 @@ while true; do
|
||||
CUDA_DNN_LIB_ALT_PATH="libcudnn${TF_CUDNN_EXT}.dylib"
|
||||
fi
|
||||
|
||||
if [ -e "$CUDNN_INSTALL_PATH/${CUDA_DNN_LIB_ALT_PATH}" -o -e "$CUDNN_INSTALL_PATH/${CUDA_DNN_LIB_PATH}" ]; then
|
||||
if [ -e "$CUDNN_INSTALL_PATH/${CUDA_DNN_LIB_ALT_PATH}" ] || [ -e "$CUDNN_INSTALL_PATH/${CUDA_DNN_LIB_PATH}" ]; then
|
||||
export TF_CUDNN_VERSION
|
||||
write_action_env_to_bazelrc "TF_CUDNN_VERSION" "$TF_CUDNN_VERSION"
|
||||
export CUDNN_INSTALL_PATH
|
||||
@ -620,8 +622,8 @@ while true; do
|
||||
CUDNN_PATH_FROM_LDCONFIG="$($LDCONFIG_BIN -p | sed -n 's/.*libcudnn.so .* => \(.*\)/\1/p')"
|
||||
if [ -e "${CUDNN_PATH_FROM_LDCONFIG}${TF_CUDNN_EXT}" ]; then
|
||||
export TF_CUDNN_VERSION
|
||||
write_action_env_to_bazelrc "TF_CUDNN_VERSION" "$TF_CUDNN_VERSION"
|
||||
export CUDNN_INSTALL_PATH="$(dirname ${CUDNN_PATH_FROM_LDCONFIG})"
|
||||
export CUDNN_INSTALL_PATH
|
||||
CUDNN_INSTALL_PATH="$(dirname ${CUDNN_PATH_FROM_LDCONFIG})"
|
||||
write_action_env_to_bazelrc "CUDNN_INSTALL_PATH" "$CUDNN_INSTALL_PATH"
|
||||
break
|
||||
fi
|
||||
@ -641,6 +643,13 @@ while true; do
|
||||
CUDNN_INSTALL_PATH=""
|
||||
done
|
||||
|
||||
# Set default CUDNN version if not set
|
||||
if [ -z "$TF_CUDNN_VERSION" ]; then
|
||||
TF_CUDNN_VERSION="6"
|
||||
export TF_CUDNN_VERSION
|
||||
fi
|
||||
write_action_env_to_bazelrc "TF_CUDNN_VERSION" "$TF_CUDNN_VERSION"
|
||||
|
||||
# Configure the compute capabilities that TensorFlow builds for.
|
||||
# Since Cuda toolkit is not backward-compatible, this is not guaranteed to work.
|
||||
while true; do
|
||||
@ -707,7 +716,7 @@ if [ "$TF_NEED_OPENCL" == "1" ]; then
|
||||
while true; do
|
||||
fromuser=""
|
||||
if [ -z "$HOST_CXX_COMPILER" ]; then
|
||||
default_cxx_host_compiler=$(which clang++-3.6 || true)
|
||||
default_cxx_host_compiler=$(which g++ || true)
|
||||
read -p "Please specify which C++ compiler should be used as the host C++ compiler. [Default is $default_cxx_host_compiler]: " HOST_CXX_COMPILER
|
||||
fromuser="1"
|
||||
if [ -z "$HOST_CXX_COMPILER" ]; then
|
||||
@ -731,7 +740,7 @@ done
|
||||
while true; do
|
||||
fromuser=""
|
||||
if [ -z "$HOST_C_COMPILER" ]; then
|
||||
default_c_host_compiler=$(which clang-3.6 || true)
|
||||
default_c_host_compiler=$(which gcc || true)
|
||||
read -p "Please specify which C compiler should be used as the host C compiler. [Default is $default_c_host_compiler]: " HOST_C_COMPILER
|
||||
fromuser="1"
|
||||
if [ -z "$HOST_C_COMPILER" ]; then
|
||||
@ -787,6 +796,82 @@ done
|
||||
# end of if "$TF_NEED_OPENCL" == "1"
|
||||
fi
|
||||
|
||||
# TODO(gunan): Remove once bazel correctly handles changes in remote repositories.
|
||||
bazel clean
|
||||
|
||||
while [ "$TF_NEED_MPI" == "" ]; do
|
||||
read -p "Do you wish to build TensorFlow with "\
|
||||
"MPI support? [y/N] " INPUT
|
||||
case $INPUT in
|
||||
[Yy]* ) echo "MPI support will be enabled for "\
|
||||
"TensorFlow"; TF_NEED_MPI=1;;
|
||||
[Nn]* ) echo "MPI support will not be enabled for "\
|
||||
"TensorFlow"; TF_NEED_MPI=0;;
|
||||
"" ) echo "MPI support will not be enabled for "\
|
||||
"TensorFlow"; TF_NEED_MPI=0;;
|
||||
* ) echo "Invalid selection: " $INPUT;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Find out where the MPI toolkit is installed
|
||||
while true; do
|
||||
if [ "$TF_NEED_MPI" == "0" ]; then
|
||||
break;
|
||||
fi
|
||||
|
||||
fromuser=""
|
||||
if [ -z "$MPI_HOME" ]; then
|
||||
#Get the base folder by removing the bin path
|
||||
default_mpi_path=$(dirname $(dirname $(which mpirun)) || dirname $(dirname $(which mpiexec)) || true)
|
||||
read -p "Please specify the MPI toolkit folder. [Default is $default_mpi_path]: " MPI_HOME
|
||||
fromuser="1"
|
||||
if [ -z "$MPI_HOME" ]; then
|
||||
MPI_HOME=$default_mpi_path
|
||||
fi
|
||||
fi
|
||||
|
||||
#Check that the include and library folders are where we expect them to be
|
||||
if [ -e "$MPI_HOME/include" ] && [ -e "$MPI_HOME/lib" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
echo "Invalid path to the MPI Toolkit. ${MPI_HOME}/include or ${MPI_HOME}/lib cannot be found."
|
||||
if [ -z "$fromuser" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Retry
|
||||
MPI_HOME=""
|
||||
done
|
||||
|
||||
|
||||
if [ "$TF_NEED_MPI" == "1" ]; then
|
||||
write_to_bazelrc 'build --define with_mpi_support=true'
|
||||
|
||||
#Link the MPI header files
|
||||
ln -sf "${MPI_HOME}/include/mpi.h" third_party/mpi/mpi.h
|
||||
|
||||
|
||||
#Determine if we use OpenMPI or MVAPICH, these require different header files
|
||||
#to be included here to make bazel dependency checker happy
|
||||
|
||||
if [ -e "${MPI_HOME}/include/mpi_portable_platform.h" ]; then
|
||||
#OpenMPI
|
||||
ln -sf "${MPI_HOME}/include/mpi_portable_platform.h" third_party/mpi/
|
||||
sed -i -e "s/MPI_LIB_IS_OPENMPI=False/MPI_LIB_IS_OPENMPI=True/" third_party/mpi/mpi.bzl
|
||||
else
|
||||
#MVAPICH / MPICH
|
||||
ln -sf "${MPI_HOME}/include/mpio.h" third_party/mpi/
|
||||
ln -sf "${MPI_HOME}/include/mpicxx.h" third_party/mpi/
|
||||
sed -i -e "s/MPI_LIB_IS_OPENMPI=True/MPI_LIB_IS_OPENMPI=False/" third_party/mpi/mpi.bzl
|
||||
fi
|
||||
|
||||
|
||||
if [ -e "${MPI_HOME}/lib/libmpi.so" ]; then
|
||||
ln -sf "${MPI_HOME}/lib/libmpi.so" third_party/mpi/
|
||||
else
|
||||
echo "Cannot find the MPI library file in ${MPI_HOME}/lib "
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
echo "Configuration finished"
|
||||
|
@ -71,6 +71,12 @@ config_setting(
|
||||
|
||||
config_setting(
|
||||
name = "windows",
|
||||
values = {"cpu": "x64_windows"},
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
config_setting(
|
||||
name = "windows_msvc",
|
||||
values = {"cpu": "x64_windows_msvc"},
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
@ -164,6 +170,12 @@ config_setting(
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
config_setting(
|
||||
name = "with_mpi_support",
|
||||
values = {"define": "with_mpi_support=true"},
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "internal",
|
||||
packages = ["//tensorflow/..."],
|
||||
@ -447,6 +459,7 @@ cc_binary(
|
||||
"//tensorflow/c:exported_symbols.lds",
|
||||
],
|
||||
"//tensorflow:windows": [],
|
||||
"//tensorflow:windows_msvc": [],
|
||||
"//conditions:default": [
|
||||
"-z defs",
|
||||
"-s",
|
||||
|
@ -1345,7 +1345,7 @@ class CApiWhileLoopTest : public ::testing::Test {
|
||||
EXPECT_EQ(expected_value, *data);
|
||||
}
|
||||
|
||||
// Create a valid conditonal graph. Useful for testing unrelated errors.
|
||||
// Create a valid conditional graph. Useful for testing unrelated errors.
|
||||
void CreateCondGraph() {
|
||||
TF_Operation* one = ScalarConst(1, params_->cond_graph, s_);
|
||||
TF_Operation* less_than =
|
||||
|
@ -23,6 +23,8 @@ usage() {
|
||||
echo -e "-h, --help\tdisplay this message"
|
||||
}
|
||||
|
||||
[ $# == 0 ] && usage && exit 0
|
||||
|
||||
# read the options
|
||||
ARGS=`getopt -o p:v:h --long prefix:,version:,help -n $0 -- "$@"`
|
||||
eval set -- "$ARGS"
|
||||
@ -41,11 +43,13 @@ while true ; do
|
||||
"") shift 2 ;;
|
||||
*) TF_VERSION=$2 ; shift 2 ;;
|
||||
esac ;;
|
||||
--) shift ; echo "Try '$0 --help' for more information."; exit 1 ;;
|
||||
--) shift ; break ;;
|
||||
*) echo "Internal error! Try '$0 --help' for more information." ; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
[ -z $TF_VERSION ] && echo "Specify a version using -v or --version" && exit 1
|
||||
|
||||
echo "Generating pkgconfig file for TensorFlow $TF_VERSION in $TF_PREFIX"
|
||||
|
||||
cat << EOF > tensorflow.pc
|
||||
|
@ -284,5 +284,6 @@ def target_llvm_triple():
|
||||
"//tensorflow:android_arm64": "aarch64-none-android",
|
||||
"//tensorflow:android_x86": "i686-none-android",
|
||||
"//tensorflow:linux_ppc64le": "ppc64le-ibm-linux-gnu",
|
||||
"//tensorflow:darwin": "x86_64-none-darwin",
|
||||
"//conditions:default": "x86_64-pc-linux",
|
||||
})
|
||||
|
@ -18,9 +18,26 @@ package(
|
||||
default_visibility = [":internal"],
|
||||
)
|
||||
|
||||
load("//tensorflow:tensorflow.bzl", "cc_header_only_library")
|
||||
load("//tensorflow:tensorflow.bzl", "tf_kernel_library")
|
||||
load("@local_config_cuda//cuda:build_defs.bzl", "if_cuda")
|
||||
|
||||
# TODO(jhseu): Fix this target.
|
||||
#
|
||||
# This target can be used by XLA device plugins to prevent circular
|
||||
# dependencies, and provides access to all of the required headers
|
||||
# for building a device library.
|
||||
#cc_header_only_library(
|
||||
# name = "xla_jit_headers_lib",
|
||||
# visibility = ["//visibility:public"],
|
||||
# deps = [
|
||||
# ":xla_cpu_device",
|
||||
# ":xla_cpu_jit",
|
||||
# ":xla_gpu_device",
|
||||
# ":xla_gpu_jit",
|
||||
# ],
|
||||
#)
|
||||
|
||||
# Target that bundles up the XLA CPU and GPU JIT devices.
|
||||
cc_library(
|
||||
name = "jit",
|
||||
@ -30,6 +47,7 @@ cc_library(
|
||||
":xla_cpu_jit",
|
||||
":xla_gpu_device",
|
||||
":xla_gpu_jit",
|
||||
"//tensorflow/compiler/plugin",
|
||||
],
|
||||
alwayslink = 1,
|
||||
)
|
||||
|
36
tensorflow/compiler/plugin/BUILD
Normal file
36
tensorflow/compiler/plugin/BUILD
Normal file
@ -0,0 +1,36 @@
|
||||
# Copyright 2017 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ==============================================================================
|
||||
|
||||
"""Configuration file for an XLA plugin.
|
||||
- please don't check in changes to this file
|
||||
- to prevent changes appearing in git status, use:
|
||||
git update-index --assume-unchanged tensorflow/compiler/plugin/BUILD
|
||||
|
||||
To add additional devices to the XLA subsystem, add targets to the
|
||||
dependency list in the 'plugin' target. For instance:
|
||||
|
||||
deps = ["//tensorflow/compiler/plugin/example:plugin_lib"],
|
||||
"""
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
package(
|
||||
default_visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "plugin",
|
||||
deps = [],
|
||||
)
|
@ -1,12 +1,14 @@
|
||||
"""Build rules for Tensorflow/XLA testing."""
|
||||
|
||||
load("@local_config_cuda//cuda:build_defs.bzl", "cuda_is_configured")
|
||||
load("//tensorflow/compiler/tests:plugin.bzl", "plugins")
|
||||
|
||||
def all_backends():
|
||||
b = ["cpu"] + plugins.keys()
|
||||
if cuda_is_configured():
|
||||
return ["cpu", "gpu"]
|
||||
return b + ["gpu"]
|
||||
else:
|
||||
return ["cpu"]
|
||||
return b
|
||||
|
||||
def tf_xla_py_test(name, srcs=[], deps=[], tags=[], data=[], main=None,
|
||||
disabled_backends=None, **kwargs):
|
||||
@ -53,6 +55,10 @@ def tf_xla_py_test(name, srcs=[], deps=[], tags=[], data=[], main=None,
|
||||
backend_args += ["--test_device=XLA_GPU",
|
||||
"--types=DT_FLOAT,DT_DOUBLE,DT_INT32,DT_INT64,DT_BOOL"]
|
||||
backend_tags += ["requires-gpu-sm35"]
|
||||
elif backend in plugins:
|
||||
backend_args += ["--test_device=" + plugins[backend]["device"],
|
||||
"--types=" + plugins[backend]["types"]]
|
||||
backend_tags += plugins[backend]["tags"]
|
||||
else:
|
||||
fail("Unknown backend {}".format(backend))
|
||||
|
||||
|
23
tensorflow/compiler/tests/plugin.bzl
Normal file
23
tensorflow/compiler/tests/plugin.bzl
Normal file
@ -0,0 +1,23 @@
|
||||
# Copyright 2017 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ==============================================================================
|
||||
"""Additional XLA devices to be included in the unit test suite."""
|
||||
|
||||
# If you wish to edit this file without checking it into the repo, consider:
|
||||
# git update-index --assume-unchanged tensorflow/compiler/tests/plugin.bzl
|
||||
|
||||
plugins = {
|
||||
#"poplar": {"device":"XLA_IPU", "types":"DT_FLOAT,DT_INT32", "tags":[]},
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ from tensorflow.python.ops import array_ops
|
||||
from tensorflow.python.platform import googletest
|
||||
|
||||
|
||||
|
||||
class SliceTest(XLATestCase):
|
||||
|
||||
def test1D(self):
|
||||
@ -48,11 +49,14 @@ class SliceTest(XLATestCase):
|
||||
with self.test_scope():
|
||||
o = array_ops.slice(i, [1, 2, 2], [1, 1, 4])
|
||||
params = {
|
||||
i: [[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
|
||||
i: [[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
||||
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
|
||||
[5, 3, 1, 7, 9, 2, 4, 6, 8, 0]],
|
||||
[[5, 5, 5, 5, 5, 5, 5, 5, 5, 5], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[[5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[8, 7, 6, 5, 4, 3, 2, 1, 8, 7]],
|
||||
[[7, 5, 7, 5, 7, 5, 7, 5, 7, 5], [1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
|
||||
[[7, 5, 7, 5, 7, 5, 7, 5, 7, 5],
|
||||
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
|
||||
[9, 8, 7, 9, 8, 7, 9, 8, 7, 9]]]
|
||||
}
|
||||
result = o.eval(feed_dict=params)
|
||||
@ -60,6 +64,7 @@ class SliceTest(XLATestCase):
|
||||
self.assertAllEqual([[[6, 5, 4, 3]]], result)
|
||||
|
||||
|
||||
|
||||
class StridedSliceTest(XLATestCase):
|
||||
|
||||
def test1D(self):
|
||||
@ -95,11 +100,14 @@ class StridedSliceTest(XLATestCase):
|
||||
with self.test_scope():
|
||||
o = array_ops.strided_slice(i, [0, 2, 2], [2, 3, 6], [1, 1, 2])
|
||||
params = {
|
||||
i: [[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
|
||||
i: [[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
||||
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
|
||||
[5, 3, 1, 7, 9, 2, 4, 6, 8, 0]],
|
||||
[[5, 5, 5, 5, 5, 5, 5, 5, 5, 5], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[[5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[8, 7, 6, 5, 4, 3, 2, 1, 8, 7]],
|
||||
[[7, 5, 7, 5, 7, 5, 7, 5, 7, 5], [1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
|
||||
[[7, 5, 7, 5, 7, 5, 7, 5, 7, 5],
|
||||
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
|
||||
[9, 8, 7, 9, 8, 7, 9, 8, 7, 9]]]
|
||||
}
|
||||
result = o.eval(feed_dict=params)
|
||||
@ -113,20 +121,25 @@ class StridedSliceTest(XLATestCase):
|
||||
with self.test_scope():
|
||||
o = array_ops.strided_slice(i, [2, 2, 6], [0, 0, 2], [-1, -1, -2])
|
||||
params = {
|
||||
i: [[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
|
||||
[5, 3, 1, 7, 9, 2, 4, 6, 8, 0], [4, 5, 2, 4, 3, 7, 6, 8, 9,
|
||||
4]],
|
||||
[[5, 5, 5, 5, 5, 5, 5, 5, 5, 5], [4, 3, 4, 5, 7, 6, 5, 3, 4, 5],
|
||||
[8, 7, 6, 5, 4, 3, 2, 1, 8, 7], [7, 1, 7, 1, 8, 1, 8, 1, 3,
|
||||
1]],
|
||||
[[7, 5, 7, 5, 7, 5, 7, 5, 7, 5], [1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
|
||||
[9, 8, 7, 9, 8, 7, 9, 8, 7, 9], [9, 9, 5, 5, 6, 6, 3, 3, 6,
|
||||
6]]]
|
||||
i: [[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
||||
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
|
||||
[5, 3, 1, 7, 9, 2, 4, 6, 8, 0],
|
||||
[4, 5, 2, 4, 3, 7, 6, 8, 9, 4]],
|
||||
[[5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
|
||||
[4, 3, 4, 5, 7, 6, 5, 3, 4, 5],
|
||||
[8, 7, 6, 5, 4, 3, 2, 1, 8, 7],
|
||||
[7, 1, 7, 1, 8, 1, 8, 1, 3, 1]],
|
||||
[[7, 5, 7, 5, 7, 5, 7, 5, 7, 5],
|
||||
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
|
||||
[9, 8, 7, 9, 8, 7, 9, 8, 7, 9],
|
||||
[9, 9, 5, 5, 6, 6, 3, 3, 6, 6]]]
|
||||
}
|
||||
result = o.eval(feed_dict=params)
|
||||
|
||||
self.assertAllEqual([[[9, 8], [1, 1]], [[2, 4], [5, 7]]], result)
|
||||
|
||||
self.assertAllEqual([[[9, 8],
|
||||
[1, 1]],
|
||||
[[2, 4],
|
||||
[5, 7]]], result)
|
||||
|
||||
if __name__ == "__main__":
|
||||
googletest.main()
|
||||
|
@ -18,6 +18,7 @@ package_group(
|
||||
],
|
||||
)
|
||||
|
||||
load("//tensorflow:tensorflow.bzl", "cc_header_only_library")
|
||||
load("//tensorflow/compiler/xla:xla.bzl", "xla_proto_library")
|
||||
|
||||
# Filegroup used to collect source files for dependency checking.
|
||||
@ -45,6 +46,24 @@ xla_proto_library(
|
||||
],
|
||||
)
|
||||
|
||||
# TODO(jhseu): Restore
|
||||
# This is a headers target that extra XLA devices can use to prevent
|
||||
# circular dependencies. Devices that are compiled as separate shared
|
||||
# objects can also use it to prevent linking of library code.
|
||||
#cc_header_only_library(
|
||||
# name = "xla_headers_lib",
|
||||
# visibility = ["//visibility:public"],
|
||||
# deps = [
|
||||
# "//tensorflow/compiler/xla:xla_data_proto",
|
||||
# "//tensorflow/compiler/xla:xla_proto",
|
||||
# "//tensorflow/compiler/xla/client:client_library",
|
||||
# "//tensorflow/compiler/xla/legacy_flags:layout_util_flags",
|
||||
# "//tensorflow/compiler/xla/service:hlo",
|
||||
# "//tensorflow/core:framework_headers_lib",
|
||||
# "//tensorflow/core:stream_executor_headers_lib",
|
||||
# ],
|
||||
#)
|
||||
|
||||
cc_library(
|
||||
name = "test",
|
||||
testonly = 1,
|
||||
|
@ -65,7 +65,7 @@ class Array4D {
|
||||
Fill(T());
|
||||
}
|
||||
|
||||
// Creates a 4D array, initalized to value.
|
||||
// Creates a 4D array, initialized to value.
|
||||
Array4D(int64 planes, int64 depth, int64 height, int64 width, T value)
|
||||
: Array4D(planes, depth, height, width) {
|
||||
Fill(value);
|
||||
|
@ -56,7 +56,7 @@ class ExecutableBuildOptions {
|
||||
|
||||
// If set, this specifies the layout of the result of the computation. If not
|
||||
// set, the service will chose the layout of the result. A Shape is used to
|
||||
// store the layout to accomodate tuple result shapes. A value of nullptr
|
||||
// store the layout to accommodate tuple result shapes. A value of nullptr
|
||||
// indicates the option has not been set.
|
||||
ExecutableBuildOptions& set_result_layout(const Shape& shape_with_layout);
|
||||
const Shape* result_layout() const;
|
||||
|
@ -763,7 +763,7 @@ class LiteralUtil {
|
||||
|
||||
// Creates a new value that has the equivalent value as literal, but conforms
|
||||
// to new_layout; e.g. a literal matrix that was in {0, 1} minor-to-major
|
||||
// dimension layout can be re-layed-out as {1, 0} minor-to-major dimension
|
||||
// dimension layout can be re-laid-out as {1, 0} minor-to-major dimension
|
||||
// layout and the value in the cell at any given logical index (i0, i1) will
|
||||
// be the same.
|
||||
//
|
||||
|
@ -439,7 +439,7 @@ Status AlgebraicSimplifierVisitor::HandleDot(HloInstruction* dot,
|
||||
dot, HloInstruction::CreateBroadcast(dot->shape(), zero, {}));
|
||||
}
|
||||
|
||||
// Simplify dot(transpose(a), transpose(b)) to tranpose(dot(b,a)).
|
||||
// Simplify dot(transpose(a), transpose(b)) to transpose(dot(b,a)).
|
||||
if (lhs->IsRank2Transpose() && rhs->IsRank2Transpose()) {
|
||||
auto new_dot = computation_->AddInstruction(HloInstruction::CreateBinary(
|
||||
ShapeUtil::PermuteDimensions({1, 0}, dot->shape()), HloOpcode::kDot,
|
||||
|
@ -35,7 +35,7 @@ class AlgebraicSimplifier : public HloPassInterface {
|
||||
|
||||
// If is_layout_sensitive is true, then the simplifier preserves layout during
|
||||
// transformation. Otherwise, layout is ignored. If valid_bitcast_callback
|
||||
// returns true, then the pass will replace reshapes and tranposes with
|
||||
// returns true, then the pass will replace reshapes and transposes with
|
||||
// bitcasts.
|
||||
AlgebraicSimplifier(bool is_layout_sensitive,
|
||||
ValidBitcastCallback valid_bitcast_callback,
|
||||
|
@ -628,7 +628,7 @@ class FusedDynamicUpdateSliceLivenessTest : public BufferLivenessTest {
|
||||
BufferLiveness::Run(module.get(),
|
||||
MakeUnique<DependencyHloOrdering>(module.get()))
|
||||
.ConsumeValueOrDie();
|
||||
// Return whether or not buffers interfernce is detected between
|
||||
// Return whether or not buffers interference is detected between
|
||||
// 'tuple_param0' and 'tuple_root' at shape index '{1}'.
|
||||
return TupleElementsMayInterfere(*liveness, tuple_param0, tuple_root, {1});
|
||||
}
|
||||
@ -740,7 +740,7 @@ class DynamicUpdateSliceLivenessTest : public BufferLivenessTest {
|
||||
BufferLiveness::Run(module.get(),
|
||||
MakeUnique<DependencyHloOrdering>(module.get()))
|
||||
.ConsumeValueOrDie();
|
||||
// Return whether or not buffers interfernce is detected between
|
||||
// Return whether or not buffers interference is detected between
|
||||
// 'tuple_param0' and 'tuple_root' at shape index '{1}'.
|
||||
return TupleElementsMayInterfere(*liveness, tuple_param0, tuple_root, {1});
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ class InstructionCopier {
|
||||
Status RecordAmbiguousOrNonDistinctIndices(
|
||||
const TuplePointsToAnalysis& points_to_analysis);
|
||||
|
||||
// Records instruction buffer indices which have interferring live ranges
|
||||
// Records instruction buffer indices which have interfering live ranges
|
||||
// with 'other_instruction' buffers at same index.
|
||||
Status RecordIndicesWhichInterfereWithOtherInstruction(
|
||||
const BufferLiveness& liveness, const HloInstruction* other_instruction,
|
||||
@ -429,7 +429,7 @@ HloInstruction* InstructionCopier::Copy() {
|
||||
return copy;
|
||||
}
|
||||
|
||||
// The 'read_only_indices' are initalized based on points-to analysis on the
|
||||
// The 'read_only_indices' are initialized based on points-to analysis on the
|
||||
// while body corresponding to 'while_hlo'. If the init buffer corresponding to
|
||||
// a read-only index aliases with an entry parameter (or constant), it cannot be
|
||||
// considered read-only, and must be copied. This is necessary because some
|
||||
|
@ -125,7 +125,7 @@ tensorflow::Status ConvolutionThunk::ExecuteOnStream(
|
||||
CHECK_LE(num_dimensions, 3);
|
||||
// cuDNN does not support 1D convolutions. We therefore express 1D
|
||||
// convolutions as 2D convolutions where the first spatial dimension is 1.
|
||||
// This matches the behaviour of TF (see definition of conv1d in
|
||||
// This matches the behavior of TF (see definition of conv1d in
|
||||
// tensorflow/python/ops/nn_ops.py).
|
||||
const int effective_num_dimensions = std::max(2, num_dimensions);
|
||||
|
||||
|
@ -25,7 +25,7 @@ namespace gpu {
|
||||
// An HLO pass that attempts to merge fusion instructions to reduce kernel
|
||||
// launch overhead and improve data locality.
|
||||
//
|
||||
// Fusion instructions are merged into their users if two conditons are met:
|
||||
// Fusion instructions are merged into their users if two conditions are met:
|
||||
//
|
||||
// 1) The flops_to_bytes ratio of the fusion instruction is below the threshold
|
||||
// value of 1.0.
|
||||
|
@ -245,7 +245,7 @@ tensorflow::Status GemmThunk::ExecuteOnStream(
|
||||
// Therefore, we need to convert dot between row-major matrices to that
|
||||
// between column-major matrices. The key insight for the conversion is that,
|
||||
// in linear storage, matrix M in column-major order is identical to the
|
||||
// tranpose of M in row-major order. In other words,
|
||||
// transpose of M in row-major order. In other words,
|
||||
//
|
||||
// column-major(M) = row-major(M^T).
|
||||
//
|
||||
|
@ -407,9 +407,9 @@ StatusOr<string> CompileModuleToPtx(llvm::Module* module,
|
||||
|
||||
AddOptimizationPasses(flags->opt_level, /*size_level=*/0,
|
||||
target_machine.get(), &module_passes, &function_passes);
|
||||
// Loop unrolling exposes more opportunites for SROA. Therefore, we run SROA
|
||||
// Loop unrolling exposes more opportunities for SROA. Therefore, we run SROA
|
||||
// again after the standard optimization passes [http://b/13329423].
|
||||
// TODO(jingyue): SROA may further expose more optimization opportunites, such
|
||||
// TODO(jingyue): SROA may further expose more optimization opportunities, such
|
||||
// as more precise alias analysis and more function inlining (SROA may change
|
||||
// the inlining cost of a function). For now, running SROA already emits good
|
||||
// enough code for the evaluated benchmarks. We may want to run more
|
||||
|
@ -33,7 +33,7 @@ namespace gpu {
|
||||
enum class PartitionStrategy {
|
||||
// Optimized for latency by allowing maximum number of registers per thread.
|
||||
kLatency,
|
||||
// Optimized for throughtput. This may limit registers per thread and cause
|
||||
// Optimized for throughput. This may limit registers per thread and cause
|
||||
// longer latency.
|
||||
kThroughput
|
||||
};
|
||||
|
@ -37,7 +37,7 @@ namespace {
|
||||
// patterns to match.
|
||||
//
|
||||
// Each ExprTree node is comprised of an HloOpcode, and a set of operands (each
|
||||
// of type ExprTree). Operands can be added by specifing the index and HloOpcode
|
||||
// of type ExprTree). Operands can be added by specifying the index and HloOpcode
|
||||
// of the operand.
|
||||
//
|
||||
// For example, the following computation:
|
||||
|
@ -21,7 +21,7 @@ limitations under the License.
|
||||
|
||||
namespace xla {
|
||||
|
||||
// A pass which performs constant folding in order to avoid unecessary
|
||||
// A pass which performs constant folding in order to avoid unnecessary
|
||||
// computation on constants.
|
||||
class HloConstantFolding : public HloPassInterface {
|
||||
public:
|
||||
|
@ -133,7 +133,7 @@ class HloCostAnalysis : public DfsHloVisitor {
|
||||
int64 bytes_accessed() const { return bytes_accessed_; }
|
||||
|
||||
private:
|
||||
// An FMA counts as two floating point operations in these analyses.
|
||||
// An FMA counts as two floating point operations in these analyzes.
|
||||
static constexpr int64 kFmaFlops = 2;
|
||||
|
||||
// Utility function to handle all element-wise operations.
|
||||
|
@ -54,7 +54,7 @@ class HloCostAnalysisTest : public ::testing::Test {
|
||||
HloCostAnalysisTest()
|
||||
: client_(ClientLibrary::LocalClientOrDie()),
|
||||
// Accessing service instance is required for the unit tests to enable
|
||||
// whitebox acccesses to the user computation built from the client,
|
||||
// whitebox accesses to the user computation built from the client,
|
||||
// as shown in the BuildHloGraph functions below.
|
||||
service_(static_cast<Service*>(ClientLibrary::GetXlaService(
|
||||
static_cast<LocalClient*>(client_)->platform()))),
|
||||
|
@ -138,7 +138,7 @@ class HloEvaluator : public DfsHloVisitorWithDefault {
|
||||
std::hash<int>>
|
||||
typed_visitors_;
|
||||
|
||||
// Tracks the HLO instruciton and its evaluated literal result.
|
||||
// Tracks the HLO instruction and its evaluated literal result.
|
||||
// TODO(b/35950897): have better memory management here to free instructions
|
||||
// that are no longer a parent for any other subsequent instruction in
|
||||
// post-orderring.
|
||||
|
@ -360,7 +360,7 @@ class ListScheduler {
|
||||
return freed_bytes;
|
||||
}
|
||||
|
||||
// Construct the scheduling priority of the given instruciton.
|
||||
// Construct the scheduling priority of the given instruction.
|
||||
Priority GetPriority(const HloInstruction* instruction) {
|
||||
return {BytesFreedIfScheduled(instruction), instruction->user_count()};
|
||||
}
|
||||
|
@ -1,2 +1,2 @@
|
||||
Common utilites and abstractions for handling and emitting LLVM IR for XLA
|
||||
Common utilities and abstractions for handling and emitting LLVM IR for XLA
|
||||
backends.
|
||||
|
@ -129,7 +129,7 @@ llvm::AllocaInst* EmitAllocaAtFunctionEntryWithCount(
|
||||
llvm::Type* type, llvm::Value* element_count, tensorflow::StringPiece name,
|
||||
llvm::IRBuilder<>* ir_builder, int alignment = 0);
|
||||
|
||||
// Creates a basic block with the same context and funtion as for the
|
||||
// Creates a basic block with the same context and function as for the
|
||||
// builder. Inserts at the end of the function if insert_before is
|
||||
// null.
|
||||
llvm::BasicBlock* CreateBasicBlock(llvm::BasicBlock* insert_before,
|
||||
|
@ -33,6 +33,7 @@ limitations under the License.
|
||||
#include "tensorflow/core/platform/macros.h"
|
||||
#include "tensorflow/core/platform/test.h"
|
||||
|
||||
|
||||
extern "C" void TF_EXPORT R0F32Add2(float* out, float** in) {
|
||||
TF_ANNOTATE_MEMORY_IS_INITIALIZED(in, sizeof(float*));
|
||||
*out = **in + 2.0f;
|
||||
|
@ -61,7 +61,7 @@ class HloTestBase : public ::testing::Test {
|
||||
perftools::gputools::DeviceMemoryBase TransferToDevice(
|
||||
const Literal& literal);
|
||||
|
||||
// Transfers the array refered to by the given handle from the device and
|
||||
// Transfers the array referred to by the given handle from the device and
|
||||
// returns as a Literal.
|
||||
std::unique_ptr<Literal> TransferFromDevice(
|
||||
const Shape& shape, perftools::gputools::DeviceMemoryBase device_base);
|
||||
|
@ -194,7 +194,7 @@ XLA_TEST_F(PrngTest, MapUsingRng) {
|
||||
}
|
||||
}
|
||||
|
||||
// This tests demonstrates the global seeding behaviour.
|
||||
// This tests demonstrates the global seeding behavior.
|
||||
// * If a seed is passed in via Execute (ExecuteAndTransfer) then the output is
|
||||
// fixed (i.e., there is a single output for a given seed);
|
||||
// * If no seed is passed in then the output of every call can be different;
|
||||
|
@ -19,6 +19,8 @@ limitations under the License.
|
||||
#include "third_party/eigen3/Eigen/Core"
|
||||
#include "tensorflow/core/platform/types.h"
|
||||
|
||||
#include <Eigen/Core>
|
||||
|
||||
namespace xla {
|
||||
|
||||
using ::tensorflow::string;
|
||||
|
@ -56,6 +56,7 @@ py_library(
|
||||
"//tensorflow/contrib/rnn:rnn_py",
|
||||
"//tensorflow/contrib/saved_model:saved_model_py",
|
||||
"//tensorflow/contrib/seq2seq:seq2seq_py",
|
||||
"//tensorflow/contrib/signal:signal_py",
|
||||
"//tensorflow/contrib/slim",
|
||||
"//tensorflow/contrib/slim:nets",
|
||||
"//tensorflow/contrib/solvers:solvers_py",
|
||||
|
@ -54,6 +54,7 @@ from tensorflow.contrib import quantization
|
||||
from tensorflow.contrib import rnn
|
||||
from tensorflow.contrib import saved_model
|
||||
from tensorflow.contrib import seq2seq
|
||||
from tensorflow.contrib import signal
|
||||
from tensorflow.contrib import slim
|
||||
from tensorflow.contrib import solvers
|
||||
from tensorflow.contrib import sparsemax
|
||||
|
@ -43,6 +43,6 @@ Output
|
||||
- TensorFlow-Inference-release.aar
|
||||
|
||||
File libtensorflow_inference.so should be packed under jni/${ANDROID_ABI}/
|
||||
in the above aar, and it is transparent to the app as it will acccess them via
|
||||
in the above aar, and it is transparent to the app as it will access them via
|
||||
equivalent java APIs.
|
||||
|
||||
|
@ -179,7 +179,11 @@ py_test(
|
||||
size = "small",
|
||||
srcs = ["python/ops/batch_ops_test.py"],
|
||||
srcs_version = "PY2AND3",
|
||||
tags = ["nomac"],
|
||||
tags = [
|
||||
"manual",
|
||||
"no_pip",
|
||||
"nomac",
|
||||
],
|
||||
deps = [
|
||||
":batch_py",
|
||||
"//tensorflow/python:framework_test_lib",
|
||||
|
@ -177,7 +177,7 @@ def _logspace_mean(log_values):
|
||||
`Log[Mean[values]]`.
|
||||
"""
|
||||
# center = Max[Log[values]], with stop-gradient
|
||||
# The center hopefully keep the exponentiated term small. It is cancelled
|
||||
# The center hopefully keep the exponentiated term small. It is canceled
|
||||
# from the final result, so putting stop gradient on it will not change the
|
||||
# final result. We put stop gradient on to eliminate unnecessary computation.
|
||||
center = array_ops.stop_gradient(_sample_max(log_values))
|
||||
|
@ -42,7 +42,7 @@ class RandomTreeGen {
|
||||
boosted_trees::trees::DecisionTreeConfig Generate(
|
||||
const boosted_trees::trees::DecisionTreeConfig& tree);
|
||||
|
||||
// Requried: depth >= 1; tree_count >= 1.
|
||||
// Required: depth >= 1; tree_count >= 1.
|
||||
boosted_trees::trees::DecisionTreeEnsembleConfig GenerateEnsemble(
|
||||
int dept, int tree_count);
|
||||
|
||||
|
@ -46,7 +46,7 @@ Status GetTableAttrs(OpKernelConstruction* context, string* project_id,
|
||||
|
||||
} // namespace
|
||||
|
||||
// Note that overriden methods with names ending in "Locked" are called by
|
||||
// Note that overridden methods with names ending in "Locked" are called by
|
||||
// ReaderBase while a mutex is held.
|
||||
// See comments for ReaderBase.
|
||||
class BigQueryReader : public ReaderBase {
|
||||
|
@ -46,7 +46,7 @@ _TABLE = "test-table"
|
||||
# The values for rows are generated such that some columns have null values. The
|
||||
# general formula here is:
|
||||
# - The int64 column is present in every row.
|
||||
# - The string column is only avaiable in even rows.
|
||||
# - The string column is only available in even rows.
|
||||
# - The float column is only available in every third row.
|
||||
_ROWS = [[0, "s_0", 0.1], [1, None, None], [2, "s_2", None], [3, None, 3.1],
|
||||
[4, "s_4", None], [5, None, None], [6, "s_6", 6.1], [7, None, None],
|
||||
|
@ -63,11 +63,16 @@ if(WIN32)
|
||||
add_definitions(-DWIN32 -DOS_WIN -D_MBCS -DWIN64 -DWIN32_LEAN_AND_MEAN -DNOGDI -DPLATFORM_WINDOWS)
|
||||
add_definitions(-DTENSORFLOW_USE_EIGEN_THREADPOOL -DEIGEN_HAS_C99_MATH)
|
||||
add_definitions(-DTF_COMPILE_LIBRARY)
|
||||
add_definitions(/bigobj /nologo /EHsc /GF /FC /MP /Gm-)
|
||||
add_definitions(/bigobj /nologo /EHsc /GF /MP /Gm-)
|
||||
# Suppress warnings to reduce build log size.
|
||||
add_definitions(/wd4267 /wd4244 /wd4800 /wd4503 /wd4554 /wd4996 /wd4348 /wd4018)
|
||||
add_definitions(/wd4099 /wd4146 /wd4267 /wd4305 /wd4307)
|
||||
add_definitions(/wd4715 /wd4722 /wd4723 /wd4838 /wd4309 /wd4334)
|
||||
add_definitions(/wd4003 /wd4244 /wd4267 /wd4503 /wd4506 /wd4800 /wd4996)
|
||||
# Suppress linker warnings.
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /ignore:4049 /ignore:4197 /ignore:4217 /ignore:4221")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /ignore:4049 /ignore:4197 /ignore:4217 /ignore:4221")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ignore:4049 /ignore:4197 /ignore:4217 /ignore:4221")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MDd /Ob0")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /D_ITERATOR_DEBUG_LEVEL=0")
|
||||
@ -108,6 +113,7 @@ include(zlib)
|
||||
include(gif)
|
||||
include(png)
|
||||
include(jpeg)
|
||||
include(lmdb)
|
||||
include(eigen)
|
||||
include(gemmlowp)
|
||||
include(jsoncpp)
|
||||
@ -124,6 +130,7 @@ set(tensorflow_EXTERNAL_LIBRARIES
|
||||
${gif_STATIC_LIBRARIES}
|
||||
${png_STATIC_LIBRARIES}
|
||||
${jpeg_STATIC_LIBRARIES}
|
||||
${lmdb_STATIC_LIBRARIES}
|
||||
${jsoncpp_STATIC_LIBRARIES}
|
||||
${farmhash_STATIC_LIBRARIES}
|
||||
${fft2d_STATIC_LIBRARIES}
|
||||
@ -135,6 +142,7 @@ set(tensorflow_EXTERNAL_DEPENDENCIES
|
||||
gif_copy_headers_to_destination
|
||||
png_copy_headers_to_destination
|
||||
jpeg_copy_headers_to_destination
|
||||
lmdb_copy_headers_to_destination
|
||||
jsoncpp
|
||||
farmhash_copy_headers_to_destination
|
||||
highwayhash_copy_headers_to_destination
|
||||
@ -153,6 +161,7 @@ include_directories(
|
||||
${gif_INCLUDE_DIR}
|
||||
${png_INCLUDE_DIR}
|
||||
${jpeg_INCLUDE_DIR}
|
||||
${lmdb_INCLUDE_DIR}
|
||||
${eigen_INCLUDE_DIRS}
|
||||
${gemmlowp_INCLUDE_DIR}
|
||||
${jsoncpp_INCLUDE_DIR}
|
||||
|
60
tensorflow/contrib/cmake/external/lmdb.cmake
vendored
Normal file
60
tensorflow/contrib/cmake/external/lmdb.cmake
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
# Copyright 2017 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ==============================================================================
|
||||
include (ExternalProject)
|
||||
|
||||
set(lmdb_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/lmdb)
|
||||
set(lmdb_URL http://mirror.bazel.build/github.com/LMDB/lmdb/archive/LMDB_0.9.19.tar.gz)
|
||||
set(lmdb_HASH SHA256=108532fb94c6f227558d45be3f3347b52539f0f58290a7bb31ec06c462d05326)
|
||||
set(lmdb_BUILD ${CMAKE_BINARY_DIR}/lmdb/src/lmdb)
|
||||
set(lmdb_INSTALL ${CMAKE_BINARY_DIR}/lmdb/install)
|
||||
|
||||
ExternalProject_Add(lmdb
|
||||
PREFIX lmdb
|
||||
URL ${lmdb_URL}
|
||||
URL_HASH ${lmdb_HASH}
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/patches/lmdb/CMakeLists.txt ${lmdb_BUILD}
|
||||
INSTALL_DIR ${lmdb_INSTALL}
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${lmdb_INSTALL}
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(lmdb_STATIC_LIBRARIES ${lmdb_INSTALL}/lib/lmdb.lib)
|
||||
else()
|
||||
set(lmdb_STATIC_LIBRARIES ${lmdb_INSTALL}/lib/liblmdb.a)
|
||||
endif()
|
||||
|
||||
set(lmdb_HEADERS
|
||||
"${lmdb_INSTALL}/include/lmdb.h"
|
||||
"${lmdb_INSTALL}/include/midl.h"
|
||||
)
|
||||
|
||||
## put lmdb includes in the directory where they are expected
|
||||
add_custom_target(lmdb_create_destination_dir
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${lmdb_INCLUDE_DIR}
|
||||
DEPENDS lmdb)
|
||||
|
||||
add_custom_target(lmdb_copy_headers_to_destination
|
||||
DEPENDS lmdb_create_destination_dir)
|
||||
|
||||
foreach(header_file ${lmdb_HEADERS})
|
||||
add_custom_command(TARGET lmdb_copy_headers_to_destination PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header_file} ${lmdb_INCLUDE_DIR}/)
|
||||
endforeach()
|
26
tensorflow/contrib/cmake/patches/lmdb/CMakeLists.txt
Normal file
26
tensorflow/contrib/cmake/patches/lmdb/CMakeLists.txt
Normal file
@ -0,0 +1,26 @@
|
||||
cmake_minimum_required(VERSION 2.8.3)
|
||||
|
||||
project(liblmdb)
|
||||
|
||||
set(LIBLMDB_SRCS
|
||||
"libraries/liblmdb/mdb.c"
|
||||
"libraries/liblmdb/midl.c"
|
||||
)
|
||||
|
||||
set(LIBLMDB_INCLUDES
|
||||
"libraries/liblmdb/lmdb.h"
|
||||
"libraries/liblmdb/midl.h"
|
||||
)
|
||||
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
add_library(lmdb ${LIBLMDB_SRCS})
|
||||
|
||||
install(TARGETS lmdb
|
||||
RUNTIME DESTINATION bin COMPONENT RuntimeLibraries
|
||||
LIBRARY DESTINATION lib COMPONENT RuntimeLibraries
|
||||
ARCHIVE DESTINATION lib COMPONENT Development)
|
||||
|
||||
foreach(LIBLMDB_INCLUDE ${LIBLMDB_INCLUDES})
|
||||
install(FILES ${LIBLMDB_INCLUDE} DESTINATION include COMPONENT Development)
|
||||
endforeach()
|
@ -174,8 +174,15 @@ function(add_python_module MODULE_NAME)
|
||||
if(NOT ${ADD_PYTHON_MODULE_DONTCOPY})
|
||||
foreach(script ${module_python_srcs})
|
||||
get_filename_component(REL_DIR ${script} DIRECTORY)
|
||||
add_custom_command(TARGET tf_python_copy_scripts_to_destination PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${tensorflow_source_dir}/${script} ${CMAKE_CURRENT_BINARY_DIR}/tf_python/${script})
|
||||
# NOTE(mrry): This rule may exclude modules that should be part of
|
||||
# the distributed PIP package
|
||||
# (e.g. tensorflow/contrib/testing/python/framework/util_test.py),
|
||||
# so we currently add explicit commands to include those files
|
||||
# later on in this script.
|
||||
if (NOT "${script}" MATCHES "_test\.py$")
|
||||
add_custom_command(TARGET tf_python_copy_scripts_to_destination PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${tensorflow_source_dir}/${script} ${CMAKE_CURRENT_BINARY_DIR}/tf_python/${script})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
@ -324,7 +331,6 @@ add_python_module("tensorflow/contrib/ios_examples/benchmark/benchmark.xcodeproj
|
||||
add_python_module("tensorflow/contrib/ios_examples/benchmark/data")
|
||||
add_python_module("tensorflow/contrib/ios_examples/camera")
|
||||
add_python_module("tensorflow/contrib/ios_examples/camera/camera_example.xcodeproj")
|
||||
add_python_module("tensorflow/contrib/ios_examples/camera/data")
|
||||
add_python_module("tensorflow/contrib/ios_examples/camera/en.lproj")
|
||||
add_python_module("tensorflow/contrib/ios_examples/simple")
|
||||
add_python_module("tensorflow/contrib/ios_examples/simple/data")
|
||||
@ -470,8 +476,9 @@ add_python_module("tensorflow/contrib/seq2seq/python/ops")
|
||||
add_python_module("tensorflow/contrib/session_bundle")
|
||||
add_python_module("tensorflow/contrib/session_bundle/example")
|
||||
add_python_module("tensorflow/contrib/session_bundle/testdata")
|
||||
add_python_module("tensorflow/contrib/session_bundle/testdata/saved_model_half_plus_two")
|
||||
add_python_module("tensorflow/contrib/session_bundle/testdata/saved_model_half_plus_two/variables")
|
||||
add_python_module("tensorflow/contrib/signal")
|
||||
add_python_module("tensorflow/contrib/signal/python")
|
||||
add_python_module("tensorflow/contrib/signal/python/ops")
|
||||
add_python_module("tensorflow/contrib/slim")
|
||||
add_python_module("tensorflow/contrib/slim/python")
|
||||
add_python_module("tensorflow/contrib/slim/python/slim")
|
||||
@ -875,9 +882,17 @@ add_dependencies(tf_python_build_pip_package
|
||||
tf_python_touchup_modules
|
||||
tf_python_ops
|
||||
tf_extension_ops)
|
||||
|
||||
# Fix-up Python files that were not included by the add_python_module() macros.
|
||||
add_custom_command(TARGET tf_python_build_pip_package POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${tensorflow_source_dir}/tensorflow/tools/pip_package/setup.py
|
||||
${CMAKE_CURRENT_BINARY_DIR}/tf_python/)
|
||||
# This file is unfortunately excluded by the regex that excludes *_test.py
|
||||
# files, but it is imported into tf.contrib, so we add it explicitly.
|
||||
add_custom_command(TARGET tf_python_copy_scripts_to_destination PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${tensorflow_source_dir}/tensorflow/contrib/testing/python/framework/util_test.py
|
||||
${CMAKE_CURRENT_BINARY_DIR}/tf_python/tensorflow/contrib/testing/python/framework/)
|
||||
|
||||
if(WIN32)
|
||||
add_custom_command(TARGET tf_python_build_pip_package POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration)/pywrap_tensorflow_internal.dll
|
||||
|
@ -183,12 +183,15 @@ if (tensorflow_BUILD_PYTHON_TESTS)
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/string_to_number_op_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/clip_ops_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/tensor_array_ops_test.py" # Needs portpicker.
|
||||
# Matrix_set_diag failing on GPU on windows.
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/cholesky_op_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/diag_op_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/linalg_ops_test.py"
|
||||
# misc
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/variable_scope_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/reshape_op_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/python/training/evaluation_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/tensorboard/backend/server_test.py"
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/diag_op_test.py" # Silently failing with GPU kernel disabled.
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/neon_depthwise_conv_op_test.py" # Depends on gemmlowp -> pthread.
|
||||
# int32/int64 mixup
|
||||
"${tensorflow_source_dir}/tensorflow/python/kernel_tests/functional_ops_test.py"
|
||||
|
@ -141,7 +141,7 @@ _cudnn_rnn_common_doc_string = """
|
||||
* Once a while, the user saves the parameter buffer into model checkpoints
|
||||
with Saver.save().
|
||||
* When restoring, the user creates a RNNParamsSaveable object and uses
|
||||
Saver.restore() to restore the paramter buffer from the canonical format
|
||||
Saver.restore() to restore the parameter buffer from the canonical format
|
||||
to a user-defined format, as well as to restore other savable objects
|
||||
in the checkpoint file.
|
||||
"""
|
||||
|
@ -457,12 +457,12 @@ batched into a fixed size.
|
||||
# to a fixed shape.
|
||||
def _parse_function(filename, label):
|
||||
image_string = tf.read_file(filename)
|
||||
image_decoded = tf.image.decode_image(filename)
|
||||
image_decoded = tf.image.decode_image(image_string)
|
||||
image_resized = tf.image.resize_images(image_decoded, [28, 28])
|
||||
return image_resized, label
|
||||
|
||||
filenames = ["/var/data/image1.jpg", "/var/data/image2.jpg", ...]
|
||||
labels = [0, 37, 29, 1, ...]
|
||||
filenames = tf.constant(["/var/data/image1.jpg", "/var/data/image2.jpg", ...])
|
||||
labels = tf.constant([0, 37, 29, 1, ...])
|
||||
|
||||
dataset = tf.contrib.data.Dataset.from_tensor_slices((filenames, labels))
|
||||
dataset = dataset.map(_parse_function)
|
||||
|
@ -39,7 +39,7 @@ class _ExperimentalFuncGraph(function._FuncGraph):
|
||||
_ExperimentalFuncGraph overrides ops.Graph's create_op() so that we can keep
|
||||
track of every inputs into every op created inside the function. If
|
||||
any input is from other graphs, we keep track of it in self.capture
|
||||
and substitue the input with a place holder.
|
||||
and substitute the input with a place holder.
|
||||
|
||||
Each captured input's corresponding place holder is converted into a
|
||||
function argument and the caller passes in the captured tensor.
|
||||
|
@ -52,7 +52,10 @@ py_test(
|
||||
size = "small",
|
||||
srcs = ["dataset_constructor_op_test.py"],
|
||||
srcs_version = "PY2AND3",
|
||||
tags = ["nomac"], # b/62040583
|
||||
tags = [
|
||||
"manual",
|
||||
"nomac", # b/62040583
|
||||
],
|
||||
deps = [
|
||||
"//tensorflow/contrib/data",
|
||||
"//tensorflow/python:array_ops",
|
||||
|
@ -271,6 +271,22 @@ class BatchDatasetTest(test.TestCase):
|
||||
"larger than the row shape"):
|
||||
sess.run(get_next)
|
||||
|
||||
def testUnbatchDataset(self):
|
||||
data = [math_ops.range(10) for _ in range(3)]
|
||||
data = dataset_ops.Dataset.from_tensor_slices(data)
|
||||
data = data.batch(2)
|
||||
data = data.unbatch()
|
||||
|
||||
iter = data.make_one_shot_iterator()
|
||||
op = iter.get_next()
|
||||
|
||||
with self.test_session() as sess:
|
||||
for i in range(3):
|
||||
self.assertAllClose([range(10)], sess.run(op))
|
||||
|
||||
with self.assertRaises(errors.OutOfRangeError):
|
||||
sess.run(op)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test.main()
|
||||
|
@ -65,7 +65,7 @@ class ResampleTest(test.TestCase):
|
||||
self.assertAllEqual([compat.as_bytes(str(c))
|
||||
for c in returned_classes], returned_data)
|
||||
total_returned = len(returned_classes)
|
||||
# Subsampling rejects a large precentage of the initial data in
|
||||
# Subsampling rejects a large percentage of the initial data in
|
||||
# this case.
|
||||
self.assertGreater(total_returned, 20000 * 0.2)
|
||||
class_counts = np.array([
|
||||
|
@ -849,7 +849,8 @@ class Dataset(object):
|
||||
Returns:
|
||||
A `Dataset`.
|
||||
"""
|
||||
return self.flat_map(map_func=Dataset.from_tensor_slices)
|
||||
return self.flat_map(
|
||||
map_func=lambda *args: Dataset.from_tensor_slices(args))
|
||||
|
||||
def filter(self, predicate):
|
||||
"""Filters this dataset according to `predicate`.
|
||||
@ -1480,7 +1481,8 @@ class MapDataset(Dataset):
|
||||
self._output_buffer_size = ops.convert_to_tensor(
|
||||
output_buffer_size, dtype=dtypes.int64, name="output_buffer_size")
|
||||
else:
|
||||
self._output_buffer_size = self._num_threads
|
||||
self._output_buffer_size = ops.convert_to_tensor(
|
||||
self._num_threads, dtype=dtypes.int64, name="output_buffer_size")
|
||||
else:
|
||||
self._num_threads = None
|
||||
self._output_buffer_size = None
|
||||
|
@ -166,7 +166,7 @@ class ShapesFromLocAndScaleTest(test.TestCase):
|
||||
batch_shape, event_shape = distribution_util.shapes_from_loc_and_scale(
|
||||
loc, scale)
|
||||
# batch_shape depends on both args, and so is dynamic. Since loc did not
|
||||
# have static shape, we infered event shape entirely from scale, and this
|
||||
# have static shape, we inferred event shape entirely from scale, and this
|
||||
# is available statically.
|
||||
self.assertAllEqual(
|
||||
[5, 2], batch_shape.eval(feed_dict={loc: np.zeros((2, 3))}))
|
||||
|
@ -38,7 +38,7 @@ class _FakeVectorStudentT(object):
|
||||
|
||||
Other `Vector*` implementations need only test new code. That we don't need
|
||||
to test every Vector* distribution is good because there aren't SciPy
|
||||
analogues and reimplementing everything in NumPy sort of defeats the point of
|
||||
analogs and reimplementing everything in NumPy sort of defeats the point of
|
||||
having the `TransformedDistribution + Affine` API.
|
||||
"""
|
||||
|
||||
|
@ -269,7 +269,7 @@ class Binomial(distribution.Distribution):
|
||||
message="total_count must be non-negative."),
|
||||
distribution_util.assert_integer_form(
|
||||
total_count,
|
||||
message="total_count cannot contain fractional componentes."),
|
||||
message="total_count cannot contain fractional components."),
|
||||
], total_count)
|
||||
|
||||
def _maybe_assert_valid_sample(self, counts, check_integer=True):
|
||||
|
@ -214,6 +214,7 @@ tf_py_test(
|
||||
"//tensorflow/python:state_ops",
|
||||
"//tensorflow/python:variables",
|
||||
],
|
||||
tags = ["manual"],
|
||||
)
|
||||
|
||||
# Kernel tests
|
||||
|
@ -222,7 +222,7 @@ class KMeans(object):
|
||||
if (self._distance_metric == COSINE_DISTANCE and
|
||||
not self._clusters_l2_normalized()):
|
||||
# The cosine distance between normalized vectors x and y is the same as
|
||||
# 2 * squared_euclidian_distance. We are using this fact and reusing the
|
||||
# 2 * squared_euclidean_distance. We are using this fact and reusing the
|
||||
# nearest_neighbors op.
|
||||
# TODO(ands): Support COSINE distance in nearest_neighbors and remove
|
||||
# this.
|
||||
|
@ -184,7 +184,7 @@ def init_from_checkpoint(checkpoint_dir, assignment_map):
|
||||
var3 = tf.get_variable(name="my1", shape=[100, 100],
|
||||
partitioner=lambda shape, dtype: [5, 1])
|
||||
...
|
||||
# Specify which variables to intialize from checkpoint.
|
||||
# Specify which variables to initialize from checkpoint.
|
||||
init_from_checkpoint(checkpoint_dir, {
|
||||
'some_var': 'test/my_var',
|
||||
'some_scope/': 'test2/'})
|
||||
|
@ -370,7 +370,7 @@ def _reroute_sgv_outputs(sgv0, sgv1, mode):
|
||||
def _reroute_sgv(sgv0, sgv1, mode):
|
||||
"""Re-route both the inputs and the outputs of the two subgraph views.
|
||||
|
||||
This involves swapping all the inputs/ouputs of the two subgraph views.
|
||||
This involves swapping all the inputs/outputs of the two subgraph views.
|
||||
|
||||
Args:
|
||||
sgv0: the first subgraph to be swapped. This argument is converted to a
|
||||
|
@ -130,7 +130,7 @@ def transform_tree(tree, fn, iterable_type=tuple):
|
||||
tree: iterable or not. If iterable, its elements (child) can also be
|
||||
iterable or not.
|
||||
fn: function to apply to each leaves.
|
||||
iterable_type: type use to construct the resulting tree for unknwon
|
||||
iterable_type: type use to construct the resulting tree for unknown
|
||||
iterable, typically `list` or `tuple`.
|
||||
Returns:
|
||||
A tree whose leaves has been transformed by `fn`.
|
||||
|
@ -5,7 +5,7 @@ of `SessionRunHook` and are to be used with helpers like `MonitoredSession`
|
||||
and `learn.Estimator` that wrap `tensorflow.Session`.
|
||||
|
||||
The hooks are called between invocations of `Session.run()` to perform custom
|
||||
behaviour.
|
||||
behavior.
|
||||
|
||||
For example the `ProfilerHook` periodically collects `RunMetadata` after
|
||||
`Session.run()` and saves profiling information that can be viewed in a
|
||||
|
@ -66,7 +66,13 @@ class ProjectiveGenerator {
|
||||
projection;
|
||||
|
||||
// TODO(ringwalt): Add a fill value input.
|
||||
#if (defined __CUDA_ARCH__) && (CUDART_VERSION < 8000)
|
||||
// On CUDA versions previous to 8.0, only __shared__ variables
|
||||
// could be declared as static in the device code.
|
||||
const T fill_value = T(0);
|
||||
#else
|
||||
static const T fill_value = T(0);
|
||||
#endif
|
||||
switch (interpolation_) {
|
||||
case INTERPOLATION_NEAREST:
|
||||
// Switch the order of x and y again for indexing into the image.
|
||||
|
@ -75,7 +75,7 @@ REGISTER_OP("BipartiteMatch")
|
||||
.Doc(R"doc(
|
||||
Find bipartite matching based on a given distance matrix.
|
||||
|
||||
A greedy bi-partite matching alogrithm is used to obtain the matching with the
|
||||
A greedy bi-partite matching algorithm is used to obtain the matching with the
|
||||
(greedy) minimum distance.
|
||||
|
||||
distance_mat: A 2-D float tensor of shape `[num_rows, num_columns]`. It is a
|
||||
|
@ -266,7 +266,7 @@ def bipartite_match(
|
||||
top_k=-1):
|
||||
"""Find bipartite matching based on a given distance matrix.
|
||||
|
||||
A greedy bi-partite matching alogrithm is used to obtain the matching with
|
||||
A greedy bi-partite matching algorithm is used to obtain the matching with
|
||||
the (greedy) minimum distance.
|
||||
|
||||
Args:
|
||||
|
@ -311,7 +311,10 @@ py_test(
|
||||
size = "medium",
|
||||
srcs = ["python/keras/layers/convolutional_test.py"],
|
||||
srcs_version = "PY2AND3",
|
||||
tags = ["notsan"],
|
||||
tags = [
|
||||
"manual",
|
||||
"notsan",
|
||||
],
|
||||
deps = [
|
||||
":keras",
|
||||
":testing_utils",
|
||||
|
@ -135,6 +135,11 @@ from tensorflow.contrib.keras.python.keras.layers.recurrent import SimpleRNN
|
||||
from tensorflow.contrib.keras.python.keras.layers.recurrent import GRU
|
||||
from tensorflow.contrib.keras.python.keras.layers.recurrent import LSTM
|
||||
|
||||
# Wrapper functions
|
||||
from tensorflow.contrib.keras.python.keras.layers.wrappers import Wrapper
|
||||
from tensorflow.contrib.keras.python.keras.layers.wrappers import Bidirectional
|
||||
from tensorflow.contrib.keras.python.keras.layers.wrappers import TimeDistributed
|
||||
|
||||
del absolute_import
|
||||
del division
|
||||
del print_function
|
||||
|
@ -56,7 +56,7 @@ def identity_block(input_tensor, kernel_size, filters, stage, block):
|
||||
|
||||
Arguments:
|
||||
input_tensor: input tensor
|
||||
kernel_size: defualt 3, the kernel size of middle conv layer at main path
|
||||
kernel_size: default 3, the kernel size of middle conv layer at main path
|
||||
filters: list of integers, the filterss of 3 conv layer at main path
|
||||
stage: integer, current stage label, used for generating layer names
|
||||
block: 'a','b'..., current block label, used for generating layer names
|
||||
@ -95,7 +95,7 @@ def conv_block(input_tensor, kernel_size, filters, stage, block, strides=(2,
|
||||
|
||||
Arguments:
|
||||
input_tensor: input tensor
|
||||
kernel_size: defualt 3, the kernel size of middle conv layer at main path
|
||||
kernel_size: default 3, the kernel size of middle conv layer at main path
|
||||
filters: list of integers, the filterss of 3 conv layer at main path
|
||||
stage: integer, current stage label, used for generating layer names
|
||||
block: 'a','b'..., current block label, used for generating layer names
|
||||
|
@ -92,7 +92,7 @@ _IMAGE_DATA_FORMAT = 'channels_last'
|
||||
def backend():
|
||||
"""Publicly accessible method for determining the current backend.
|
||||
|
||||
Only exists for API compatibily with multi-backend Keras.
|
||||
Only exists for API compatibility with multi-backend Keras.
|
||||
|
||||
Returns:
|
||||
The string "tensorflow".
|
||||
@ -2736,7 +2736,7 @@ def in_train_phase(x, alt, training=None):
|
||||
(tensor or callable that returns a tensor).
|
||||
training: Optional scalar tensor
|
||||
(or Python boolean, or Python integer)
|
||||
specifing the learning phase.
|
||||
specifying the learning phase.
|
||||
|
||||
Returns:
|
||||
Either `x` or `alt` based on the `training` flag.
|
||||
@ -2779,7 +2779,7 @@ def in_test_phase(x, alt, training=None):
|
||||
(tensor or callable that returns a tensor).
|
||||
training: Optional scalar tensor
|
||||
(or Python boolean, or Python integer)
|
||||
specifing the learning phase.
|
||||
specifying the learning phase.
|
||||
|
||||
Returns:
|
||||
Either `x` or `alt` based on `K.learning_phase`.
|
||||
|
@ -1544,7 +1544,7 @@ class Container(Layer):
|
||||
"""Retrieve the model's updates.
|
||||
|
||||
Will only include updates that are either
|
||||
inconditional, or conditional on inputs to this model
|
||||
unconditional, or conditional on inputs to this model
|
||||
(e.g. will not include updates that depend on tensors
|
||||
that aren't inputs to this model).
|
||||
|
||||
@ -1571,7 +1571,7 @@ class Container(Layer):
|
||||
"""Retrieve the model's losses.
|
||||
|
||||
Will only include losses that are either
|
||||
inconditional, or conditional on inputs to this model
|
||||
unconditional, or conditional on inputs to this model
|
||||
(e.g. will not include losses that depend on tensors
|
||||
that aren't inputs to this model).
|
||||
|
||||
|
@ -109,7 +109,7 @@ class BaseWrapper(object):
|
||||
"""Gets parameters for this estimator.
|
||||
|
||||
Arguments:
|
||||
**params: ignored (exists for API compatiblity).
|
||||
**params: ignored (exists for API compatibility).
|
||||
|
||||
Returns:
|
||||
Dictionary of parameter names mapped to their values.
|
||||
|
@ -273,7 +273,7 @@ features.
|
||||
* The parameters of the kernel mapping are often data-dependent. Model quality
|
||||
can be very sensitive to these parameters. Use hyperparameter tuning to find the
|
||||
optimal values.
|
||||
* If you have multiple numerical features, concatinate them into a single
|
||||
* If you have multiple numerical features, concatenate them into a single
|
||||
multi-dimensional feature and apply the kernel mapping to the concatenated
|
||||
vector.
|
||||
|
||||
|
@ -85,7 +85,7 @@ class RandomFourierFeatureMapperTest(TensorFlowTestCase):
|
||||
mapped_x = rffm.map(x)
|
||||
mapped_x_copy = rffm.map(x)
|
||||
# Two different evaluations of tensors output by map on the same input
|
||||
# are identical because the same paramaters are used for the mappings.
|
||||
# are identical because the same parameters are used for the mappings.
|
||||
self.assertAllClose(mapped_x.eval(), mapped_x_copy.eval(), atol=0.001)
|
||||
|
||||
def testTwoMapperObjects(self):
|
||||
|
@ -618,7 +618,7 @@ def identity(labeled_tensor, name=None):
|
||||
def slice_function(labeled_tensor, selection, name=None):
|
||||
"""Slice out a subset of the tensor.
|
||||
|
||||
This is an analogue of tf.slice.
|
||||
This is an analog of tf.slice.
|
||||
For example:
|
||||
>>> tensor = tf.reshape(tf.range(0, 6), [3, 2])
|
||||
>>> labeled_tensor = lt.LabeledTensor(tensor, ['a', ('b', ['foo', 'bar'])])
|
||||
@ -704,7 +704,7 @@ def transpose(labeled_tensor, axis_order=None, name=None):
|
||||
axis_names = list(labeled_tensor.axes.keys())
|
||||
permutation = [axis_names.index(n) for n in axis_order]
|
||||
|
||||
# Note: TensorFlow doesn't copy data for the identity tranpose.
|
||||
# Note: TensorFlow doesn't copy data for the identity transpose.
|
||||
transpose_tensor = array_ops.transpose(
|
||||
labeled_tensor.tensor, permutation, name=scope)
|
||||
|
||||
|
@ -28,7 +28,7 @@ from tensorflow.python.platform import test
|
||||
|
||||
class RegressionTargetColumnTest(test.TestCase):
|
||||
|
||||
# TODO(zakaria): test multilabel regresssion.
|
||||
# TODO(zakaria): test multilabel regression.
|
||||
def testRegression(self):
|
||||
target_column = target_column_lib.regression_target()
|
||||
with ops.Graph().as_default(), session.Session() as sess:
|
||||
|
@ -97,7 +97,7 @@ class TensorFlowDataFrame(df.DataFrame):
|
||||
graph: the `Graph` in which the `DataFrame` should be built.
|
||||
session: the `Session` in which to run the columns of the `DataFrame`.
|
||||
start_queues: if true, queues will be started before running and halted
|
||||
after producting `n` batches.
|
||||
after producing `n` batches.
|
||||
initialize_variables: if true, variables will be initialized.
|
||||
**kwargs: Additional keyword arguments e.g. `num_epochs`.
|
||||
|
||||
|
@ -261,17 +261,13 @@ def read_data_sets(train_dir,
|
||||
train_images = train_images[validation_size:]
|
||||
train_labels = train_labels[validation_size:]
|
||||
|
||||
train = DataSet(
|
||||
train_images, train_labels, dtype=dtype, reshape=reshape, seed=seed)
|
||||
validation = DataSet(
|
||||
validation_images,
|
||||
validation_labels,
|
||||
dtype=dtype,
|
||||
reshape=reshape,
|
||||
seed=seed)
|
||||
test = DataSet(
|
||||
test_images, test_labels, dtype=dtype, reshape=reshape, seed=seed)
|
||||
|
||||
|
||||
options = dict(dtype=dtype, reshape=reshape, seed=seed)
|
||||
|
||||
train = DataSet(train_images, train_labels, **options)
|
||||
validation = DataSet(validation_images, validation_labels, **options)
|
||||
test = DataSet(test_images, test_labels, **options)
|
||||
|
||||
return base.Datasets(train=train, validation=validation, test=test)
|
||||
|
||||
|
||||
|
@ -89,7 +89,7 @@ SCIKIT_DECOUPLE_INSTRUCTIONS = (
|
||||
|
||||
|
||||
def _verify_input_args(x, y, input_fn, feed_fn, batch_size):
|
||||
"""Verifies validity of co-existance of input arguments."""
|
||||
"""Verifies validity of co-existence of input arguments."""
|
||||
if input_fn is None:
|
||||
if x is None:
|
||||
raise ValueError('Either x or input_fn must be provided.')
|
||||
@ -360,7 +360,7 @@ class BaseEstimator(
|
||||
"""
|
||||
__metaclass__ = abc.ABCMeta
|
||||
|
||||
# Note that for Google users, this is overriden with
|
||||
# Note that for Google users, this is overridden with
|
||||
# learn_runner.EstimatorConfig.
|
||||
# TODO(wicke): Remove this once launcher takes over config functionality
|
||||
_Config = run_config.RunConfig # pylint: disable=invalid-name
|
||||
@ -705,7 +705,7 @@ class BaseEstimator(
|
||||
def _get_eval_ops(self, features, labels, metrics):
|
||||
"""Method that builds model graph and returns evaluation ops.
|
||||
|
||||
Expected to be overriden by sub-classes that require custom support.
|
||||
Expected to be overridden by sub-classes that require custom support.
|
||||
|
||||
Args:
|
||||
features: `Tensor` or `dict` of `Tensor` objects.
|
||||
@ -1151,7 +1151,7 @@ class Estimator(BaseEstimator):
|
||||
def _get_train_ops(self, features, labels):
|
||||
"""Method that builds model graph and returns trainer ops.
|
||||
|
||||
Expected to be overriden by sub-classes that require custom support.
|
||||
Expected to be overridden by sub-classes that require custom support.
|
||||
This implementation uses `model_fn` passed as parameter to constructor to
|
||||
build model.
|
||||
|
||||
@ -1167,7 +1167,7 @@ class Estimator(BaseEstimator):
|
||||
def _get_eval_ops(self, features, labels, metrics):
|
||||
"""Method that builds model graph and returns evaluation ops.
|
||||
|
||||
Expected to be overriden by sub-classes that require custom support.
|
||||
Expected to be overridden by sub-classes that require custom support.
|
||||
This implementation uses `model_fn` passed as parameter to constructor to
|
||||
build model.
|
||||
|
||||
@ -1206,7 +1206,7 @@ class Estimator(BaseEstimator):
|
||||
def _get_predict_ops(self, features):
|
||||
"""Method that builds model graph and returns prediction ops.
|
||||
|
||||
Expected to be overriden by sub-classes that require custom support.
|
||||
Expected to be overridden by sub-classes that require custom support.
|
||||
This implementation uses `model_fn` passed as parameter to constructor to
|
||||
build model.
|
||||
|
||||
|
@ -405,7 +405,7 @@ class EstimatorModelFnTest(test.TestCase):
|
||||
return None, loss, None
|
||||
|
||||
est = estimator.Estimator(model_fn=_invalid_model_fn)
|
||||
with self.assertRaisesRegexp(ValueError, 'Missing training_op'):
|
||||
with self.assertRaisesRegexp(ValueError, 'Missing train_op'):
|
||||
est.fit(input_fn=boston_input_fn, steps=1)
|
||||
|
||||
def testInvalidModelFn_no_loss(self):
|
||||
|
@ -637,7 +637,7 @@ def _create_model_fn_ops(features,
|
||||
weight_tensor = _weight_tensor(features, weight_column_name)
|
||||
loss, weighted_average_loss = loss_fn(labels, logits, weight_tensor)
|
||||
# Uses the deprecated API to set the tag explicitly.
|
||||
# Without it, trianing and eval losses will show up in different graphs.
|
||||
# Without it, training and eval losses will show up in different graphs.
|
||||
logging_ops.scalar_summary(
|
||||
_summary_key(head_name, mkey.LOSS), weighted_average_loss)
|
||||
|
||||
@ -1158,7 +1158,7 @@ def _to_labels_tensor(labels, label_name):
|
||||
"""Returns label as a tensor.
|
||||
|
||||
Args:
|
||||
labels: Label `Tensor` or `SparseTensor` or a dict containig labels.
|
||||
labels: Label `Tensor` or `SparseTensor` or a dict containing labels.
|
||||
label_name: Label name if labels is a dict.
|
||||
|
||||
Returns:
|
||||
@ -1669,7 +1669,7 @@ class _MultiHead(Head):
|
||||
Args:
|
||||
all_model_fn_ops: list of ModelFnOps for the individual heads.
|
||||
train_op_fn: Function to create train op. See `create_model_fn_ops`
|
||||
documentaion for more details.
|
||||
documentation for more details.
|
||||
|
||||
Returns:
|
||||
ModelFnOps that merges all heads for TRAIN.
|
||||
|
@ -132,7 +132,7 @@ class ModelFnOps(
|
||||
# Validate train_op.
|
||||
if train_op is None:
|
||||
if mode == ModeKeys.TRAIN:
|
||||
raise ValueError('Missing training_op.')
|
||||
raise ValueError('Missing train_op.')
|
||||
elif not isinstance(train_op, ops.Operation):
|
||||
# TODO(ptucker): Should this be allowed? Consider raising error.
|
||||
train_op = ops.convert_to_tensor(train_op).op
|
||||
|
@ -119,7 +119,7 @@ def apply_dropout(cells, dropout_keep_probabilities, random_seed=None):
|
||||
"""
|
||||
if len(dropout_keep_probabilities) != len(cells) + 1:
|
||||
raise ValueError(
|
||||
'The number of dropout probabilites must be one greater than the '
|
||||
'The number of dropout probabilities must be one greater than the '
|
||||
'number of cells. Got {} cells and {} dropout probabilities.'.format(
|
||||
len(cells), len(dropout_keep_probabilities)))
|
||||
wrapped_cells = [
|
||||
|
@ -309,7 +309,7 @@ class RunConfig(ClusterConfig, core_run_config.RunConfig):
|
||||
Args:
|
||||
whitelist: A list of the string names of the properties uid should not
|
||||
include. If `None`, defaults to `_DEFAULT_UID_WHITE_LIST`, which
|
||||
includes most properites user allowes to change.
|
||||
includes most properties user allowes to change.
|
||||
|
||||
Returns:
|
||||
A uid string.
|
||||
|
@ -60,19 +60,19 @@ class Evaluable(object):
|
||||
|
||||
Args:
|
||||
x: Matrix of shape [n_samples, n_features...] or dictionary of many matrices
|
||||
containing the input samples for fitting the model. Can be iterator that returns
|
||||
arrays of features or dictionary of array of features. If set, `input_fn` must
|
||||
be `None`.
|
||||
containing the input samples for fitting the model. Can be iterator that returns
|
||||
arrays of features or dictionary of array of features. If set, `input_fn` must
|
||||
be `None`.
|
||||
y: Vector or matrix [n_samples] or [n_samples, n_outputs] containing the
|
||||
label values (class labels in classification, real numbers in
|
||||
regression) or dictionary of multiple vectors/matrices. Can be iterator
|
||||
that returns array of targets or dictionary of array of targets. If set,
|
||||
`input_fn` must be `None`. Note: For classification, label values must
|
||||
be integers representing the class index (i.e. values from 0 to
|
||||
n_classes-1).
|
||||
label values (class labels in classification, real numbers in
|
||||
regression) or dictionary of multiple vectors/matrices. Can be iterator
|
||||
that returns array of targets or dictionary of array of targets. If set,
|
||||
`input_fn` must be `None`. Note: For classification, label values must
|
||||
be integers representing the class index (i.e. values from 0 to
|
||||
n_classes-1).
|
||||
input_fn: Input function returning a tuple of:
|
||||
features - Dictionary of string feature name to `Tensor` or `Tensor`.
|
||||
labels - `Tensor` or dictionary of `Tensor` with labels.
|
||||
features - Dictionary of string feature name to `Tensor` or `Tensor`.
|
||||
labels - `Tensor` or dictionary of `Tensor` with labels.
|
||||
If input_fn is set, `x`, `y`, and `batch_size` must be `None`. If
|
||||
`steps` is not provided, this should raise `OutOfRangeError` or
|
||||
`StopIteration` after the desired amount of data (e.g., one epoch) has
|
||||
@ -90,7 +90,6 @@ class Evaluable(object):
|
||||
friendly names for the metric to a `MetricSpec` object defining which
|
||||
model outputs to evaluate against which labels with which metric
|
||||
function.
|
||||
|
||||
Metric ops should support streaming, e.g., returning `update_op` and
|
||||
`value` tensors. For example, see the options defined in
|
||||
`../../../metrics/python/ops/metrics_ops.py`.
|
||||
|
@ -53,7 +53,7 @@ class Experiment(object):
|
||||
"""
|
||||
|
||||
# TODO(ispir): remove delay_workers_by_global_step and make global step based
|
||||
# waiting as only behaviour.
|
||||
# waiting as only behavior.
|
||||
@deprecated_args(
|
||||
"2016-10-23",
|
||||
"local_eval_frequency is deprecated as local_run will be renamed to "
|
||||
@ -550,7 +550,7 @@ class Experiment(object):
|
||||
eval_result = None
|
||||
|
||||
# Set the default value for train_steps_per_iteration, which will be
|
||||
# overriden by other settings.
|
||||
# overridden by other settings.
|
||||
train_steps_per_iteration = 1000
|
||||
if self._train_steps_per_iteration is not None:
|
||||
train_steps_per_iteration = self._train_steps_per_iteration
|
||||
|
@ -155,7 +155,7 @@ def run(experiment_fn, output_dir=None, schedule=None, run_config=None,
|
||||
to create the `Estimator` (passed as `model_dir` to its constructor). It
|
||||
must return an `Experiment`. For this case, `run_config` and `hparams`
|
||||
must be None.
|
||||
2) It accpets two arguments `run_config` and `hparams`, which should be
|
||||
2) It accepts two arguments `run_config` and `hparams`, which should be
|
||||
used to create the `Estimator` (`run_config` passed as `config` to its
|
||||
constructor; `hparams` used as the hyper-paremeters of the model).
|
||||
It must return an `Experiment`. For this case, `output_dir` must be None.
|
||||
|
@ -140,7 +140,7 @@ def rnn_seq2seq(encoder_inputs,
|
||||
scope: Scope to use, if None new will be produced.
|
||||
|
||||
Returns:
|
||||
List of tensors for outputs and states for trianing and sampling sub-graphs.
|
||||
List of tensors for outputs and states for training and sampling sub-graphs.
|
||||
"""
|
||||
with vs.variable_scope(scope or "rnn_seq2seq"):
|
||||
_, last_enc_state = rnn.static_rnn(
|
||||
|
@ -128,9 +128,9 @@ class CategoricalVocabulary(object):
|
||||
Class name.
|
||||
|
||||
Raises:
|
||||
ValueError: if this vocabulary wasn't initalized with support_reverse.
|
||||
ValueError: if this vocabulary wasn't initialized with support_reverse.
|
||||
"""
|
||||
if not self._support_reverse:
|
||||
raise ValueError("This vocabulary wasn't initalized with "
|
||||
raise ValueError("This vocabulary wasn't initialized with "
|
||||
"support_reverse to support reverse() function.")
|
||||
return self._reverse_mapping[class_id]
|
||||
|
@ -49,7 +49,7 @@ class Trainable(object):
|
||||
steps: Number of steps for which to train model. If `None`, train forever.
|
||||
'steps' works incrementally. If you call two times fit(steps=10) then
|
||||
training occurs in total 20 steps. If you don't want to have incremental
|
||||
behaviour please set `max_steps` instead. If set, `max_steps` must be
|
||||
behavior please set `max_steps` instead. If set, `max_steps` must be
|
||||
`None`.
|
||||
batch_size: minibatch size to use on the input, defaults to first
|
||||
dimension of `x`. Must be `None` if `input_fn` is provided.
|
||||
|
@ -89,7 +89,7 @@ def _export_graph(graph, saver, checkpoint_path, export_dir,
|
||||
def generic_signature_fn(examples, unused_features, predictions):
|
||||
"""Creates generic signature from given examples and predictions.
|
||||
|
||||
This is needed for backward compatibility with default behaviour of
|
||||
This is needed for backward compatibility with default behavior of
|
||||
export_estimator.
|
||||
|
||||
Args:
|
||||
|
@ -71,6 +71,7 @@ import math
|
||||
import os
|
||||
|
||||
from tensorflow.python.platform import gfile
|
||||
from tensorflow.python.util import compat
|
||||
|
||||
Path = collections.namedtuple('Path', 'path export_version')
|
||||
|
||||
@ -199,7 +200,9 @@ def get_paths(base_dir, parser):
|
||||
raw_paths = gfile.ListDirectory(base_dir)
|
||||
paths = []
|
||||
for r in raw_paths:
|
||||
p = parser(Path(os.path.join(base_dir, r), None))
|
||||
p = parser(Path(os.path.join(compat.as_str_any(base_dir),
|
||||
compat.as_str_any(r)),
|
||||
None))
|
||||
if p:
|
||||
paths.append(p)
|
||||
return sorted(paths)
|
||||
|
@ -27,6 +27,19 @@ from tensorflow.contrib.learn.python.learn.utils import gc
|
||||
from tensorflow.python.framework import test_util
|
||||
from tensorflow.python.platform import gfile
|
||||
from tensorflow.python.platform import test
|
||||
from tensorflow.python.util import compat
|
||||
|
||||
|
||||
def _create_parser(base_dir):
|
||||
# create a simple parser that pulls the export_version from the directory.
|
||||
def parser(path):
|
||||
match = re.match("^" + compat.as_str_any(base_dir) + "/(\\d+)$",
|
||||
compat.as_str_any(path.path))
|
||||
if not match:
|
||||
return None
|
||||
return path._replace(export_version=int(match.group(1)))
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
class GcTest(test_util.TensorFlowTestCase):
|
||||
@ -102,20 +115,24 @@ class GcTest(test_util.TensorFlowTestCase):
|
||||
# add a base_directory to ignore
|
||||
gfile.MakeDirs(os.path.join(base_dir, "ignore"))
|
||||
|
||||
# create a simple parser that pulls the export_version from the directory.
|
||||
def parser(path):
|
||||
match = re.match("^" + base_dir + "/(\\d+)$", path.path)
|
||||
if not match:
|
||||
return None
|
||||
return path._replace(export_version=int(match.group(1)))
|
||||
|
||||
self.assertEquals(
|
||||
gc.get_paths(
|
||||
base_dir, parser=parser), [
|
||||
gc.Path(os.path.join(base_dir, "0"), 0),
|
||||
gc.Path(os.path.join(base_dir, "1"), 1),
|
||||
gc.Path(os.path.join(base_dir, "2"), 2)
|
||||
])
|
||||
gc.get_paths(base_dir, _create_parser(base_dir)),
|
||||
[
|
||||
gc.Path(os.path.join(base_dir, "0"), 0),
|
||||
gc.Path(os.path.join(base_dir, "1"), 1),
|
||||
gc.Path(os.path.join(base_dir, "2"), 2)
|
||||
])
|
||||
|
||||
def testMixedStrTypes(self):
|
||||
temp_dir = compat.as_bytes(test.get_temp_dir())
|
||||
|
||||
for sub_dir in ['str', b'bytes', u'unicode']:
|
||||
base_dir = os.path.join(
|
||||
(temp_dir if isinstance(sub_dir, bytes) else temp_dir.decode()),
|
||||
sub_dir)
|
||||
self.assertFalse(gfile.Exists(base_dir))
|
||||
gfile.MakeDirs(os.path.join(compat.as_str_any(base_dir), "42"))
|
||||
gc.get_paths(base_dir, _create_parser(base_dir))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -309,7 +309,7 @@ def get_most_recent_export(export_dir_base):
|
||||
directories.
|
||||
|
||||
Returns:
|
||||
A gc.Path, whith is just a namedtuple of (path, export_version).
|
||||
A gc.Path, with is just a namedtuple of (path, export_version).
|
||||
"""
|
||||
select_filter = gc.largest_export_versions(1)
|
||||
results = select_filter(gc.get_paths(export_dir_base,
|
||||
|
@ -109,7 +109,7 @@ class SavedModelExportUtilsTest(test.TestCase):
|
||||
self.assertEqual(actual_signature_def, expected_signature_def)
|
||||
|
||||
def test_build_standardized_signature_def_classification2(self):
|
||||
"""Tests multiple output tensors that include classes and probabilites."""
|
||||
"""Tests multiple output tensors that include classes and probabilities."""
|
||||
input_tensors = {
|
||||
"input-1":
|
||||
array_ops.placeholder(
|
||||
|
@ -825,7 +825,7 @@ class Seq2SeqTest(test.TestCase):
|
||||
# with variable_scope.variable_scope("new"):
|
||||
# _, losses2 = SampleGRUSeq2Seq
|
||||
# inp, out, weights, per_example_loss=True)
|
||||
# # First loss is scalar, the second one is a 1-dimensinal tensor.
|
||||
# # First loss is scalar, the second one is a 1-dimensional tensor.
|
||||
# self.assertEqual([], losses1[0].get_shape().as_list())
|
||||
# self.assertEqual([None], losses2[0].get_shape().as_list())
|
||||
|
||||
|
@ -79,7 +79,7 @@ class LinearOperatorComposition(linear_operator.LinearOperator):
|
||||
operator_56 = LinearOperatorFullMatrix(matrix_56)
|
||||
|
||||
# Compose to create a [2, 3] batch of 4 x 6 operators.
|
||||
opeartor_46 = LinearOperatorComposition([operator_45, operator_56])
|
||||
operator_46 = LinearOperatorComposition([operator_45, operator_56])
|
||||
|
||||
# Create a shape [2, 3, 6, 2] vector.
|
||||
x = tf.random_normal(shape=[2, 3, 6, 2])
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user