diff --git a/configure.py b/configure.py index 3dc3969847c..fe724c9e6ac 100644 --- a/configure.py +++ b/configure.py @@ -50,6 +50,7 @@ _DEFAULT_PROMPT_ASK_ATTEMPTS = 10 _TF_BAZELRC_FILENAME = '.tf_configure.bazelrc' _TF_WORKSPACE_ROOT = '' _TF_BAZELRC = '' +_TF_CURRENT_BAZEL_VERSION = None NCCL_LIB_PATHS = [ 'lib64/', 'lib/powerpc64le-linux-gnu/', 'lib/x86_64-linux-gnu/', '' @@ -337,8 +338,8 @@ def get_var(environ_cp, 'Environment variable %s must be set as a boolean indicator.\n' 'The following are accepted as TRUE : %s.\n' 'The following are accepted as FALSE: %s.\n' - 'Current value is %s.' % (var_name, ', '.join(true_strings), - ', '.join(false_strings), var)) + 'Current value is %s.' % + (var_name, ', '.join(true_strings), ', '.join(false_strings), var)) while var is None: user_input_origin = get_input(question) @@ -771,11 +772,12 @@ def check_ndk_level(android_ndk_home_path): else: raise Exception('Unable to parse NDK revision.') if int(ndk_api_level) not in _SUPPORTED_ANDROID_NDK_VERSIONS: - print('WARNING: The API level of the NDK in %s is %s, which is not ' - 'supported by Bazel (officially supported versions: %s). Please use ' - 'another version. Compiling Android targets may result in confusing ' - 'errors.\n' % (android_ndk_home_path, ndk_api_level, - _SUPPORTED_ANDROID_NDK_VERSIONS)) + print( + 'WARNING: The API level of the NDK in %s is %s, which is not ' + 'supported by Bazel (officially supported versions: %s). Please use ' + 'another version. Compiling Android targets may result in confusing ' + 'errors.\n' % + (android_ndk_home_path, ndk_api_level, _SUPPORTED_ANDROID_NDK_VERSIONS)) return ndk_api_level @@ -1230,8 +1232,8 @@ def set_tf_nccl_install_path(environ_cp): # Reset and Retry print( 'Invalid path to NCCL %s toolkit, %s or %s not found. Please use the ' - 'O/S agnostic package of NCCL 2' % (tf_nccl_version, nccl_lib_path, - nccl_hdr_path)) + 'O/S agnostic package of NCCL 2' % + (tf_nccl_version, nccl_lib_path, nccl_hdr_path)) environ_cp['TF_NCCL_VERSION'] = '' else: @@ -1498,6 +1500,7 @@ def set_other_mpi_vars(environ_cp): 'Cannot find the MPI library file in %s/lib or %s/lib64 or %s/lib32' % (mpi_home, mpi_home, mpi_home)) + def system_specific_test_config(env): """Add default test flags required for TF tests to bazelrc.""" write_to_bazelrc('test --flaky_test_attempts=3') @@ -1593,11 +1596,15 @@ def configure_apple_bazel_rules(): existing_filepath = os.path.join(_TF_WORKSPACE_ROOT, filepath + '.apple') renamed_filepath = os.path.join(_TF_WORKSPACE_ROOT, filepath) os.rename(existing_filepath, renamed_filepath) + if _TF_CURRENT_BAZEL_VERSION is None or _TF_CURRENT_BAZEL_VERSION < 23000: + print( + 'Building Bazel rules on Apple platforms requires Bazel 0.23 or later.') def main(): global _TF_WORKSPACE_ROOT global _TF_BAZELRC + global _TF_CURRENT_BAZEL_VERSION parser = argparse.ArgumentParser() parser.add_argument( @@ -1614,7 +1621,8 @@ def main(): # environment variables. environ_cp = dict(os.environ) - check_bazel_version('0.19.0', '0.23.2') + current_bazel_version = check_bazel_version('0.19.0', '0.23.2') + _TF_CURRENT_BAZEL_VERSION = convert_version_to_int(current_bazel_version) reset_tf_configure_bazelrc() diff --git a/tensorflow/api_template_v1.__init__.py b/tensorflow/api_template_v1.__init__.py index 5eb25a81b7f..8dd14568fe3 100644 --- a/tensorflow/api_template_v1.__init__.py +++ b/tensorflow/api_template_v1.__init__.py @@ -50,6 +50,7 @@ WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0. For more information, please see: * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md * https://github.com/tensorflow/addons + * https://github.com/tensorflow/io (for I/O related ops) If you depend on functionality not listed there, please file an issue. """ contrib = LazyLoader('contrib', globals(), 'tensorflow.contrib', diff --git a/tensorflow/cc/gradients/image_grad.cc b/tensorflow/cc/gradients/image_grad.cc index 7d0f63efbcc..056eea7eb5a 100644 --- a/tensorflow/cc/gradients/image_grad.cc +++ b/tensorflow/cc/gradients/image_grad.cc @@ -88,15 +88,19 @@ Status ScaleAndTranslateGradHelper(const Scope& scope, const Operation& op, string kernel_type; TF_RETURN_IF_ERROR( GetNodeAttr(op.node()->attrs(), "kernel_type", &kernel_type)); + bool antialias; + TF_RETURN_IF_ERROR(GetNodeAttr(op.node()->attrs(), "antialias", &antialias)); grad_outputs->push_back(internal::ScaleAndTranslateGrad( scope, grad_inputs[0], op.input(0), op.input(2), op.input(3), - internal::ScaleAndTranslateGrad::KernelType(kernel_type))); + internal::ScaleAndTranslateGrad::KernelType(kernel_type) + .Antialias(antialias))); grad_outputs->push_back(NoGradient()); grad_outputs->push_back(NoGradient()); grad_outputs->push_back(NoGradient()); return scope.status(); } + REGISTER_GRADIENT_OP("ScaleAndTranslate", ScaleAndTranslateGradHelper); Status CropAndResizeGradHelper(const Scope& scope, const Operation& op, diff --git a/tensorflow/cc/gradients/image_grad_test.cc b/tensorflow/cc/gradients/image_grad_test.cc index 3bd52c80bd9..d50f4f5750a 100644 --- a/tensorflow/cc/gradients/image_grad_test.cc +++ b/tensorflow/cc/gradients/image_grad_test.cc @@ -196,29 +196,106 @@ class ScaleAndTranslateGradTest : public ::testing::Test { } template - void MakeOp(const Tensor& x_data, const Input& y_shape, Output* x, - Output* y) { + void MakeOp(const Tensor& x_data, const Input& y_shape, Input scale, + Input translation, const string& kernel_type, bool antialias, + Output* x, Output* y) { *x = Const(scope_, x_data); - *y = ScaleAndTranslate(scope_, *x, y_shape, {1.8f, 2.1f}, {0.5f, 0.7f}); + *y = ScaleAndTranslate(scope_, *x, y_shape, scale, translation, + ScaleAndTranslate::KernelType(kernel_type) + .Antialias(antialias) + .Antialias(antialias)); TF_ASSERT_OK(scope_.status()); } template - void TestResize() { - TensorShape x_shape({1, 2, 3, 1}); + void TestScaleAndTranslate(const TensorShape x_shape, const int out_height, + const int out_width, Input scale, + Input translation, const string& kernel_type, + bool antialias) { Tensor x_data = MakeData(x_shape); Output x, y; - MakeOp(x_data, {4, 6}, &x, &y); + MakeOp(x_data, {out_height, out_width}, scale, translation, + kernel_type, antialias, &x, &y); JAC_T max_error; TF_ASSERT_OK((ComputeGradientError( - scope_, x, x_data, y, {1, 4, 6, 1}, &max_error))); - EXPECT_LT(max_error, 1e-3); + scope_, x, x_data, y, {1, out_height, out_width, 1}, &max_error))); + EXPECT_LT(max_error, 2e-3); } + const std::vector kScales = {Input{1.0f, 1.0f}, Input{0.37f, 0.47f}, + Input{2.1f, 2.1f}}; + const std::vector kTranslations = { + Input{0.0f, 0.0f}, Input{3.14f, 1.19f}, Input{2.1f, 3.1f}, + Input{100.0f, 200.0f}}; Scope scope_; }; -TEST_F(ScaleAndTranslateGradTest, Works) { TestResize(); } +TEST_F(ScaleAndTranslateGradTest, TestGrads) { + const std::vector kKernelTypes = {"lanczos1", "lanczos3", + "lanczos5", "gaussian"}; + constexpr int kOutHeight = 4; + constexpr int kOutWidth = 6; + + const TensorShape kXShape = TensorShape({1, 2, 3, 1}); + for (const Input scale : kScales) { + for (const Input translation : kTranslations) { + for (const std::string& kernel_type : kKernelTypes) { + TestScaleAndTranslate( + kXShape, kOutHeight, kOutWidth, scale, translation, kernel_type, + true); + } + } + } +} + +TEST_F(ScaleAndTranslateGradTest, TestGradsWithoutAntialias) { + constexpr int kOutHeight = 4; + constexpr int kOutWidth = 6; + + const TensorShape kXShape = TensorShape({1, 2, 3, 1}); + for (const Input scale : kScales) { + for (const Input translation : kTranslations) { + TestScaleAndTranslate(kXShape, kOutHeight, kOutWidth, + scale, translation, "lanczos3", + false); + } + } +} + +TEST_F(ScaleAndTranslateGradTest, TestGradsWithSameShape) { + const std::vector kKernelTypes = {"lanczos3", "gaussian"}; + + constexpr int kOutHeight = 2; + constexpr int kOutWidth = 3; + + const TensorShape kXShape = TensorShape({1, 2, 3, 1}); + for (const Input scale : kScales) { + for (const Input translation : kTranslations) { + for (const std::string& kernel_type : kKernelTypes) { + TestScaleAndTranslate( + kXShape, kOutHeight, kOutWidth, scale, translation, kernel_type, + true); + } + } + } +} + +TEST_F(ScaleAndTranslateGradTest, TestGradsWithSmallerShape) { + const std::vector kKernelTypes = {"lanczos3", "gaussian"}; + constexpr int kOutHeight = 2; + constexpr int kOutWidth = 3; + + const TensorShape kXShape = TensorShape({1, 4, 6, 1}); + for (const Input scale : kScales) { + for (const Input translation : kTranslations) { + for (const std::string& kernel_type : kKernelTypes) { + TestScaleAndTranslate( + kXShape, kOutHeight, kOutWidth, scale, translation, kernel_type, + true); + } + } + } +} class CropAndResizeGradTest : public ::testing::Test { protected: @@ -237,9 +314,9 @@ class CropAndResizeGradTest : public ::testing::Test { template void MakeOp(const Tensor& x_data, const Input& boxes, const Input& box_ind, - const Input& crop_szie, Output* x, Output* y) { + const Input& crop_size, Output* x, Output* y) { *x = Const(scope_, x_data); - *y = CropAndResize(scope_, *x, boxes, box_ind, crop_szie, + *y = CropAndResize(scope_, *x, boxes, box_ind, crop_size, CropAndResize::Method("bilinear")); TF_ASSERT_OK(scope_.status()); } diff --git a/tensorflow/compiler/jit/xla_device_ops.h b/tensorflow/compiler/jit/xla_device_ops.h index 48bd2f18eb7..eac6586203e 100644 --- a/tensorflow/compiler/jit/xla_device_ops.h +++ b/tensorflow/compiler/jit/xla_device_ops.h @@ -101,6 +101,15 @@ class XlaAssignVariableOp : public OpKernel { REGISTER_KERNEL_BUILDER( \ Name("Identity").Device(DEVICE).TypeConstraint("T", DT_STRING), \ IdentityOp); \ + REGISTER_KERNEL_BUILDER( \ + Name("Identity").Device(DEVICE).TypeConstraint("T"), \ + IdentityOp); \ + REGISTER_KERNEL_BUILDER(Name("Identity") \ + .Device(DEVICE) \ + .TypeConstraint("T") \ + .HostMemory("input") \ + .HostMemory("output"), \ + IdentityOp); \ REGISTER_KERNEL_BUILDER(Name("IdentityN").Device(DEVICE), IdentityNOp); \ REGISTER_KERNEL_BUILDER(Name("Placeholder").Device(DEVICE), PlaceholderOp); \ REGISTER_KERNEL_BUILDER(Name("PlaceholderV2").Device(DEVICE), \ @@ -199,9 +208,7 @@ class XlaAssignVariableOp : public OpKernel { Name("FIFOQueueV2").Device(DEVICE).HostMemory("handle"), FIFOQueueOp); \ \ REGISTER_KERNEL_BUILDER( \ - Name(kArgOp).Device(DEVICE).HostMemory("output").TypeConstraint("T", \ - TYPES), \ - ArgOp); \ + Name(kArgOp).Device(DEVICE).TypeConstraint("T", TYPES), ArgOp); \ REGISTER_KERNEL_BUILDER(Name(kArgOp) \ .Device(DEVICE) \ .HostMemory("output") \ @@ -210,11 +217,8 @@ class XlaAssignVariableOp : public OpKernel { REGISTER_KERNEL_BUILDER( \ Name(kArgOp).Device(DEVICE).TypeConstraint("T"), ArgOp); \ \ - REGISTER_KERNEL_BUILDER(Name(kRetOp) \ - .Device(DEVICE) \ - .TypeConstraint("T", TYPES) \ - .HostMemory("input"), \ - RetvalOp); \ + REGISTER_KERNEL_BUILDER( \ + Name(kRetOp).Device(DEVICE).TypeConstraint("T", TYPES), RetvalOp); \ REGISTER_KERNEL_BUILDER(Name(kRetOp) \ .Device(DEVICE) \ .TypeConstraint("T") \ diff --git a/tensorflow/compiler/tests/BUILD b/tensorflow/compiler/tests/BUILD index 3db98f77595..0c3adb0bcf9 100644 --- a/tensorflow/compiler/tests/BUILD +++ b/tensorflow/compiler/tests/BUILD @@ -482,7 +482,7 @@ tf_xla_py_test( name = "fft_test", size = "medium", srcs = ["fft_test.py"], - shard_count = 3, + shard_count = 6, tags = ["optonly"], deps = [ ":xla_test", diff --git a/tensorflow/compiler/tf2xla/kernels/binary_ops.cc b/tensorflow/compiler/tf2xla/kernels/binary_ops.cc index 3fba0d76d87..f69b5dc0222 100644 --- a/tensorflow/compiler/tf2xla/kernels/binary_ops.cc +++ b/tensorflow/compiler/tf2xla/kernels/binary_ops.cc @@ -79,6 +79,24 @@ static xla::XlaOp DivNoNanImpl(xla::XlaBuilder* b, DataType dtype, xla::XlaOp x, XLA_MAKE_BINARY(DivNoNan, DivNoNanImpl(b, input_type(0), lhs, rhs, broadcast_helper)); +// Implementation of MulNoNan. Pseudo-code: +// if (y == 0) { +// return 0 +// } else { +// return x * y; +// } +static xla::XlaOp MulNoNanImpl(xla::XlaBuilder* b, DataType dtype, xla::XlaOp x, + xla::XlaOp y, const BCast& broadcast_helper) { + std::tie(x, y) = XlaBinaryOp::Broadcast(x, y, broadcast_helper); + auto zero = XlaHelpers::Zero(b, dtype); + auto y_equals_0 = xla::Eq(y, zero); + auto zeros = xla::ZerosLike(x); + auto result = xla::Select(y_equals_0, zeros, xla::Mul(x, y)); + return result; +} +XLA_MAKE_BINARY(MulNoNan, + MulNoNanImpl(b, input_type(0), lhs, rhs, broadcast_helper)); + // Implementation of FloorDiv. // // For floating-point values, simply returns floor(x / y). For integers, does: diff --git a/tensorflow/compiler/xla/debug_options_flags.cc b/tensorflow/compiler/xla/debug_options_flags.cc index aaef4a15fae..2437bf04b0f 100644 --- a/tensorflow/compiler/xla/debug_options_flags.cc +++ b/tensorflow/compiler/xla/debug_options_flags.cc @@ -128,6 +128,20 @@ static void AllocateFlags() { flag_values->xla_cpu_enable_fast_math(), "Enable unsafe fast-math optimizations in the CPU compiler; " "this may produce faster code at the expense of some accuracy."), + tensorflow::Flag( + "xla_cpu_fast_math_honor_nans", + bool_setter_for(&DebugOptions::set_xla_cpu_fast_math_honor_nans), + flag_values->xla_cpu_fast_math_honor_nans(), + "When xla_cpu_enable_fast_math is true then this controls whether we " + "allow operations to produce NaNs. Ignored when " + "xla_cpu_enable_fast_math is false."), + tensorflow::Flag( + "xla_cpu_fast_math_honor_infs", + bool_setter_for(&DebugOptions::set_xla_cpu_fast_math_honor_infs), + flag_values->xla_cpu_fast_math_honor_infs(), + "When xla_cpu_enable_fast_math is true then this controls whether we " + "allow operations to produce infinites. Ignored when " + "xla_cpu_enable_fast_math is false."), tensorflow::Flag( "xla_gpu_enable_fast_min_max", bool_setter_for(&DebugOptions::set_xla_gpu_enable_fast_min_max), diff --git a/tensorflow/compiler/xla/g3doc/operation_semantics.md b/tensorflow/compiler/xla/g3doc/operation_semantics.md index b3fdd36b113..7d718c53010 100644 --- a/tensorflow/compiler/xla/g3doc/operation_semantics.md +++ b/tensorflow/compiler/xla/g3doc/operation_semantics.md @@ -1663,15 +1663,18 @@ Applies a reduction function to one or more arrays in parallel. `Reduce(operands..., init_values..., computation, dimensions)` -Arguments | Type | Semantics -------------- | --------------------- | --------------------------------------- -`operands` | Sequence of N `XlaOp` | N arrays of types `T_0, ..., T_N`. -`init_values` | Sequence of N `XlaOp` | N scalars of types `T_0, ..., T_N`. -`computation` | `XlaComputation` | computation of type - : : `T_0, ..., T_N, T_0, ..., T_N -> Collate(T_0, ..., T_N)` -`dimensions` | `int64` array | unordered array of dimensions to reduce +| Arguments | Type | Semantics | +| ------------- | --------------------- | ------------------------------------ | +| `operands` | Sequence of N `XlaOp` | N arrays of types `T_0, ..., T_N`. | +| `init_values` | Sequence of N `XlaOp` | N scalars of types `T_0, ..., T_N`. | +| `computation` | `XlaComputation` | computation of type `T_0, ..., T_N, | +: : : T_0, ..., T_N ->` `Collate(T_0, ..., : +: : : T_N)` : +| `dimensions` | `int64` array | unordered array of dimensions to | +: : : reduce : Where: + * N is required to be greater or equal to 1. * All input arrays must have the same dimensions. * If `N = 1`, `Collate(T)` is `T`. @@ -1681,10 +1684,10 @@ The output of the op is `Collate(Q_0, ..., Q_N)` where `Q_i` is an array of type `T_i`, the dimensions of which are described below. This operation reduces one or more dimensions of each input array into scalars. -The rank of each returned array is `rank(operand) - len(dimensions)`. -`init_value` is the initial value used for every reduction and may be inserted +The rank of each returned array is `rank(operand) - len(dimensions)`. The +initial value used for every reduction is `init_value`, and it may be inserted anywhere during computation by the back-end. In most cases, `init_value` is an -identity of the reduction function (for example, 0 for addition). The applied +identity of the reduction function (for example, `0` for addition). The applied `computation` is always passed the `init_value` on the left-hand side. The evaluation order of the reduction function is arbitrary and may be @@ -1695,10 +1698,10 @@ Some reduction functions like addition are not strictly associative for floats. However, if the range of the data is limited, floating-point addition is close enough to being associative for most practical uses. It is possible to conceive of some completely non-associative reductions, however, and these will produce -incorrect or unpredictable results in XLA reductions. +incorrect or unpredictable results in XLA. As an example, when reducing across one dimension in a single 1D array with -values [10, 11, 12, 13], with reduction function `f` (this is `computation`) +values `[10, 11, 12, 13]`, with reduction function `f` (this is `computation`) then that could be computed as `f(10, f(11, f(12, f(init_value, 13)))` @@ -1777,16 +1780,27 @@ preserved in the output, but some dimensions may get assigned new numbers (since the rank changes). We can also reduce multiple dimensions. Add-reducing dimensions 0 and 1 produces -the 1D array `| 20 28 36 |`. +the 1D array `[20, 28, 36]`. Reducing the 3D array over all its dimensions produces the scalar `84`. -When `N > 1`, reduce function application is slightly more complex, as it is -applied simultaneously to all inputs. For example, consider the following -reduction function, which can be used to compute the max and the argmax of a a -1-D array in parallel: +### Variadic Reduce -``` +When `N > 1`, reduce function application is slightly more complex, as it is +applied simultaneously to all inputs. The operands are supplied to the +computation in the following order: + +* Running reduced value for the first operand +* ... +* Running reduced value for the N'th operand +* Input value for the first operand +* ... +* Input value for the N'th operand + +For example, consider the following reduction function, which can be used to +compute the max and the argmax of a 1-D array in parallel: + +```python f: (Float, Int, Float, Int) -> Float, Int f(max, argmax, value, index): if value >= argmax: @@ -1798,6 +1812,7 @@ f(max, argmax, value, index): For 1-D Input arrays `V = Float[N], K = Int[N]`, and init values `I_V = Float, I_K = Int`, the result `f_(N-1)` of reducing across the only input dimension is equivalent to the following recursive application: + ``` f_0 = f(I_V, I_K, V_0, K_0) f_1 = f(f_0.first, f_0.second, V_1, K_1) diff --git a/tensorflow/compiler/xla/service/cpu/BUILD b/tensorflow/compiler/xla/service/cpu/BUILD index 1f077fbe45d..66ceb57227c 100644 --- a/tensorflow/compiler/xla/service/cpu/BUILD +++ b/tensorflow/compiler/xla/service/cpu/BUILD @@ -339,15 +339,15 @@ cc_library( srcs = ["ir_function.cc"], hdrs = ["ir_function.h"], deps = [ + ":cpu_runtime", ":ir_emission_utils", ":shape_partition", "//tensorflow/compiler/xla:shape_util", "//tensorflow/compiler/xla:status_macros", "//tensorflow/compiler/xla:statusor", "//tensorflow/compiler/xla:types", - "//tensorflow/compiler/xla/service/cpu:cpu_runtime", + "//tensorflow/compiler/xla/service:hlo_module_config", "//tensorflow/compiler/xla/service/llvm_ir:llvm_util", - "//tensorflow/core:lib", "@com_google_absl//absl/strings", "@com_google_absl//absl/types:span", "@llvm//:core", @@ -378,6 +378,7 @@ cc_library( ":vector_support_library", "//tensorflow/compiler/xla:xla_data_proto", "//tensorflow/compiler/xla/service:hlo", + "//tensorflow/compiler/xla/service:hlo_module_config", "//tensorflow/compiler/xla/service/llvm_ir:kernel_support_library", "//tensorflow/compiler/xla/service/llvm_ir:llvm_util", "//tensorflow/core:lib", diff --git a/tensorflow/compiler/xla/service/cpu/cpu_compiler.cc b/tensorflow/compiler/xla/service/cpu/cpu_compiler.cc index 534e35fdb10..7de159cf647 100644 --- a/tensorflow/compiler/xla/service/cpu/cpu_compiler.cc +++ b/tensorflow/compiler/xla/service/cpu/cpu_compiler.cc @@ -409,10 +409,20 @@ auto memory_alignment = [](LogicalBuffer::Color) { return kMemoryAlignment; }; llvm::TargetOptions CompilerTargetOptions( const HloModuleConfig& module_config) { llvm::TargetOptions target_options; - llvm_ir::SetTargetOptions( - /*fast_math_enabled=*/module_config.debug_options() - .xla_cpu_enable_fast_math(), - &target_options); + // In LLVM backend flags, UnsafeFPMath does not explicitly imply NoInfs, etc. + if (module_config.debug_options().xla_cpu_enable_fast_math()) { + target_options.UnsafeFPMath = true; + target_options.NoInfsFPMath = + module_config.debug_options().xla_cpu_fast_math_honor_infs(); + target_options.NoNaNsFPMath = + module_config.debug_options().xla_cpu_fast_math_honor_nans(); + target_options.NoSignedZerosFPMath = true; + } else { + target_options.UnsafeFPMath = false; + target_options.NoInfsFPMath = false; + target_options.NoNaNsFPMath = false; + target_options.NoSignedZerosFPMath = false; + } return target_options; } diff --git a/tensorflow/compiler/xla/service/cpu/dot_op_emitter.cc b/tensorflow/compiler/xla/service/cpu/dot_op_emitter.cc index 0b77984c2c9..6107d40ab51 100644 --- a/tensorflow/compiler/xla/service/cpu/dot_op_emitter.cc +++ b/tensorflow/compiler/xla/service/cpu/dot_op_emitter.cc @@ -250,11 +250,6 @@ void DotOpEmitter::EmitTiledLlvmIrGemm() { std::tie(tile_size_m, tile_size_k, tile_size_n_in_vector_width) = GetGemmTileSize(); - const bool enable_fast_math = - hlo_module_config_.debug_options().xla_cpu_enable_fast_math(); - const bool optimize_for_size = - options::OptimizeForSizeRequested(hlo_module_config_); - EmitSmallGemm( /*scalar_type=*/primitive_type, /*m=*/m, /*k=*/k, /*n=*/n, @@ -262,9 +257,7 @@ void DotOpEmitter::EmitTiledLlvmIrGemm() { /*max_vector_count=*/tile_size_n_in_vector_width, /*min_vectorization_width=*/std::min(4, max_target_vector_width), /*tile_size_m=*/tile_size_m, /*tile_size_k=*/tile_size_k, /*lhs=*/lhs, - /*rhs=*/rhs, /*result=*/target, b_, - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size); + /*rhs=*/rhs, /*result=*/target, b_, hlo_module_config_); } void DotOpEmitter::EmitTiledLlvmIrGemv() { @@ -323,11 +316,6 @@ void DotOpEmitter::EmitTiledLlvmIrGemv() { llvm::Value* rhs_op = swap_operands ? lhs_array_.GetBasePointer() : rhs_array_.GetBasePointer(); - const bool enable_fast_math = - hlo_module_config_.debug_options().xla_cpu_enable_fast_math(); - const bool optimize_for_size = - options::OptimizeForSizeRequested(hlo_module_config_); - const int target_vector_register_element_size = target_machine_features_.vector_register_num_elements( *b_->GetInsertBlock()->getParent(), primitive_type); @@ -349,9 +337,7 @@ void DotOpEmitter::EmitTiledLlvmIrGemv() { /*tile_rows=*/vector_register_element_size, /*tile_cols=*/tiling_factor, /*m=*/m, /*k=*/k, /*lhs=*/lhs_op, /*rhs=*/rhs_op, /*addend=*/addend_array_ ? addend_array_->GetBasePointer() : nullptr, - /*result=*/result_op, b_, - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size); + /*result=*/result_op, b_, hlo_module_config_); } else { VLOG(2) << "Emitting row major matrix-vector multiply with m = " << m << " and k = " << k; @@ -361,9 +347,7 @@ void DotOpEmitter::EmitTiledLlvmIrGemv() { /*tile_cols=*/vector_register_element_size, /*m=*/m, /*k=*/k, /*lhs=*/lhs_op, /*rhs=*/rhs_op, /*addend=*/addend_array_ ? addend_array_->GetBasePointer() : nullptr, - /*result=*/result_op, b_, - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size); + /*result=*/result_op, b_, hlo_module_config_); } } diff --git a/tensorflow/compiler/xla/service/cpu/ir_emitter.cc b/tensorflow/compiler/xla/service/cpu/ir_emitter.cc index d44c373396c..19e7b13bb3a 100644 --- a/tensorflow/compiler/xla/service/cpu/ir_emitter.cc +++ b/tensorflow/compiler/xla/service/cpu/ir_emitter.cc @@ -98,9 +98,7 @@ IrEmitter::IrEmitter( is_top_level_computation_(false), target_machine_features_(*target_machine_features), emit_code_for_msan_(emit_code_for_msan) { - b_.setFastMathFlags(llvm_ir::GetFastMathFlags( - /*fast_math_enabled=*/hlo_module_config_.debug_options() - .xla_cpu_enable_fast_math())); + b_.setFastMathFlags(llvm_ir::GetCpuFastMathFlags(hlo_module_config_)); Status s = GatherComputationsByAllocationType( &hlo_module, &thread_local_computations_, &global_computations_); absl::c_sort(thread_local_computations_); @@ -159,11 +157,9 @@ void IrEmitter::InitializeIrFunction(const string& function_name) { is_top_level_computation_ ? llvm::GlobalValue::ExternalLinkage : llvm::GlobalValue::InternalLinkage; // Create and initialize new IrFunction. - compute_function_.reset(new IrFunction( - function_name, linkage, - options::OptimizeForSizeRequested(hlo_module_config_), - hlo_module_config_.debug_options().xla_cpu_enable_fast_math(), module_, - &b_, num_dynamic_loop_bounds_)); + compute_function_.reset(new IrFunction(function_name, linkage, + hlo_module_config_, module_, &b_, + num_dynamic_loop_bounds_)); } IrEmitter::~IrEmitter() {} @@ -302,7 +298,7 @@ Status IrEmitter::HandleGetTupleElement(HloInstruction* get_tuple_element) { const Shape& shape = get_tuple_element->shape(); emitted_value_[get_tuple_element] = llvm_ir::EmitGetTupleElement( shape, get_tuple_element->tuple_index(), MinimumAlignmentForShape(shape), - GetEmittedValueFor(operand), &b_, module_); + GetEmittedValueFor(operand), &b_); return Status::OK(); } @@ -322,7 +318,7 @@ Status IrEmitter::HandleTupleSelect(HloInstruction* tuple_select) { TF_RETURN_IF_ERROR(EmitTargetAddressForOp(tuple_select)); llvm_ir::EmitTupleSelect(GetIrArrayFor(tuple_select), GetIrArrayFor(pred), GetEmittedValueFor(on_true), - GetEmittedValueFor(on_false), &b_, module_); + GetEmittedValueFor(on_false), &b_); return Status::OK(); } @@ -345,8 +341,7 @@ Status IrEmitter::HandleInfeed(HloInstruction* instruction) { assignment_.GetUniqueSlice(infeed, {1})); llvm::Value* token_address = EmitBufferPointer( token_slice, ShapeUtil::GetTupleElementShape(infeed->shape(), 1)); - llvm_ir::EmitTuple(GetIrArrayFor(infeed), {data_address, token_address}, &b_, - module_); + llvm_ir::EmitTuple(GetIrArrayFor(infeed), {data_address, token_address}, &b_); if (data_shape.IsTuple()) { TF_RET_CHECK(!ShapeUtil::IsNestedTuple(data_shape)); @@ -377,7 +372,7 @@ Status IrEmitter::HandleInfeed(HloInstruction* instruction) { } llvm_ir::EmitTuple(llvm_ir::IrArray(data_address, data_shape), - tuple_element_addresses, &b_, module_); + tuple_element_addresses, &b_); } else { TF_RETURN_IF_ERROR( EmitXfeedTransfer(XfeedKind::kInfeed, data_shape, data_address)); @@ -498,7 +493,7 @@ Status IrEmitter::HandleOutfeed(HloInstruction* outfeed) { ShapeUtil::GetTupleElementShape(operand_shape, i); llvm::Value* tuple_element = llvm_ir::EmitGetTupleElement( tuple_element_shape, i, MinimumAlignmentForShape(tuple_element_shape), - value, &b_, module_); + value, &b_); TF_RETURN_IF_ERROR(EmitXfeedTransfer(XfeedKind::kOutfeed, tuple_element_shape, tuple_element)); } @@ -621,8 +616,7 @@ Status IrEmitter::HandleSort(HloInstruction* hlo) { GetProfileCountersArgument(), less_than_function}); if (sort->values_count() > 0) { - llvm_ir::EmitTuple(GetIrArrayFor(sort), destination_addresses, &b_, - module_); + llvm_ir::EmitTuple(GetIrArrayFor(sort), destination_addresses, &b_); } return Status::OK(); } @@ -633,7 +627,7 @@ Status IrEmitter::HandleTuple(HloInstruction* tuple) { for (auto operand : tuple->operands()) { base_ptrs.push_back(GetEmittedValueFor(operand)); } - llvm_ir::EmitTuple(GetIrArrayFor(tuple), base_ptrs, &b_, module_); + llvm_ir::EmitTuple(GetIrArrayFor(tuple), base_ptrs, &b_); return Status::OK(); } @@ -1349,7 +1343,7 @@ Status IrEmitter::HandleAllReduce(HloInstruction* crs) { MemCpy(operand_ptrs.back(), /*DstAlign=*/1, in_ptr, /*SrcAlign=*/1, ShapeUtil::ByteSizeOf(operand_shape)); } - llvm_ir::EmitTuple(GetIrArrayFor(crs), operand_ptrs, &b_, module_); + llvm_ir::EmitTuple(GetIrArrayFor(crs), operand_ptrs, &b_); return Status::OK(); } @@ -2289,7 +2283,7 @@ Status IrEmitter::HandleCustomCall(HloInstruction* custom_call) { llvm::Value* addr = EmitBufferPointer(slice, elem_shape); base_ptrs.push_back(addr); } - llvm_ir::EmitTuple(GetIrArrayFor(custom_call), base_ptrs, &b_, module_); + llvm_ir::EmitTuple(GetIrArrayFor(custom_call), base_ptrs, &b_); } auto* output_address_arg = PointerCast(GetEmittedValueFor(custom_call), i8_ptr_type); @@ -2980,7 +2974,7 @@ Status IrEmitter::EmitTargetElementLoop( for (int64 i = 0; i < output_arrays.size(); ++i) { tuple_operand_ptrs.push_back(output_arrays[i].GetBasePointer()); } - llvm_ir::EmitTuple(target_array, tuple_operand_ptrs, &b_, module_); + llvm_ir::EmitTuple(target_array, tuple_operand_ptrs, &b_); } else { if (ShouldEmitParallelLoopFor(*target_op)) { diff --git a/tensorflow/compiler/xla/service/cpu/ir_function.cc b/tensorflow/compiler/xla/service/cpu/ir_function.cc index 2a48f6781ba..42acd72f966 100644 --- a/tensorflow/compiler/xla/service/cpu/ir_function.cc +++ b/tensorflow/compiler/xla/service/cpu/ir_function.cc @@ -43,15 +43,14 @@ static std::vector GetComputeFunctionParams( IrFunction::IrFunction(const string& function_name, llvm::Function::LinkageTypes linkage, - const bool optimize_for_size_requested, - const bool enable_fast_math, llvm::Module* llvm_module, - llvm::IRBuilder<>* b, int64 num_dynamic_loop_bounds) + const HloModuleConfig& module_config, + llvm::Module* llvm_module, llvm::IRBuilder<>* b, + int64 num_dynamic_loop_bounds) : b_(b), llvm_module_(llvm_module), caller_insert_point_guard_(*b), num_dynamic_loop_bounds_(num_dynamic_loop_bounds) { - Initialize(function_name, linkage, optimize_for_size_requested, - enable_fast_math); + Initialize(function_name, linkage, module_config); } IrFunction::~IrFunction() { @@ -70,8 +69,7 @@ DynamicLoopBounds IrFunction::GetDynamicLoopBounds() { void IrFunction::Initialize(const string& function_name, llvm::Function::LinkageTypes linkage, - const bool optimize_for_size_requested, - const bool enable_fast_math) { + const HloModuleConfig& module_config) { // The function signature is: // void function(i8* retval, i8* run_options, i8** params, i8** // buffer_table, @@ -142,11 +140,8 @@ void IrFunction::Initialize(const string& function_name, // Functions with local linkage get an inlining bonus. Because we know // a-priori that embedded functions (non-entry functions) will not have its // name resolved, give it local linkage. - function_ = - llvm_ir::CreateFunction(function_type, linkage, - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size_requested, - function_name, llvm_module_); + function_ = llvm_ir::CreateCpuFunction(function_type, linkage, module_config, + function_name, llvm_module_); // Set meaningful names for the function's arguments: useful for debugging. llvm::Function::arg_iterator arg_iter = function_->arg_begin(); diff --git a/tensorflow/compiler/xla/service/cpu/ir_function.h b/tensorflow/compiler/xla/service/cpu/ir_function.h index 623a5f185fa..02bcec9dfc7 100644 --- a/tensorflow/compiler/xla/service/cpu/ir_function.h +++ b/tensorflow/compiler/xla/service/cpu/ir_function.h @@ -22,6 +22,7 @@ limitations under the License. #include "llvm/IR/Module.h" #include "llvm/IR/Value.h" #include "tensorflow/compiler/xla/service/cpu/ir_emission_utils.h" +#include "tensorflow/compiler/xla/service/hlo_module_config.h" #include "tensorflow/compiler/xla/shape_util.h" #include "tensorflow/compiler/xla/statusor.h" #include "tensorflow/compiler/xla/types.h" @@ -52,8 +53,7 @@ namespace cpu { class IrFunction { public: IrFunction(const string& function_name, llvm::Function::LinkageTypes linkage, - const bool optimize_for_size_requested, - const bool enable_fast_math, llvm::Module* llvm_module, + const HloModuleConfig& module_config, llvm::Module* llvm_module, llvm::IRBuilder<>* b, int64 num_dynamic_loop_bounds); ~IrFunction(); @@ -92,7 +92,7 @@ class IrFunction { // Initialize an llvm::Function with standard signature based on arguments. void Initialize(const string& function_name, llvm::Function::LinkageTypes linkage, - bool optimize_for_size_requested, bool enable_fast_math); + const HloModuleConfig& module_config); // Emit ir to read and return the ir value for the dynamic loop bound at // 'offset' from the "dynamic_loop_bounds" argument of this function. diff --git a/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.cc b/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.cc index 9fc472ff767..7668f364bad 100644 --- a/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.cc +++ b/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.cc @@ -991,7 +991,7 @@ void EmitRowMajorGemv(PrimitiveType scalar_type, int64 tile_rows, int64 tile_cols, int64 m, int64 k, llvm::Value* lhs, llvm::Value* rhs, llvm::Value* addend, llvm::Value* result, llvm::IRBuilder<>* b, - bool enable_fast_math, bool optimize_for_size) { + const HloModuleConfig& module_config) { RowMajorMatrixVectorProductEmitter::Config config( /*scalar_type=*/scalar_type, /*tile_rows=*/tile_rows, /*tile_cols=*/tile_cols, @@ -1001,8 +1001,7 @@ void EmitRowMajorGemv(PrimitiveType scalar_type, int64 tile_rows, GetGemvBuffersWithCanonicalType(lhs, rhs, addend, result, b); KernelSupportLibrary::EmitAndCallOutlinedKernel( - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size, b, config.GetCacheKey(), + module_config, b, config.GetCacheKey(), canonical_inputs.lhs_canonicalized, canonical_inputs.rhs_canonicalized, canonical_inputs.addend_canonicalized, canonical_inputs.result_canonicalized, @@ -1019,7 +1018,7 @@ void EmitColumnMajorGemv(PrimitiveType scalar_type, int64 tile_rows, int64 tile_cols, int64 m, int64 k, llvm::Value* lhs, llvm::Value* rhs, llvm::Value* addend, llvm::Value* result, llvm::IRBuilder<>* b, - bool enable_fast_math, bool optimize_for_size) { + const HloModuleConfig& module_config) { ColumnMajorMatrixVectorProductEmitter::Config config( /*scalar_type=*/scalar_type, /*tile_rows=*/tile_rows, /*tile_cols=*/tile_cols, @@ -1029,8 +1028,7 @@ void EmitColumnMajorGemv(PrimitiveType scalar_type, int64 tile_rows, GetGemvBuffersWithCanonicalType(lhs, rhs, addend, result, b); KernelSupportLibrary::EmitAndCallOutlinedKernel( - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size, b, config.GetCacheKey(), + module_config, b, config.GetCacheKey(), canonical_inputs.lhs_canonicalized, canonical_inputs.rhs_canonicalized, canonical_inputs.addend_canonicalized, canonical_inputs.result_canonicalized, @@ -1048,7 +1046,7 @@ void EmitSmallGemm(PrimitiveType scalar_type, int64 m, int64 k, int64 n, int64 min_vectorization_width, int64 tile_size_m, int64 tile_size_k, llvm::Value* lhs, llvm::Value* rhs, llvm::Value* result, llvm::IRBuilder<>* b, - bool enable_fast_math, bool optimize_for_size) { + const HloModuleConfig& module_config) { TiledSmallGemmEmitter::Config config( /*scalar_type=*/scalar_type, TiledSmallGemmEmitter::Dimensions{/*m=*/m, /*k=*/k, /*n=*/n}, @@ -1058,9 +1056,7 @@ void EmitSmallGemm(PrimitiveType scalar_type, int64 m, int64 k, int64 n, /*tile_size_m=*/tile_size_m, /*tile_size_k=*/tile_size_k); KernelSupportLibrary::EmitAndCallOutlinedKernel( - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size, b, config.GetCacheKey(), lhs, - rhs, result, + module_config, b, config.GetCacheKey(), lhs, rhs, result, [&](llvm::Value* lhs, llvm::Value* rhs, llvm::Value* result) { TiledSmallGemmEmitter small_gemm_emitter(config, /*lhs=*/lhs, /*rhs=*/rhs, diff --git a/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.h b/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.h index 0a82326cc37..77581a53cfb 100644 --- a/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.h +++ b/tensorflow/compiler/xla/service/cpu/tiled_dot_emitter.h @@ -17,6 +17,7 @@ limitations under the License. #define TENSORFLOW_COMPILER_XLA_SERVICE_CPU_TILED_DOT_EMITTER_H_ #include "llvm/IR/IRBuilder.h" +#include "tensorflow/compiler/xla/service/hlo_module_config.h" #include "tensorflow/compiler/xla/xla_data.pb.h" #include "tensorflow/core/platform/types.h" @@ -29,15 +30,15 @@ void EmitRowMajorGemv(PrimitiveType scalar_type, tensorflow::int64 tile_rows, tensorflow::int64 tile_cols, tensorflow::int64 m, tensorflow::int64 k, llvm::Value* lhs, llvm::Value* rhs, llvm::Value* addend, llvm::Value* result, - llvm::IRBuilder<>* b, bool enable_fast_math, - bool optimize_for_size); + llvm::IRBuilder<>* b, + const HloModuleConfig& module_config); void EmitColumnMajorGemv(PrimitiveType scalar_type, tensorflow::int64 tile_rows, tensorflow::int64 tile_cols, tensorflow::int64 m, tensorflow::int64 k, llvm::Value* lhs, llvm::Value* rhs, llvm::Value* addend, llvm::Value* result, llvm::IRBuilder<>* b, - bool enable_fast_math, bool optimize_for_size); + const HloModuleConfig& module_config); void EmitSmallGemm(PrimitiveType scalar_type, tensorflow::int64 m, tensorflow::int64 k, tensorflow::int64 n, @@ -46,8 +47,7 @@ void EmitSmallGemm(PrimitiveType scalar_type, tensorflow::int64 m, tensorflow::int64 min_vectorization_width, tensorflow::int64 tile_size_m, tensorflow::int64 tile_size_k, llvm::Value* lhs, llvm::Value* rhs, llvm::Value* result, - llvm::IRBuilder<>* b, bool enable_fast_math, - bool optimize_for_size); + llvm::IRBuilder<>* b, const HloModuleConfig& module_config); } // namespace cpu } // namespace xla diff --git a/tensorflow/compiler/xla/service/elemental_ir_emitter.cc b/tensorflow/compiler/xla/service/elemental_ir_emitter.cc index 4b7c6c17288..53513fa5226 100644 --- a/tensorflow/compiler/xla/service/elemental_ir_emitter.cc +++ b/tensorflow/compiler/xla/service/elemental_ir_emitter.cc @@ -2407,8 +2407,9 @@ llvm_ir::ElementGenerator ElementalIrEmitter::MakeElementGenerator( case HloOpcode::kCopy: return [hlo, &operand_to_generator]( const IrArray::Index& target_index) -> StatusOr { - IrArray::Index source_index = target_index; - source_index.ClearLinearIndex(); + IrArray::Index source_index(target_index.multidim(), + hlo->operand(0)->shape(), + target_index.GetType()); TF_ASSIGN_OR_RETURN( llvm::Value * operand_value, operand_to_generator.at(hlo->operand(0))(source_index)); diff --git a/tensorflow/compiler/xla/service/gpu/hlo_to_ir_bindings.cc b/tensorflow/compiler/xla/service/gpu/hlo_to_ir_bindings.cc index 59098d0df1a..3c50c2b1d8e 100644 --- a/tensorflow/compiler/xla/service/gpu/hlo_to_ir_bindings.cc +++ b/tensorflow/compiler/xla/service/gpu/hlo_to_ir_bindings.cc @@ -135,11 +135,11 @@ llvm::Value* HloToIrBindings::EmitGetTupleElement(const HloInstruction* gte, if (gte->operand(0)->opcode() != HloOpcode::kGetTupleElement) { return llvm_ir::EmitGetTupleElement( gte->shape(), gte->tuple_index(), /*alignment=*/1, - GetTypedIrValue(*gte->operand(0), {}, base_ptr), b_, module_); + GetTypedIrValue(*gte->operand(0), {}, base_ptr), b_); } return llvm_ir::EmitGetTupleElement( gte->shape(), gte->tuple_index(), /*alignment=*/1, - EmitGetTupleElement(gte->operand(0), base_ptr), b_, module_); + EmitGetTupleElement(gte->operand(0), base_ptr), b_); } // Returns true if `value` has a name that should not be changed. diff --git a/tensorflow/compiler/xla/service/gpu/ir_emitter.cc b/tensorflow/compiler/xla/service/gpu/ir_emitter.cc index f2474bfc0f6..f04e8241e57 100644 --- a/tensorflow/compiler/xla/service/gpu/ir_emitter.cc +++ b/tensorflow/compiler/xla/service/gpu/ir_emitter.cc @@ -115,7 +115,7 @@ Status IrEmitter::HandleGetTupleElement(HloInstruction* get_tuple_element) { get_tuple_element->shape(), get_tuple_element->tuple_index(), // TODO(b/26344050): tighten the alignment here // based on the real element type. - /*alignment=*/1, GetBasePointer(*operand), &b_, module_)); + /*alignment=*/1, GetBasePointer(*operand), &b_)); return Status::OK(); } @@ -144,7 +144,7 @@ Status IrEmitter::HandleTuple(HloInstruction* tuple) { for (const HloInstruction* operand : tuple->operands()) { base_ptrs.push_back(GetBasePointer(*operand)); } - llvm_ir::EmitTuple(GetIrArray(*tuple, *tuple), base_ptrs, &b_, module_); + llvm_ir::EmitTuple(GetIrArray(*tuple, *tuple), base_ptrs, &b_); return Status::OK(); } @@ -434,7 +434,7 @@ Status IrEmitter::HandleTupleSelect(HloInstruction* tuple_select) { llvm_ir::EmitTupleSelect(GetIrArray(*tuple_select, *tuple_select), GetIrArray(*pred, *tuple_select), GetBasePointer(*on_true), GetBasePointer(*on_false), - &b_, module_); + &b_); return Status::OK(); } diff --git a/tensorflow/compiler/xla/service/gpu/ir_emitter_nested.cc b/tensorflow/compiler/xla/service/gpu/ir_emitter_nested.cc index 2a214bc202d..8c02416eef4 100644 --- a/tensorflow/compiler/xla/service/gpu/ir_emitter_nested.cc +++ b/tensorflow/compiler/xla/service/gpu/ir_emitter_nested.cc @@ -123,7 +123,7 @@ Status IrEmitterNested::EmitTargetElementLoop( ConstructIrArrayForOutputs(hlo); TF_RETURN_IF_ERROR( llvm_ir::LoopEmitter(element_generator, target_arrays, &b_).EmitLoop()); - llvm_ir::EmitTuple(GetIrArray(hlo, hlo), target_arrays, &b_, module_); + llvm_ir::EmitTuple(GetIrArray(hlo, hlo), target_arrays, &b_); return Status::OK(); } return llvm_ir::LoopEmitter(element_generator, GetIrArray(hlo, hlo), &b_) diff --git a/tensorflow/compiler/xla/service/gpu/ir_emitter_unnested.cc b/tensorflow/compiler/xla/service/gpu/ir_emitter_unnested.cc index 8222082d0a7..07038607bdc 100644 --- a/tensorflow/compiler/xla/service/gpu/ir_emitter_unnested.cc +++ b/tensorflow/compiler/xla/service/gpu/ir_emitter_unnested.cc @@ -2201,7 +2201,7 @@ Status IrEmitterUnnested::EmitTargetElementLoopInThunk( // kernel *anyway*. std::vector output_arrays = ConstructIrArrayForOutputs(hlo); KernelSupportLibrary{&b_}.If("emit_mof_tuple", IsBlock0Thread0(&b_), [&] { - llvm_ir::EmitTuple(GetIrArray(hlo, hlo), output_arrays, &b_, module_); + llvm_ir::EmitTuple(GetIrArray(hlo, hlo), output_arrays, &b_); }); // For multioutput fusion, we need to emit each operand and the root. @@ -2916,13 +2916,6 @@ void IrEmitterUnnested::EmitTileElementForReduction( reduction_info->GetKernelMappingScheme()->GetUnnormalizedIndex( index, GetFirstReduceInstruction(output_instructions)->operand(0)->shape()); - int num_partial_results = reduction_info->GetNumberOfPartialResults(); - if (num_partial_results > 1) { - // Clear the linear index field of the IrArray::Index to enable the use of - // GetElementPointer with array types. This enables the vectorization of - // the computation for different partial results. - input_index.ClearLinearIndex(); - } absl::Span partial_reduction_result_addresses = reduction_info->GetPartialResultAddresses(); absl::Span reduction_input_addresses = @@ -3103,8 +3096,7 @@ LaunchDimensions IrEmitterUnnested::EmitKernel( if (!reduction_info && unnested_hlo->IsMultiOutputFusion()) { KernelSupportLibrary{&b_}.If("emit_mof_tuple", IsBlock0Thread0(&b_), [&] { llvm_ir::EmitTuple(GetIrArray(*unnested_hlo, *unnested_hlo), - ConstructIrArrayForOutputs(*unnested_hlo), &b_, - module_); + ConstructIrArrayForOutputs(*unnested_hlo), &b_); }); } diff --git a/tensorflow/compiler/xla/service/hlo_module_group_util.cc b/tensorflow/compiler/xla/service/hlo_module_group_util.cc index 91417bd2d9a..b2a361f504c 100644 --- a/tensorflow/compiler/xla/service/hlo_module_group_util.cc +++ b/tensorflow/compiler/xla/service/hlo_module_group_util.cc @@ -207,6 +207,39 @@ std::vector HloModuleGroupUtil::RootInstructions( return roots; } +string HloModuleGroupUtil::CycleToString(HloInstruction* init_instruction) { + std::vector names; + absl::flat_hash_set seen; + + std::function helper = + [&](HloInstruction* instruction) { + if (seen.find(instruction) != seen.end()) { + if (instruction == init_instruction) { + names.push_back(instruction->name()); + return true; + } + return false; + } + seen.insert(instruction); + for (HloInstruction* predecessor : GlobalPredecessors(instruction)) { + bool init_found = helper(predecessor); + if (init_found) { + names.push_back(instruction->name()); + return true; + } + } + return false; + }; + + helper(init_instruction); + std::vector pieces; + pieces.reserve(names.size()); + for (auto name : names) { + pieces.push_back(name); + } + return absl::StrJoin(pieces, " --> "); +} + Status HloModuleGroupUtil::VisitTopologicalOrder( VisitStates* visit_state, const VisitFunction& visit_function, HloInstruction* root) { @@ -269,22 +302,9 @@ Status HloModuleGroupUtil::VisitTopologicalOrder( // a cycle. Generate an error with the list of instructions in the // cycle. if ((*visit_state)[predecessor] == VisitState::kVisiting) { - string cyclic_instructions; - for (const auto& state : *visit_state) { - if (state.second == VisitState::kVisiting) { - absl::StrAppend(&cyclic_instructions, state.first->ToString(), - "\n"); - } - } - // TODO(b/64305524): Improve the error message to print out the - // instructions in a deterministic order that forms the cycle. return FailedPrecondition( - "Cross-computation cycle detected via communicating nodes. The " - "cycle contains the node %s. The cycle is found among the " - "following nodes. Note that the order of the nodes is arbitrary " - "and that the list may include nodes that are not part of the " - "cycle.\n%s", - predecessor->ToString(), cyclic_instructions); + "Cross-computation cycle detected via communicating nodes.\n%s", + CycleToString(predecessor)); } stack.push(predecessor); } diff --git a/tensorflow/compiler/xla/service/hlo_module_group_util.h b/tensorflow/compiler/xla/service/hlo_module_group_util.h index 862666b48c9..d388fe51d0d 100644 --- a/tensorflow/compiler/xla/service/hlo_module_group_util.h +++ b/tensorflow/compiler/xla/service/hlo_module_group_util.h @@ -108,6 +108,8 @@ class HloModuleGroupUtil { HloInstruction* instruction, HloReachabilityMap* reachability_map); private: + string CycleToString(HloInstruction* instruction); + const HloModuleGroupMetadata& metadata_; }; diff --git a/tensorflow/compiler/xla/service/llvm_ir/BUILD b/tensorflow/compiler/xla/service/llvm_ir/BUILD index 2b81dc81b63..e51a394827d 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/BUILD +++ b/tensorflow/compiler/xla/service/llvm_ir/BUILD @@ -71,6 +71,7 @@ cc_library( "//tensorflow/compiler/xla/service:hlo", "//tensorflow/compiler/xla/service:hlo_module_config", "//tensorflow/compiler/xla/service:name_uniquer", + "//tensorflow/compiler/xla/service/cpu:cpu_options", "//tensorflow/core:lib", "@com_google_absl//absl/base", "@com_google_absl//absl/strings", @@ -239,7 +240,7 @@ cc_library( hdrs = ["kernel_support_library.h"], deps = [ ":llvm_loop", - "//tensorflow/compiler/xla/service/llvm_ir:llvm_util", + ":llvm_util", "@com_google_absl//absl/strings", "@llvm//:core", ], diff --git a/tensorflow/compiler/xla/service/llvm_ir/fused_ir_emitter.cc b/tensorflow/compiler/xla/service/llvm_ir/fused_ir_emitter.cc index 3a52196fa47..cf9df95ad57 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/fused_ir_emitter.cc +++ b/tensorflow/compiler/xla/service/llvm_ir/fused_ir_emitter.cc @@ -121,9 +121,9 @@ Status FusedIrEmitter::HandleGetTupleElement( } // Lookup tuple element pointer. - return llvm_ir::EmitGetTupleElement( - get_tuple_element->shape(), get_tuple_element->tuple_index(), - /*alignment=*/1, tuple_ptr, b_, module_); + return llvm_ir::EmitGetTupleElement(get_tuple_element->shape(), + get_tuple_element->tuple_index(), + /*alignment=*/1, tuple_ptr, b_); }; if (!get_tuple_element->shape().IsTuple()) { diff --git a/tensorflow/compiler/xla/service/llvm_ir/ir_array.cc b/tensorflow/compiler/xla/service/llvm_ir/ir_array.cc index 84e3d6bd211..7bf8bde9ded 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/ir_array.cc +++ b/tensorflow/compiler/xla/service/llvm_ir/ir_array.cc @@ -331,7 +331,8 @@ llvm::Value* IrArray::Index::Linearize(absl::Span dimensions, llvm::Value* IrArray::EmitArrayElementAddress(const IrArray::Index& index, llvm::IRBuilder<>* b, - absl::string_view name) const { + absl::string_view name, + bool use_linear_index) const { if (ShapeUtil::IsScalar(shape_)) { // Special handling of scalars: a scalar pretends to have the same value for // every index, thus effectively implementing broadcasting of its value @@ -340,7 +341,7 @@ llvm::Value* IrArray::EmitArrayElementAddress(const IrArray::Index& index, } CHECK_EQ(index.size(), shape_.rank()); - if (index.LinearValidOnShape(shape_)) { + if (use_linear_index && index.LinearValidOnShape(shape_)) { llvm::Module* module = b->GetInsertBlock()->getParent()->getParent(); return b->CreateInBoundsGEP( b->CreateBitCast(base_ptr_, @@ -389,16 +390,20 @@ void IrArray::AnnotateLoadStoreInstructionWithMetadata( llvm::Value* IrArray::EmitReadArrayElement(const Index& index, llvm::IRBuilder<>* b, - absl::string_view name) const { - llvm::Value* element_address = EmitArrayElementAddress(index, b, name); + absl::string_view name, + bool use_linear_index) const { + llvm::Value* element_address = + EmitArrayElementAddress(index, b, name, use_linear_index); llvm::LoadInst* load = b->CreateLoad(element_address); AnnotateLoadStoreInstructionWithMetadata(load); return load; } void IrArray::EmitWriteArrayElement(const Index& index, llvm::Value* value, - llvm::IRBuilder<>* b) const { - llvm::Value* element_address = EmitArrayElementAddress(index, b); + llvm::IRBuilder<>* b, + bool use_linear_index) const { + llvm::Value* element_address = + EmitArrayElementAddress(index, b, "", use_linear_index); llvm::StoreInst* store = b->CreateStore(value, element_address); AnnotateLoadStoreInstructionWithMetadata(store); } diff --git a/tensorflow/compiler/xla/service/llvm_ir/ir_array.h b/tensorflow/compiler/xla/service/llvm_ir/ir_array.h index 2fa1f14cdcf..d0a8b6356d6 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/ir_array.h +++ b/tensorflow/compiler/xla/service/llvm_ir/ir_array.h @@ -168,8 +168,6 @@ class IrArray { return llvm::ConstantInt::get(index_type_, c); } - void ClearLinearIndex() { linear_ = nullptr; } - private: // Constructs an index from both a multi-dimensional index and a linear // index. 'shape' is the shape on which the index is used. 'index_type' is @@ -227,7 +225,8 @@ class IrArray { // The optional name is useful for debugging when looking at // the emitted LLVM IR. llvm::Value* EmitArrayElementAddress(const Index& index, llvm::IRBuilder<>* b, - absl::string_view name = "") const; + absl::string_view name = "", + bool use_linear_index = true) const; // Attach metadata this IrArray instance knows about to "instruction". void AnnotateLoadStoreInstructionWithMetadata( @@ -240,15 +239,23 @@ class IrArray { // // The optional name is useful for debugging when looking at // the emitted LLVM IR. + // 'use_linear_index' can be used to specify whether the linear index (if + // available) or the multi-dimensional index should be used. llvm::Value* EmitReadArrayElement(const Index& index, llvm::IRBuilder<>* b, - absl::string_view name = "") const; + absl::string_view name = "", + bool use_linear_index = true) const; // Emit IR to write the given value to the array element at the given index. + // 'use_linear_index' can be used to specify whether the linear index (if + // available) or the multi-dimensional index should be used. void EmitWriteArrayElement(const Index& index, llvm::Value* value, - llvm::IRBuilder<>* b) const; + llvm::IRBuilder<>* b, + bool use_linear_index = true) const; // Returns a new IrArray whose shape is "new_shape" and base pointer is a // bitcast of the base pointer of "this" IrArray. + // 'use_linear_index' can be used to specify whether the linear index (if + // available) or the multi-dimensional index should be used. IrArray CastToShape(const Shape& new_shape, llvm::IRBuilder<>* b) const; void AddAliasScopeMetadata(llvm::MDNode* alias_scope) { diff --git a/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.cc b/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.cc index 5eeb29c478a..e1dc7e74765 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.cc +++ b/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.cc @@ -70,7 +70,7 @@ Status KernelSupportLibrary::IfWithStatus( } void KernelSupportLibrary::EmitAndCallOutlinedKernel( - bool enable_fast_math, bool optimize_for_size, llvm::IRBuilder<>* b, + const HloModuleConfig& module_config, llvm::IRBuilder<>* b, absl::string_view kernel_name, KernelSupportLibrary::ArgumentVector arguments, const std::function& @@ -101,10 +101,9 @@ void KernelSupportLibrary::EmitAndCallOutlinedKernel( auto* function_type = llvm::FunctionType::get(b->getVoidTy(), arg_types, /*isVarArg=*/false); - function = llvm_ir::CreateFunction( - function_type, llvm::GlobalValue::InternalLinkage, - /*enable_fast_math=*/enable_fast_math, - /*optimize_for_size=*/optimize_for_size, kernel_name, module); + function = llvm_ir::CreateCpuFunction(function_type, + llvm::GlobalValue::InternalLinkage, + module_config, kernel_name, module); llvm::IRBuilder<>::InsertPointGuard guard(*b); diff --git a/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.h b/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.h index 612b839cfa1..b66ce6b835e 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.h +++ b/tensorflow/compiler/xla/service/llvm_ir/kernel_support_library.h @@ -263,33 +263,33 @@ class KernelSupportLibrary { // in a nullptr llvm::Value* in its position to `kernel_body_generator`. // Currently we only support at most one nullptr value in `arguments`. static void EmitAndCallOutlinedKernel( - bool enable_fast_math, bool optimize_for_size, llvm::IRBuilder<>* b, + const HloModuleConfig& module_config, llvm::IRBuilder<>* b, absl::string_view kernel_name, ArgumentVector arguments, const std::function& kernel_body_generator); // Thin wrappers around the more general EmitAndCallOutlinedKernel above. static void EmitAndCallOutlinedKernel( - bool enable_fast_math, bool optimize_for_size, llvm::IRBuilder<>* b, + const HloModuleConfig& module_config, llvm::IRBuilder<>* b, absl::string_view kernel_name, llvm::Value* arg0, llvm::Value* arg1, llvm::Value* arg2, const std::function& kernel_body_generator) { - EmitAndCallOutlinedKernel( - enable_fast_math, optimize_for_size, b, kernel_name, {arg0, arg1, arg2}, - [&](ArgumentVector args) { - kernel_body_generator(args[0], args[1], args[2]); - }); + EmitAndCallOutlinedKernel(module_config, b, kernel_name, {arg0, arg1, arg2}, + [&](ArgumentVector args) { + kernel_body_generator(args[0], args[1], + args[2]); + }); } static void EmitAndCallOutlinedKernel( - bool enable_fast_math, bool optimize_for_size, llvm::IRBuilder<>* b, + const HloModuleConfig& module_config, llvm::IRBuilder<>* b, absl::string_view kernel_name, llvm::Value* arg0, llvm::Value* arg1, llvm::Value* arg2, llvm::Value* arg3, const std::function& kernel_body_generator) { EmitAndCallOutlinedKernel( - enable_fast_math, optimize_for_size, b, kernel_name, - {arg0, arg1, arg2, arg3}, [&](ArgumentVector args) { + module_config, b, kernel_name, {arg0, arg1, arg2, arg3}, + [&](ArgumentVector args) { kernel_body_generator(args[0], args[1], args[2], args[3]); }); } diff --git a/tensorflow/compiler/xla/service/llvm_ir/llvm_util.cc b/tensorflow/compiler/xla/service/llvm_ir/llvm_util.cc index 5acdc2db109..66219c15667 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/llvm_util.cc +++ b/tensorflow/compiler/xla/service/llvm_ir/llvm_util.cc @@ -31,6 +31,7 @@ limitations under the License. #include "llvm/Transforms/Utils/Cloning.h" #include "tensorflow/compiler/xla/layout_util.h" #include "tensorflow/compiler/xla/literal.h" +#include "tensorflow/compiler/xla/service/cpu/cpu_options.h" #include "tensorflow/compiler/xla/service/dump.h" #include "tensorflow/compiler/xla/service/name_uniquer.h" #include "tensorflow/compiler/xla/shape_util.h" @@ -499,24 +500,25 @@ int64 ByteSizeOf(const Shape& shape, const llvm::DataLayout& data_layout) { return ShapeUtil::ByteSizeOf(shape, pointer_size); } -llvm::FastMathFlags GetFastMathFlags(bool fast_math_enabled) { +llvm::FastMathFlags GetCpuFastMathFlags(const HloModuleConfig& module_config) { llvm::FastMathFlags flags; - if (fast_math_enabled) { - // Fast implies AllowReassoc, NoInfs, NoNaNs, NoSignedZeros, - // AllowReciprocal, AllowContract, and ApproxFunc. - flags.setFast(); + if (!module_config.debug_options().xla_cpu_enable_fast_math()) { + return flags; } - return flags; -} -void SetTargetOptions(bool fast_math_enabled, - llvm::TargetOptions* target_options) { - // In LLVM backend flags, UnsafeFPMath does not explicitly imply - // NoInfs, etc. - target_options->UnsafeFPMath = fast_math_enabled; - target_options->NoInfsFPMath = fast_math_enabled; - target_options->NoNaNsFPMath = fast_math_enabled; - target_options->NoSignedZerosFPMath = fast_math_enabled; + // Fast implies AllowReassoc, NoInfs, NoNaNs, NoSignedZeros, AllowReciprocal, + // AllowContract, and ApproxFunc. + flags.setFast(); + + if (module_config.debug_options().xla_cpu_fast_math_honor_nans()) { + flags.setNoNaNs(false); + } + + if (module_config.debug_options().xla_cpu_fast_math_honor_infs()) { + flags.setNoInfs(false); + } + + return flags; } std::map MergeMetadata( @@ -603,10 +605,11 @@ void DumpIrIfEnabled(const HloModule& hlo_module, } } -llvm::Function* CreateFunction(llvm::FunctionType* function_type, - llvm::GlobalValue::LinkageTypes linkage, - bool enable_fast_math, bool optimize_for_size, - absl::string_view name, llvm::Module* module) { +llvm::Function* CreateCpuFunction(llvm::FunctionType* function_type, + llvm::GlobalValue::LinkageTypes linkage, + const HloModuleConfig& module_config, + absl::string_view name, + llvm::Module* module) { llvm::Function* function = llvm::Function::Create(function_type, linkage, AsStringRef(name), module); function->setCallingConv(llvm::CallingConv::C); @@ -616,17 +619,23 @@ llvm::Function* CreateFunction(llvm::FunctionType* function_type, // created by the JIT compiled code. function->setHasUWTable(); - if (enable_fast_math) { + if (module_config.debug_options().xla_cpu_enable_fast_math()) { function->addFnAttr("unsafe-fp-math", "true"); - function->addFnAttr("no-infs-fp-math", "true"); - function->addFnAttr("no-nans-fp-math", "true"); function->addFnAttr("no-signed-zeros-fp-math", "true"); + + if (!module_config.debug_options().xla_cpu_fast_math_honor_nans()) { + function->addFnAttr("no-nans-fp-math", "true"); + } + + if (!module_config.debug_options().xla_cpu_fast_math_honor_infs()) { + function->addFnAttr("no-infs-fp-math", "true"); + } } // Add the optize attribute to the function if optimizing for size. This // controls internal behavior of some optimization passes (e.g. loop // unrolling). - if (optimize_for_size) { + if (cpu::options::OptimizeForSizeRequested(module_config)) { function->addFnAttr(llvm::Attribute::OptimizeForSize); } diff --git a/tensorflow/compiler/xla/service/llvm_ir/llvm_util.h b/tensorflow/compiler/xla/service/llvm_ir/llvm_util.h index a960f3bb19a..7b7d86364e2 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/llvm_util.h +++ b/tensorflow/compiler/xla/service/llvm_ir/llvm_util.h @@ -263,12 +263,7 @@ int64 ByteSizeOf(const Shape& shape, const llvm::DataLayout& data_layout); // Gets an llvm::FastMathFlags that reflects the settings in the given // module config. -llvm::FastMathFlags GetFastMathFlags(bool fast_math_enabled); - -// Sets values in the given TargetOptions struct according to the given -// compilation options. -void SetTargetOptions(bool fast_math_enabled, - llvm::TargetOptions* target_options); +llvm::FastMathFlags GetCpuFastMathFlags(const HloModuleConfig& module_config); // Computes a conservative union of the metadata in "a" and "b". For // aliasing-related metadata, this means the result can be applied to @@ -287,10 +282,10 @@ std::map MergeMetadata( void DumpIrIfEnabled(const HloModule& hlo_module, const llvm::Module& llvm_module, bool optimized); -llvm::Function* CreateFunction(llvm::FunctionType* function_type, - llvm::GlobalValue::LinkageTypes linkage, - bool enable_fast_math, bool optimize_for_size, - absl::string_view name, llvm::Module* module); +llvm::Function* CreateCpuFunction(llvm::FunctionType* function_type, + llvm::GlobalValue::LinkageTypes linkage, + const HloModuleConfig& module_config, + absl::string_view name, llvm::Module* module); // Extracts the xla_backend_extra_options from `config` and passes those that // don't start with xla_ to LLVM. diff --git a/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.cc b/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.cc index d8d2700e193..3a4814b1857 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.cc +++ b/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.cc @@ -29,9 +29,14 @@ limitations under the License. namespace xla { namespace llvm_ir { +static llvm::Module* getModuleFromBuilder(llvm::IRBuilder<>* b) { + return b->GetInsertBlock()->getModule(); +} + void EmitTupleSelect(const IrArray& select, const IrArray& pred, llvm::Value* on_true, llvm::Value* on_false, - llvm::IRBuilder<>* b, llvm::Module* module) { + llvm::IRBuilder<>* b) { + llvm::Module* module = getModuleFromBuilder(b); CHECK(ShapeUtil::IsScalar(pred.GetShape())); llvm::LoadInst* pred_value = @@ -65,7 +70,8 @@ void EmitTupleSelect(const IrArray& select, const IrArray& pred, } void EmitTuple(const IrArray& tuple, absl::Span operands, - llvm::IRBuilder<>* b, llvm::Module* module) { + llvm::IRBuilder<>* b) { + llvm::Module* module = getModuleFromBuilder(b); for (size_t i = 0; i < operands.size(); ++i) { auto* store = b->CreateStore( b->CreatePointerCast(operands[i], PrimitiveTypeToIrType(TUPLE, module)), @@ -76,18 +82,19 @@ void EmitTuple(const IrArray& tuple, absl::Span operands, } void EmitTuple(const IrArray& tuple, absl::Span buffers, - llvm::IRBuilder<>* b, llvm::Module* module) { + llvm::IRBuilder<>* b) { std::vector buffer_ptrs; buffer_ptrs.reserve(buffers.size()); absl::c_transform( buffers, std::back_inserter(buffer_ptrs), [](const llvm_ir::IrArray& buffer) { return buffer.GetBasePointer(); }); - llvm_ir::EmitTuple(tuple, buffer_ptrs, b, module); + llvm_ir::EmitTuple(tuple, buffer_ptrs, b); } llvm::Value* EmitGetTupleElement(const Shape& target_shape, int64 index, int alignment, llvm::Value* operand, - llvm::IRBuilder<>* b, llvm::Module* module) { + llvm::IRBuilder<>* b) { + llvm::Module* module = getModuleFromBuilder(b); llvm::Value* element_ptr = b->CreateInBoundsGEP(operand, {b->getInt64(0), b->getInt64(index)}); llvm::LoadInst* src_buffer = b->CreateLoad(element_ptr); diff --git a/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.h b/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.h index 94340b91d8e..67d6323aba2 100644 --- a/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.h +++ b/tensorflow/compiler/xla/service/llvm_ir/tuple_ops.h @@ -61,17 +61,17 @@ namespace llvm_ir { // output[i] = pred ? tuple_on_true[i] : tuple_on_false[i] void EmitTupleSelect(const IrArray& select, const IrArray& pred, llvm::Value* on_true, llvm::Value* on_false, - llvm::IRBuilder<>* b, llvm::Module* module); + llvm::IRBuilder<>* b); // A tuple is an array of pointers, one for each operand. Each pointer points to // the output buffer of its corresponding operand. void EmitTuple(const IrArray& tuple, absl::Span operands, - llvm::IRBuilder<>* b, llvm::Module* module); + llvm::IRBuilder<>* b); // Similar to EmitTuple above, except that the output buffers are provided in // the form of IrArray. void EmitTuple(const IrArray& tuple, absl::Span buffers, - llvm::IRBuilder<>* b, llvm::Module* module); + llvm::IRBuilder<>* b); // A tuple is an array of pointers, one for each operand. Each pointer points to // the output buffer of its corresponding operand. A GetTupleElement instruction @@ -79,7 +79,7 @@ void EmitTuple(const IrArray& tuple, absl::Span buffers, // Returns an llvm value representing a pointer to the tuple element buffer. llvm::Value* EmitGetTupleElement(const Shape& target_shape, int64 index, int alignment, llvm::Value* operand, - llvm::IRBuilder<>* b, llvm::Module* module); + llvm::IRBuilder<>* b); } // namespace llvm_ir } // namespace xla diff --git a/tensorflow/compiler/xla/xla.proto b/tensorflow/compiler/xla/xla.proto index 6d71ae866c3..6155f3698eb 100644 --- a/tensorflow/compiler/xla/xla.proto +++ b/tensorflow/compiler/xla/xla.proto @@ -156,10 +156,21 @@ message DebugOptions { // // - Reducing the precision of operations (e.g. using an approximate sin // function, or transforming x/y into x * (1/y)). - // - Assuming that operations never produce or consume NaN or +/- Inf. + // - Assuming that operations never produce or consume NaN or +/- Inf (this + // behavior can be adjusted using xla_cpu_fast_math_allow_{nans|infs}). // - Assuming that +0 and -0 are indistinguishable. bool xla_cpu_enable_fast_math = 99; + // When xla_cpu_enable_fast_math is true then this controls whether we allow + // operations to produce NaNs. Ignored when xla_cpu_enable_fast_math is + // false. + bool xla_cpu_fast_math_honor_nans = 120; + + // When xla_cpu_enable_fast_math is true then this controls whether we allow + // operations to produce infinites. Ignored when xla_cpu_enable_fast_math is + // false. + bool xla_cpu_fast_math_honor_infs = 121; + // When true we lower the Minimum and Maximum hlos in the GPU backend such // that Min(NotNaN, NaN) = Min(NaN, NotNaN) = NotNaN. In other words, if flag // this is true we don't propagate NaNs through Min and Max. @@ -250,7 +261,7 @@ message DebugOptions { // END flags controlling dumping HLO modules. // - // Next id: 119 + // Next id: 121 // Extra options to pass to the compilation backend (e.g. LLVM); specific // interpretation of these values is left to the backend. diff --git a/tensorflow/contrib/boosted_trees/python/training/functions/gbdt_batch_test.py b/tensorflow/contrib/boosted_trees/python/training/functions/gbdt_batch_test.py index 1d7b7e36574..61441b22e90 100644 --- a/tensorflow/contrib/boosted_trees/python/training/functions/gbdt_batch_test.py +++ b/tensorflow/contrib/boosted_trees/python/training/functions/gbdt_batch_test.py @@ -1149,9 +1149,9 @@ class GbdtTest(test_util.TensorFlowTestCase): expected_leaf_1 = [-3.4480, -3.4429, 13.8490, -3.45, -3.4508] expected_leaf_2 = [-1.2547, -1.3145, 1.52, 2.3875, -1.3264] self.assertArrayNear(expected_leaf_1, - output.trees[0].nodes[1].leaf.vector.value, 2e-3) + output.trees[0].nodes[1].leaf.vector.value, 3e-3) self.assertArrayNear(expected_leaf_2, - output.trees[0].nodes[2].leaf.vector.value, 2e-3) + output.trees[0].nodes[2].leaf.vector.value, 3e-3) def testTrainFnMulticlassDiagonalHessian(self): """Tests the GBDT train for multiclass diagonal hessian.""" diff --git a/tensorflow/contrib/compiler/BUILD b/tensorflow/contrib/compiler/BUILD index 79c61589112..839682afdc6 100644 --- a/tensorflow/contrib/compiler/BUILD +++ b/tensorflow/contrib/compiler/BUILD @@ -64,9 +64,9 @@ py_library( "//tensorflow/python:control_flow_ops", "//tensorflow/python:framework_ops", "//tensorflow/python:platform", - "//tensorflow/python:summary_op_util", "//tensorflow/python:util", "//tensorflow/python:variable_scope", + "//tensorflow/python/distribute:summary_op_util", "//tensorflow/python/estimator:estimator_py", ], ) diff --git a/tensorflow/contrib/compiler/xla.py b/tensorflow/contrib/compiler/xla.py index 238c6ab1366..2ccb27da12f 100644 --- a/tensorflow/contrib/compiler/xla.py +++ b/tensorflow/contrib/compiler/xla.py @@ -25,11 +25,11 @@ from six.moves import xrange # pylint: disable=redefined-builtin from tensorflow.compiler.jit.ops import xla_ops from tensorflow.compiler.jit.ops import xla_ops_grad # pylint: disable=unused-import from tensorflow.core.framework import attr_value_pb2 +from tensorflow.python.distribute import summary_op_util from tensorflow.python.estimator import model_fn as model_fn_lib from tensorflow.python.framework import ops from tensorflow.python.ops import array_ops from tensorflow.python.ops import control_flow_ops -from tensorflow.python.ops import summary_op_util from tensorflow.python.ops import variable_scope from tensorflow.python.platform import tf_logging as logging from tensorflow.python.util import compat diff --git a/tensorflow/contrib/distribute/python/collective_all_reduce_strategy_test.py b/tensorflow/contrib/distribute/python/collective_all_reduce_strategy_test.py index 4d57b095356..2dab18791ca 100644 --- a/tensorflow/contrib/distribute/python/collective_all_reduce_strategy_test.py +++ b/tensorflow/contrib/distribute/python/collective_all_reduce_strategy_test.py @@ -266,7 +266,7 @@ class CollectiveAllReduceStrategyTestBase( target=master_target) as sess: with d.scope(): train_op = d.extended.call_for_each_replica(model_fn) - train_op = d.group(d.unwrap(train_op)) + train_op = d.group(d.experimental_local_results(train_op)) sess.run(variables.global_variables_initializer()) sess.run(train_op) @@ -294,7 +294,7 @@ class CollectiveAllReduceStrategyTestBase( x = distribution.extended.call_for_each_replica(model_fn) reduced_x = distribution.reduce(reduce_util.ReduceOp.MEAN, x) - x = distribution.unwrap(x)[0] + x = distribution.experimental_local_results(x)[0] sess.run(variables.global_variables_initializer()) diff --git a/tensorflow/contrib/distribute/python/keras_backward_compat_test.py b/tensorflow/contrib/distribute/python/keras_backward_compat_test.py index 9034f1675ad..2788f342c74 100644 --- a/tensorflow/contrib/distribute/python/keras_backward_compat_test.py +++ b/tensorflow/contrib/distribute/python/keras_backward_compat_test.py @@ -749,7 +749,7 @@ class TestDistributionStrategyWithDatasets(test.TestCase, model.fit(dataset, epochs=1, steps_per_epoch=2, verbose=0, callbacks=[keras.callbacks.LearningRateScheduler(schedule)]) - grouped_models = distribution.unwrap( + grouped_models = distribution.experimental_local_results( distributed_training_utils.get_distributed_model( model, ModeKeys.TRAIN)) with distribution.scope(): diff --git a/tensorflow/contrib/distribute/python/minimize_loss_test.py b/tensorflow/contrib/distribute/python/minimize_loss_test.py index 5d1f214e22e..16541c7a1e3 100644 --- a/tensorflow/contrib/distribute/python/minimize_loss_test.py +++ b/tensorflow/contrib/distribute/python/minimize_loss_test.py @@ -220,7 +220,7 @@ class MinimizeLossStepTest(test.TestCase, parameterized.TestCase): def step_fn(ctx, inputs): del ctx # Unused - fetches = distribution.unwrap( + fetches = distribution.experimental_local_results( distribution.extended.call_for_each_replica( model_fn, args=(inputs,))) if update_ops_in_cross_replica_mode: @@ -419,8 +419,9 @@ class MinimizeLossStepTest(test.TestCase, parameterized.TestCase): # values that are of the same structure as non reduced losses. In # MirroredStrategy, this will be a list of losses, in TPUStrategy # it will be single tensor. Using `call_for_each_replica` followed - # by `unwrap` gives us the desired initial value structure. - not_reduced = distribution.unwrap( + # by `experimental_local_results` gives us the desired initial + # value structure. + not_reduced = distribution.experimental_local_results( distribution.extended.call_for_each_replica(initial_loss)) initial_loop_values = { "replica_loss_reduced": initial_loss(), @@ -469,11 +470,11 @@ class MinimizeLossStepTest(test.TestCase, parameterized.TestCase): def _verify_loss_output(self, initial_loss, loss_output, reduced, distribution): if not reduced: - self.assertLen(distribution.unwrap(loss_output), + self.assertLen(distribution.experimental_local_results(loss_output), distribution.num_replicas_in_sync) loss_tensor = distribution.reduce(reduce_util.ReduceOp.MEAN, loss_output) else: - unwrapped_output = distribution.unwrap(loss_output) + unwrapped_output = distribution.experimental_local_results(loss_output) self.assertLen(unwrapped_output, 1) loss_tensor = unwrapped_output[0] self.assertEqual(initial_loss.dtype, loss_tensor.dtype) diff --git a/tensorflow/contrib/distribute/python/mirrored_strategy_multigpu_test.py b/tensorflow/contrib/distribute/python/mirrored_strategy_multigpu_test.py index 98ca9dc0cc7..8a1772b7f22 100644 --- a/tensorflow/contrib/distribute/python/mirrored_strategy_multigpu_test.py +++ b/tensorflow/contrib/distribute/python/mirrored_strategy_multigpu_test.py @@ -249,7 +249,7 @@ class MirroredStrategyVariableCreatorStackTest( distribution.scope(), \ variable_scope.variable_creator_scope(main_thread_creator): result = distribution.extended.call_for_each_replica(model_fn) - result = distribution.unwrap(result) + result = distribution.experimental_local_results(result) expected = ("main_thread:thread_0", "main_thread:thread_1") self.assertEqual(expected, result) @@ -269,7 +269,7 @@ class MirroredStrategyCallForEachReplicaTest(test.TestCase): with distribution.scope(): in_scope = ops.executing_eagerly_outside_functions() in_model_fn = distribution.extended.call_for_each_replica(model_fn) - unwrapped = distribution.unwrap(in_model_fn) + unwrapped = distribution.experimental_local_results(in_model_fn) self.assertEqual(in_scope, unwrapped[0]) self.assertEqual(in_scope, originally) @@ -277,7 +277,7 @@ class MirroredStrategyCallForEachReplicaTest(test.TestCase): with func_graph.FuncGraph("fg").as_default(), distribution.scope(): in_scope = ops.executing_eagerly_outside_functions() in_model_fn = distribution.extended.call_for_each_replica(model_fn) - unwrapped = distribution.unwrap(in_model_fn) + unwrapped = distribution.experimental_local_results(in_model_fn) self.assertEqual(in_scope, unwrapped[0]) self.assertEqual(in_scope, originally) @@ -701,7 +701,8 @@ class MirroredStrategyVariableCreationTest(test.TestCase): # Apply updates self.evaluate(variables.global_variables_initializer()) - self.evaluate([y for x in ret_ops for y in distribution.unwrap(x)]) + self.evaluate([y for x in ret_ops # pylint: disable=g-complex-comprehension + for y in distribution.experimental_local_results(x)]) expected_sum = 0.0 expected_mean = 0.0 for i, d in enumerate(distribution.extended.worker_devices): @@ -747,7 +748,7 @@ class MirroredStrategyVariableCreationTest(test.TestCase): self.assertEqual(2, len(result)) for v in result: self.assertIsInstance(v, values.DistributedValues) - _, v1 = distribution.unwrap(v) + _, v1 = distribution.experimental_local_results(v) self.assertStartsWith(v1._op.name, "replica_1/") def testSyncOnReadVariableUpdate(self, distribution): @@ -816,7 +817,7 @@ class MirroredStrategyNameScopeTest(test.TestCase): self.assertEqual(2, len(result)) for v, name in zip(result, ["a", "b"]): self.assertIsInstance(v, values.DistributedValues) - v0, v1 = distribution.unwrap(v) + v0, v1 = distribution.experimental_local_results(v) self.assertEqual("main/foo/" + name + ":0", v0.name) self.assertEqual("main/replica_1/foo/" + name + ":0", v1.name) @@ -833,7 +834,7 @@ class MirroredStrategyNameScopeTest(test.TestCase): self.assertEqual(2, len(result)) for v, name in zip(result, ["a", "b"]): self.assertIsInstance(v, values.DistributedValues) - v0, v1 = distribution.unwrap(v) + v0, v1 = distribution.experimental_local_results(v) self.assertEqual("foo/" + name + ":0", v0.name) self.assertEqual("replica_1/foo/" + name + ":0", v1.name) @@ -860,9 +861,9 @@ class MirroredStrategyNameScopeTest(test.TestCase): result_c = result[1] self.assertIsInstance(result_b, values.DistributedValues) self.assertIsInstance(result_c, values.DistributedValues) - a0, a1 = distribution.unwrap(a) - b0, b1 = distribution.unwrap(result_b) - c0, c1 = distribution.unwrap(result_c) + a0, a1 = distribution.experimental_local_results(a) + b0, b1 = distribution.experimental_local_results(result_b) + c0, c1 = distribution.experimental_local_results(result_c) self.assertEqual("main/a:0", a0.name) self.assertEqual("main/a/replica_1:0", a1.name) self.assertEqual("main/b:0", b0.name) @@ -889,9 +890,9 @@ class MirroredStrategyNameScopeTest(test.TestCase): result_c = result[1] self.assertIsInstance(result_b, values.DistributedValues) self.assertIsInstance(result_c, values.DistributedValues) - a0, a1 = distribution.unwrap(a) - b0, b1 = distribution.unwrap(result_b) - c0, c1 = distribution.unwrap(result_c) + a0, a1 = distribution.experimental_local_results(a) + b0, b1 = distribution.experimental_local_results(result_b) + c0, c1 = distribution.experimental_local_results(result_c) self.assertEqual("a:0", a0.name) self.assertEqual("a/replica_1:0", a1.name) self.assertEqual("b:0", b0.name) @@ -961,7 +962,7 @@ class MirroredVariableUpdateTest(test.TestCase): with self.assertRaisesRegexp( ValueError, "You must specify an aggregation method to update a " "MirroredVariable in Replica Context."): - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) def testAssignMirroredVarReplicaContextWithSum(self, distribution): @@ -983,7 +984,7 @@ class MirroredVariableUpdateTest(test.TestCase): with self.assertRaisesRegexp( ValueError, "A non-DistributedValues value 5.0 cannot be reduced " "with the given reduce op ReduceOp.SUM."): - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) def testAssignMirroredVarCrossDeviceContext(self, distribution): @@ -1015,7 +1016,7 @@ class MirroredVariableUpdateTest(test.TestCase): mirrored_var.dtype) return mirrored_var.assign(value) - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) self.assertEqual(0.5, self.evaluate(mirrored_var)) @@ -1033,7 +1034,7 @@ class MirroredVariableUpdateTest(test.TestCase): def model_fn(): return mirrored_var.assign(5.0) - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) self.assertEqual(5.0, self.evaluate(mirrored_var)) @@ -1076,7 +1077,7 @@ class MirroredVariableUpdateTest(test.TestCase): mirrored_var.dtype) return mirrored_var.assign_add(value) - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) self.assertEqual(1.5, self.evaluate(mirrored_var)) @@ -1094,7 +1095,7 @@ class MirroredVariableUpdateTest(test.TestCase): def model_fn(): return mirrored_var.assign_add(5.0) - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) self.assertEqual(6.0, self.evaluate(mirrored_var)) @@ -1129,7 +1130,7 @@ class MirroredVariableUpdateTest(test.TestCase): mirrored_var.dtype) return mirrored_var.assign_sub(value) - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) self.assertEqual(4.5, self.evaluate(mirrored_var)) @@ -1147,7 +1148,7 @@ class MirroredVariableUpdateTest(test.TestCase): def model_fn(): return mirrored_var.assign_sub(1.0) - self.evaluate(distribution.unwrap( + self.evaluate(distribution.experimental_local_results( distribution.extended.call_for_each_replica(model_fn))) self.assertEqual(4.0, self.evaluate(mirrored_var)) diff --git a/tensorflow/contrib/distribute/python/moving_averages_test.py b/tensorflow/contrib/distribute/python/moving_averages_test.py index c4622cdd2af..23f976f8fa4 100644 --- a/tensorflow/contrib/distribute/python/moving_averages_test.py +++ b/tensorflow/contrib/distribute/python/moving_averages_test.py @@ -56,7 +56,7 @@ class AssignMovingAveragesTest(test.TestCase, parameterized.TestCase): var, assign = distribution.extended.call_for_each_replica(replica_fn) variables.global_variables_initializer().run() self.assertAllClose([10.0, 11.0], var.eval()) - sess.run(distribution.unwrap(assign)) + sess.run(distribution.experimental_local_results(assign)) # Mean of val across calls to replica_fn(). average_val = [1.0 + 0.5 * (replica_id[0] - 1), 2.0 - 0.5 * (replica_id[0] - 1)] @@ -82,7 +82,7 @@ class AssignMovingAveragesTest(test.TestCase, parameterized.TestCase): var, assign_op = distribution.extended.call_for_each_replica(replica_fn) variables.global_variables_initializer().run() self.assertAllClose([0.0, 0.0], var.eval()) - sess.run(distribution.unwrap(assign_op)) + sess.run(distribution.experimental_local_results(assign_op)) # Mean of val across calls to replica_fn(). average_val = [1.0 + 0.5 * (replica_id[0] - 1), 2.0 - 0.5 * (replica_id[0] - 1)] @@ -155,7 +155,7 @@ class AssignMovingAveragesTest(test.TestCase, parameterized.TestCase): var, assign = distribution.extended.call_for_each_replica(replica_fn) variables.global_variables_initializer().run() self.assertAllClose([10.0, 11.0], var.eval()) - sess.run(distribution.unwrap(assign)) + sess.run(distribution.experimental_local_results(assign)) self.assertAllClose( [10 * 0.25 + 1. * (1 - 0.25), 11 * 0.25 + 2. * (1 - 0.25)], var.eval()) diff --git a/tensorflow/contrib/distribute/python/optimizer_v2_test.py b/tensorflow/contrib/distribute/python/optimizer_v2_test.py index e388061b17a..01bb7fbedc6 100644 --- a/tensorflow/contrib/distribute/python/optimizer_v2_test.py +++ b/tensorflow/contrib/distribute/python/optimizer_v2_test.py @@ -45,7 +45,7 @@ class MinimizeLossOptimizerV2Test(test.TestCase, parameterized.TestCase): def run_step(): return control_flow_ops.group( - distribution.unwrap( + distribution.experimental_local_results( distribution.extended.call_for_each_replica( model_fn, args=(iterator.get_next(),)))) diff --git a/tensorflow/contrib/distribute/python/strategy_test_lib.py b/tensorflow/contrib/distribute/python/strategy_test_lib.py index b0153174e20..a562a1758d4 100644 --- a/tensorflow/contrib/distribute/python/strategy_test_lib.py +++ b/tensorflow/contrib/distribute/python/strategy_test_lib.py @@ -346,7 +346,7 @@ class DistributionTestBase(test.TestCase): train_ops, value = strategy.extended.call_for_each_replica(model_fn) self.evaluate(strategy.group(train_ops)) - global_step_tensors = strategy.unwrap(value) + global_step_tensors = strategy.experimental_local_results(value) global_step_values = self.evaluate(global_step_tensors) self.assertEqual((1,) * len(global_step_tensors), global_step_values) @@ -365,7 +365,8 @@ class DistributionTestBase(test.TestCase): def run_and_concatenate(strategy, i): x, y = strategy.experimental_run(lambda z: z, i) - x, y = self.evaluate((strategy.unwrap(x), strategy.unwrap(y))) + x, y = self.evaluate((strategy.experimental_local_results(x), + strategy.experimental_local_results(y))) return np.concatenate(x), np.concatenate(y) x_1, y_1 = run_and_concatenate(strategy, i) @@ -424,7 +425,8 @@ class OneDeviceDistributionTestBase(test.TestCase): self.evaluate(inputs.initialize()) outputs = self.evaluate( - list(map(strategy.unwrap, strategy.experimental_run(comm_fn, inputs)))) + list(map(strategy.experimental_local_results, + strategy.experimental_run(comm_fn, inputs)))) self.assertAllEqual([expected[0]], outputs[0]) self.assertAllEqual([expected[1]], outputs[1]) @@ -444,7 +446,8 @@ class OneDeviceDistributionTestBase(test.TestCase): self.evaluate(inputs.initialize()) self.assertAllEqual( expected_grads, - self.evaluate(strategy.unwrap(strategy.experimental_run(step, inputs)))) + self.evaluate(strategy.experimental_local_results( + strategy.experimental_run(step, inputs)))) def _test_collective_comms_gradient_tape( self, strategy, comm_fn, inputs, expected_grads): @@ -461,7 +464,8 @@ class OneDeviceDistributionTestBase(test.TestCase): self.evaluate(inputs.initialize()) self.assertAllEqual( expected_grads, - self.evaluate(strategy.unwrap(strategy.experimental_run(step, inputs)))) + self.evaluate(strategy.experimental_local_results( + strategy.experimental_run(step, inputs)))) class TwoDeviceDistributionTestBase(test.TestCase): @@ -515,7 +519,8 @@ class TwoDeviceDistributionTestBase(test.TestCase): self.evaluate(inputs.initialize()) outputs = self.evaluate( - list(map(strategy.unwrap, strategy.experimental_run(comm_fn, inputs)))) + list(map(strategy.experimental_local_results, + strategy.experimental_run(comm_fn, inputs)))) self.assertAllEqual([expected[0], expected[0]], outputs[0]) self.assertAllEqual([expected[1], expected[1]], outputs[1]) @@ -535,7 +540,8 @@ class TwoDeviceDistributionTestBase(test.TestCase): self.evaluate(inputs.initialize()) self.assertAllEqual( expected_grads, - self.evaluate(strategy.unwrap(strategy.experimental_run(step, inputs)))) + self.evaluate(strategy.experimental_local_results( + strategy.experimental_run(step, inputs)))) def _test_collective_comms_gradient_tape( self, strategy, comm_fn, inputs, expected_grads): @@ -552,7 +558,8 @@ class TwoDeviceDistributionTestBase(test.TestCase): self.evaluate(inputs.initialize()) self.assertAllEqual( expected_grads, - self.evaluate(strategy.unwrap(strategy.experimental_run(step, inputs)))) + self.evaluate(strategy.experimental_local_results( + strategy.experimental_run(step, inputs)))) def _all_sum(value): diff --git a/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb b/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb index d60ee185861..57bd18d7529 100644 --- a/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb +++ b/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb @@ -11,777 +11,17 @@ "\n", "Licensed under the Apache License, Version 2.0 (the \"License\").\n", "\n", - "# Pix2Pix: An example with tf.keras and eager\n", - "\n", - "\u003ctable class=\"tfo-notebook-buttons\" align=\"left\"\u003e\u003ctd\u003e\n", - "\u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb\"\u003e\n", - " \u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e \n", - "\u003c/td\u003e\u003ctd\u003e\n", - "\u003ca target=\"_blank\" href=\"https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb\"\u003e\u003cimg width=32px src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\u003c/td\u003e\u003c/table\u003e" + "# Pix2Pix" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", - "id": "ITZuApL56Mny" + "id": "c7W3j96p219v" }, "source": [ - "This notebook demonstrates image to image translation using conditional GAN's, as described in [Image-to-Image Translation with Conditional Adversarial Networks](https://arxiv.org/abs/1611.07004). Using this technique we can colorize black and white photos, convert google maps to google earth, etc. Here, we convert building facades to real buildings. We use [tf.keras](https://www.tensorflow.org/programmers_guide/keras) and [eager execution](https://www.tensorflow.org/programmers_guide/eager) to achieve this.\n", - "\n", - "In example, we will use the [CMP Facade Database](http://cmp.felk.cvut.cz/~tylecr1/facade/), helpfully provided by the [Center for Machine Perception](http://cmp.felk.cvut.cz/) at the [Czech Technical University in Prague](https://www.cvut.cz/). To keep our example short, we will use a preprocessed [copy](https://people.eecs.berkeley.edu/~tinghuiz/projects/pix2pix/datasets/) of this dataset, created by the authors of the [paper](https://arxiv.org/abs/1611.07004) above.\n", - "\n", - "Each epoch takes around 58 seconds on a single P100 GPU.\n", - "\n", - "Below is the output generated after training the model for 200 epochs.\n", - "\n", - "\n", - "![sample output_1](https://www.tensorflow.org/images/gan/pix2pix_1.png)\n", - "![sample output_2](https://www.tensorflow.org/images/gan/pix2pix_2.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "e1_Y75QXJS6h" - }, - "source": [ - "## Import TensorFlow and enable eager execution" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "YfIk2es3hJEd" - }, - "outputs": [], - "source": [ - "# Import TensorFlow \u003e= 1.10 and enable eager execution\n", - "import tensorflow as tf\n", - "tf.enable_eager_execution()\n", - "\n", - "import os\n", - "import time\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import PIL\n", - "from IPython.display import clear_output" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "iYn4MdZnKCey" - }, - "source": [ - "## Load the dataset\n", - "\n", - "You can download this dataset and similar datasets from [here](https://people.eecs.berkeley.edu/~tinghuiz/projects/pix2pix/datasets). As mentioned in the [paper](https://arxiv.org/abs/1611.07004) we apply random jittering and mirroring to the training dataset.\n", - "* In random jittering, the image is resized to `286 x 286` and then randomly cropped to `256 x 256`\n", - "* In random mirroring, the image is randomly flipped horizontally i.e left to right." - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "Kn-k8kTXuAlv" - }, - "outputs": [], - "source": [ - "path_to_zip = tf.keras.utils.get_file('facades.tar.gz',\n", - " cache_subdir=os.path.abspath('.'),\n", - " origin='https://people.eecs.berkeley.edu/~tinghuiz/projects/pix2pix/datasets/facades.tar.gz', \n", - " extract=True)\n", - "\n", - "PATH = os.path.join(os.path.dirname(path_to_zip), 'facades/')" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "2CbTEt448b4R" - }, - "outputs": [], - "source": [ - "BUFFER_SIZE = 400\n", - "BATCH_SIZE = 1\n", - "IMG_WIDTH = 256\n", - "IMG_HEIGHT = 256" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "tyaP4hLJ8b4W" - }, - "outputs": [], - "source": [ - "def load_image(image_file, is_train):\n", - " image = tf.read_file(image_file)\n", - " image = tf.image.decode_jpeg(image)\n", - "\n", - " w = tf.shape(image)[1]\n", - "\n", - " w = w // 2\n", - " real_image = image[:, :w, :]\n", - " input_image = image[:, w:, :]\n", - "\n", - " input_image = tf.cast(input_image, tf.float32)\n", - " real_image = tf.cast(real_image, tf.float32)\n", - "\n", - " if is_train:\n", - " # random jittering\n", - " \n", - " # resizing to 286 x 286 x 3\n", - " input_image = tf.image.resize_images(input_image, [286, 286], \n", - " align_corners=True, \n", - " method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)\n", - " real_image = tf.image.resize_images(real_image, [286, 286], \n", - " align_corners=True, \n", - " method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)\n", - " \n", - " # randomly cropping to 256 x 256 x 3\n", - " stacked_image = tf.stack([input_image, real_image], axis=0)\n", - " cropped_image = tf.random_crop(stacked_image, size=[2, IMG_HEIGHT, IMG_WIDTH, 3])\n", - " input_image, real_image = cropped_image[0], cropped_image[1]\n", - "\n", - " if np.random.random() \u003e 0.5:\n", - " # random mirroring\n", - " input_image = tf.image.flip_left_right(input_image)\n", - " real_image = tf.image.flip_left_right(real_image)\n", - " else:\n", - " input_image = tf.image.resize_images(input_image, size=[IMG_HEIGHT, IMG_WIDTH], \n", - " align_corners=True, method=2)\n", - " real_image = tf.image.resize_images(real_image, size=[IMG_HEIGHT, IMG_WIDTH], \n", - " align_corners=True, method=2)\n", - " \n", - " # normalizing the images to [-1, 1]\n", - " input_image = (input_image / 127.5) - 1\n", - " real_image = (real_image / 127.5) - 1\n", - "\n", - " return input_image, real_image" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "PIGN6ouoQxt3" - }, - "source": [ - "## Use tf.data to create batches, map(do preprocessing) and shuffle the dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "SQHmYSmk8b4b" - }, - "outputs": [], - "source": [ - "train_dataset = tf.data.Dataset.list_files(PATH+'train/*.jpg')\n", - "train_dataset = train_dataset.shuffle(BUFFER_SIZE)\n", - "train_dataset = train_dataset.map(lambda x: load_image(x, True))\n", - "train_dataset = train_dataset.batch(1)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "MS9J0yA58b4g" - }, - "outputs": [], - "source": [ - "test_dataset = tf.data.Dataset.list_files(PATH+'test/*.jpg')\n", - "test_dataset = test_dataset.map(lambda x: load_image(x, False))\n", - "test_dataset = test_dataset.batch(1)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "THY-sZMiQ4UV" - }, - "source": [ - "## Write the generator and discriminator models\n", - "\n", - "* **Generator** \n", - " * The architecture of generator is a modified U-Net.\n", - " * Each block in the encoder is (Conv -\u003e Batchnorm -\u003e Leaky ReLU)\n", - " * Each block in the decoder is (Transposed Conv -\u003e Batchnorm -\u003e Dropout(applied to the first 3 blocks) -\u003e ReLU)\n", - " * There are skip connections between the encoder and decoder (as in U-Net).\n", - " \n", - "* **Discriminator**\n", - " * The Discriminator is a PatchGAN.\n", - " * Each block in the discriminator is (Conv -\u003e BatchNorm -\u003e Leaky ReLU)\n", - " * The shape of the output after the last layer is (batch_size, 30, 30, 1)\n", - " * Each 30x30 patch of the output classifies a 70x70 portion of the input image (such an architecture is called a PatchGAN).\n", - " * Discriminator receives 2 inputs.\n", - " * Input image and the target image, which it should classify as real.\n", - " * Input image and the generated image (output of generator), which it should classify as fake. \n", - " * We concatenate these 2 inputs together in the code (`tf.concat([inp, tar], axis=-1)`)\n", - "\n", - "* Shape of the input travelling through the generator and the discriminator is in the comments in the code.\n", - "\n", - "To learn more about the architecture and the hyperparameters you can refer the [paper](https://arxiv.org/abs/1611.07004).\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "tqqvWxlw8b4l" - }, - "outputs": [], - "source": [ - "OUTPUT_CHANNELS = 3" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "lFPI4Nu-8b4q" - }, - "outputs": [], - "source": [ - "class Downsample(tf.keras.Model):\n", - " \n", - " def __init__(self, filters, size, apply_batchnorm=True):\n", - " super(Downsample, self).__init__()\n", - " self.apply_batchnorm = apply_batchnorm\n", - " initializer = tf.random_normal_initializer(0., 0.02)\n", - "\n", - " self.conv1 = tf.keras.layers.Conv2D(filters, \n", - " (size, size), \n", - " strides=2, \n", - " padding='same',\n", - " kernel_initializer=initializer,\n", - " use_bias=False)\n", - " if self.apply_batchnorm:\n", - " self.batchnorm = tf.keras.layers.BatchNormalization()\n", - " \n", - " def call(self, x, training):\n", - " x = self.conv1(x)\n", - " if self.apply_batchnorm:\n", - " x = self.batchnorm(x, training=training)\n", - " x = tf.nn.leaky_relu(x)\n", - " return x \n", - "\n", - "\n", - "class Upsample(tf.keras.Model):\n", - " \n", - " def __init__(self, filters, size, apply_dropout=False):\n", - " super(Upsample, self).__init__()\n", - " self.apply_dropout = apply_dropout\n", - " initializer = tf.random_normal_initializer(0., 0.02)\n", - "\n", - " self.up_conv = tf.keras.layers.Conv2DTranspose(filters, \n", - " (size, size), \n", - " strides=2, \n", - " padding='same',\n", - " kernel_initializer=initializer,\n", - " use_bias=False)\n", - " self.batchnorm = tf.keras.layers.BatchNormalization()\n", - " if self.apply_dropout:\n", - " self.dropout = tf.keras.layers.Dropout(0.5)\n", - "\n", - " def call(self, x1, x2, training):\n", - " x = self.up_conv(x1)\n", - " x = self.batchnorm(x, training=training)\n", - " if self.apply_dropout:\n", - " x = self.dropout(x, training=training)\n", - " x = tf.nn.relu(x)\n", - " x = tf.concat([x, x2], axis=-1)\n", - " return x\n", - "\n", - "\n", - "class Generator(tf.keras.Model):\n", - " \n", - " def __init__(self):\n", - " super(Generator, self).__init__()\n", - " initializer = tf.random_normal_initializer(0., 0.02)\n", - " \n", - " self.down1 = Downsample(64, 4, apply_batchnorm=False)\n", - " self.down2 = Downsample(128, 4)\n", - " self.down3 = Downsample(256, 4)\n", - " self.down4 = Downsample(512, 4)\n", - " self.down5 = Downsample(512, 4)\n", - " self.down6 = Downsample(512, 4)\n", - " self.down7 = Downsample(512, 4)\n", - " self.down8 = Downsample(512, 4)\n", - "\n", - " self.up1 = Upsample(512, 4, apply_dropout=True)\n", - " self.up2 = Upsample(512, 4, apply_dropout=True)\n", - " self.up3 = Upsample(512, 4, apply_dropout=True)\n", - " self.up4 = Upsample(512, 4)\n", - " self.up5 = Upsample(256, 4)\n", - " self.up6 = Upsample(128, 4)\n", - " self.up7 = Upsample(64, 4)\n", - "\n", - " self.last = tf.keras.layers.Conv2DTranspose(OUTPUT_CHANNELS, \n", - " (4, 4), \n", - " strides=2, \n", - " padding='same',\n", - " kernel_initializer=initializer)\n", - " \n", - " @tf.contrib.eager.defun\n", - " def call(self, x, training):\n", - " # x shape == (bs, 256, 256, 3) \n", - " x1 = self.down1(x, training=training) # (bs, 128, 128, 64)\n", - " x2 = self.down2(x1, training=training) # (bs, 64, 64, 128)\n", - " x3 = self.down3(x2, training=training) # (bs, 32, 32, 256)\n", - " x4 = self.down4(x3, training=training) # (bs, 16, 16, 512)\n", - " x5 = self.down5(x4, training=training) # (bs, 8, 8, 512)\n", - " x6 = self.down6(x5, training=training) # (bs, 4, 4, 512)\n", - " x7 = self.down7(x6, training=training) # (bs, 2, 2, 512)\n", - " x8 = self.down8(x7, training=training) # (bs, 1, 1, 512)\n", - "\n", - " x9 = self.up1(x8, x7, training=training) # (bs, 2, 2, 1024)\n", - " x10 = self.up2(x9, x6, training=training) # (bs, 4, 4, 1024)\n", - " x11 = self.up3(x10, x5, training=training) # (bs, 8, 8, 1024)\n", - " x12 = self.up4(x11, x4, training=training) # (bs, 16, 16, 1024)\n", - " x13 = self.up5(x12, x3, training=training) # (bs, 32, 32, 512)\n", - " x14 = self.up6(x13, x2, training=training) # (bs, 64, 64, 256)\n", - " x15 = self.up7(x14, x1, training=training) # (bs, 128, 128, 128)\n", - "\n", - " x16 = self.last(x15) # (bs, 256, 256, 3)\n", - " x16 = tf.nn.tanh(x16)\n", - "\n", - " return x16" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "ll6aNeQx8b4v" - }, - "outputs": [], - "source": [ - "class DiscDownsample(tf.keras.Model):\n", - " \n", - " def __init__(self, filters, size, apply_batchnorm=True):\n", - " super(DiscDownsample, self).__init__()\n", - " self.apply_batchnorm = apply_batchnorm\n", - " initializer = tf.random_normal_initializer(0., 0.02)\n", - "\n", - " self.conv1 = tf.keras.layers.Conv2D(filters, \n", - " (size, size), \n", - " strides=2, \n", - " padding='same',\n", - " kernel_initializer=initializer,\n", - " use_bias=False)\n", - " if self.apply_batchnorm:\n", - " self.batchnorm = tf.keras.layers.BatchNormalization()\n", - " \n", - " def call(self, x, training):\n", - " x = self.conv1(x)\n", - " if self.apply_batchnorm:\n", - " x = self.batchnorm(x, training=training)\n", - " x = tf.nn.leaky_relu(x)\n", - " return x \n", - "\n", - "class Discriminator(tf.keras.Model):\n", - " \n", - " def __init__(self):\n", - " super(Discriminator, self).__init__()\n", - " initializer = tf.random_normal_initializer(0., 0.02)\n", - " \n", - " self.down1 = DiscDownsample(64, 4, False)\n", - " self.down2 = DiscDownsample(128, 4)\n", - " self.down3 = DiscDownsample(256, 4)\n", - " \n", - " # we are zero padding here with 1 because we need our shape to \n", - " # go from (batch_size, 32, 32, 256) to (batch_size, 31, 31, 512)\n", - " self.zero_pad1 = tf.keras.layers.ZeroPadding2D()\n", - " self.conv = tf.keras.layers.Conv2D(512, \n", - " (4, 4), \n", - " strides=1, \n", - " kernel_initializer=initializer, \n", - " use_bias=False)\n", - " self.batchnorm1 = tf.keras.layers.BatchNormalization()\n", - " \n", - " # shape change from (batch_size, 31, 31, 512) to (batch_size, 30, 30, 1)\n", - " self.zero_pad2 = tf.keras.layers.ZeroPadding2D()\n", - " self.last = tf.keras.layers.Conv2D(1, \n", - " (4, 4), \n", - " strides=1,\n", - " kernel_initializer=initializer)\n", - " \n", - " @tf.contrib.eager.defun\n", - " def call(self, inp, tar, training):\n", - " # concatenating the input and the target\n", - " x = tf.concat([inp, tar], axis=-1) # (bs, 256, 256, channels*2)\n", - " x = self.down1(x, training=training) # (bs, 128, 128, 64)\n", - " x = self.down2(x, training=training) # (bs, 64, 64, 128)\n", - " x = self.down3(x, training=training) # (bs, 32, 32, 256)\n", - "\n", - " x = self.zero_pad1(x) # (bs, 34, 34, 256)\n", - " x = self.conv(x) # (bs, 31, 31, 512)\n", - " x = self.batchnorm1(x, training=training)\n", - " x = tf.nn.leaky_relu(x)\n", - " \n", - " x = self.zero_pad2(x) # (bs, 33, 33, 512)\n", - " # don't add a sigmoid activation here since\n", - " # the loss function expects raw logits.\n", - " x = self.last(x) # (bs, 30, 30, 1)\n", - "\n", - " return x" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "gDkA05NE6QMs" - }, - "outputs": [], - "source": [ - "# The call function of Generator and Discriminator have been decorated\n", - "# with tf.contrib.eager.defun()\n", - "# We get a performance speedup if defun is used (~25 seconds per epoch)\n", - "generator = Generator()\n", - "discriminator = Discriminator()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "0FMYgY_mPfTi" - }, - "source": [ - "## Define the loss functions and the optimizer\n", - "\n", - "* **Discriminator loss**\n", - " * The discriminator loss function takes 2 inputs; **real images, generated images**\n", - " * real_loss is a sigmoid cross entropy loss of the **real images** and an **array of ones(since these are the real images)**\n", - " * generated_loss is a sigmoid cross entropy loss of the **generated images** and an **array of zeros(since these are the fake images)**\n", - " * Then the total_loss is the sum of real_loss and the generated_loss\n", - " \n", - "* **Generator loss**\n", - " * It is a sigmoid cross entropy loss of the generated images and an **array of ones**.\n", - " * The [paper](https://arxiv.org/abs/1611.07004) also includes L1 loss which is MAE (mean absolute error) between the generated image and the target image.\n", - " * This allows the generated image to become structurally similar to the target image.\n", - " * The formula to calculate the total generator loss = gan_loss + LAMBDA * l1_loss, where LAMBDA = 100. This value was decided by the authors of the [paper](https://arxiv.org/abs/1611.07004)." - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "cyhxTuvJyIHV" - }, - "outputs": [], - "source": [ - "LAMBDA = 100" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "wkMNfBWlT-PV" - }, - "outputs": [], - "source": [ - "def discriminator_loss(disc_real_output, disc_generated_output):\n", - " real_loss = tf.losses.sigmoid_cross_entropy(multi_class_labels = tf.ones_like(disc_real_output), \n", - " logits = disc_real_output)\n", - " generated_loss = tf.losses.sigmoid_cross_entropy(multi_class_labels = tf.zeros_like(disc_generated_output), \n", - " logits = disc_generated_output)\n", - "\n", - " total_disc_loss = real_loss + generated_loss\n", - "\n", - " return total_disc_loss" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "90BIcCKcDMxz" - }, - "outputs": [], - "source": [ - "def generator_loss(disc_generated_output, gen_output, target):\n", - " gan_loss = tf.losses.sigmoid_cross_entropy(multi_class_labels = tf.ones_like(disc_generated_output),\n", - " logits = disc_generated_output) \n", - " # mean absolute error\n", - " l1_loss = tf.reduce_mean(tf.abs(target - gen_output))\n", - "\n", - " total_gen_loss = gan_loss + (LAMBDA * l1_loss)\n", - "\n", - " return total_gen_loss" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "iWCn_PVdEJZ7" - }, - "outputs": [], - "source": [ - "generator_optimizer = tf.train.AdamOptimizer(2e-4, beta1=0.5)\n", - "discriminator_optimizer = tf.train.AdamOptimizer(2e-4, beta1=0.5)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "aKUZnDiqQrAh" - }, - "source": [ - "## Checkpoints (Object-based saving)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "WJnftd5sQsv6" - }, - "outputs": [], - "source": [ - "checkpoint_dir = './training_checkpoints'\n", - "checkpoint_prefix = os.path.join(checkpoint_dir, \"ckpt\")\n", - "checkpoint = tf.train.Checkpoint(generator_optimizer=generator_optimizer,\n", - " discriminator_optimizer=discriminator_optimizer,\n", - " generator=generator,\n", - " discriminator=discriminator)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Rw1fkAczTQYh" - }, - "source": [ - "## Training\n", - "\n", - "* We start by iterating over the dataset\n", - "* The generator gets the input image and we get a generated output.\n", - "* The discriminator receives the input_image and the generated image as the first input. The second input is the input_image and the target_image.\n", - "* Next, we calculate the generator and the discriminator loss.\n", - "* Then, we calculate the gradients of loss with respect to both the generator and the discriminator variables(inputs) and apply those to the optimizer.\n", - "\n", - "## Generate Images\n", - "\n", - "* After training, its time to generate some images!\n", - "* We pass images from the test dataset to the generator.\n", - "* The generator will then translate the input image into the output we expect.\n", - "* Last step is to plot the predictions and **voila!**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "NS2GWywBbAWo" - }, - "outputs": [], - "source": [ - "EPOCHS = 200" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "RmdVsmvhPxyy" - }, - "outputs": [], - "source": [ - "def generate_images(model, test_input, tar):\n", - " # the training=True is intentional here since\n", - " # we want the batch statistics while running the model\n", - " # on the test dataset. If we use training=False, we will get \n", - " # the accumulated statistics learned from the training dataset\n", - " # (which we don't want)\n", - " prediction = model(test_input, training=True)\n", - " plt.figure(figsize=(15,15))\n", - "\n", - " display_list = [test_input[0], tar[0], prediction[0]]\n", - " title = ['Input Image', 'Ground Truth', 'Predicted Image']\n", - "\n", - " for i in range(3):\n", - " plt.subplot(1, 3, i+1)\n", - " plt.title(title[i])\n", - " # getting the pixel values between [0, 1] to plot it.\n", - " plt.imshow(display_list[i] * 0.5 + 0.5)\n", - " plt.axis('off')\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "2M7LmLtGEMQJ" - }, - "outputs": [], - "source": [ - "def train(dataset, epochs): \n", - " for epoch in range(epochs):\n", - " start = time.time()\n", - "\n", - " for input_image, target in dataset:\n", - "\n", - " with tf.GradientTape() as gen_tape, tf.GradientTape() as disc_tape:\n", - " gen_output = generator(input_image, training=True)\n", - "\n", - " disc_real_output = discriminator(input_image, target, training=True)\n", - " disc_generated_output = discriminator(input_image, gen_output, training=True)\n", - "\n", - " gen_loss = generator_loss(disc_generated_output, gen_output, target)\n", - " disc_loss = discriminator_loss(disc_real_output, disc_generated_output)\n", - "\n", - " generator_gradients = gen_tape.gradient(gen_loss, \n", - " generator.variables)\n", - " discriminator_gradients = disc_tape.gradient(disc_loss, \n", - " discriminator.variables)\n", - "\n", - " generator_optimizer.apply_gradients(zip(generator_gradients, \n", - " generator.variables))\n", - " discriminator_optimizer.apply_gradients(zip(discriminator_gradients, \n", - " discriminator.variables))\n", - "\n", - " if epoch % 1 == 0:\n", - " clear_output(wait=True)\n", - " for inp, tar in test_dataset.take(1):\n", - " generate_images(generator, inp, tar)\n", - " \n", - " # saving (checkpoint) the model every 20 epochs\n", - " if (epoch + 1) % 20 == 0:\n", - " checkpoint.save(file_prefix = checkpoint_prefix)\n", - "\n", - " print ('Time taken for epoch {} is {} sec\\n'.format(epoch + 1,\n", - " time.time()-start))" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "a1zZmKmvOH85" - }, - "outputs": [], - "source": [ - "train(train_dataset, EPOCHS)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "kz80bY3aQ1VZ" - }, - "source": [ - "## Restore the latest checkpoint and test" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "4t4x69adQ5xb" - }, - "outputs": [], - "source": [ - "# restoring the latest checkpoint in checkpoint_dir\n", - "checkpoint.restore(tf.train.latest_checkpoint(checkpoint_dir))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "1RGysMU_BZhx" - }, - "source": [ - "## Testing on the entire test dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "KUgSnmy2nqSP" - }, - "outputs": [], - "source": [ - "# Run the trained model on the entire test dataset\n", - "for inp, tar in test_dataset:\n", - " generate_images(generator, inp, tar)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "3AJXOByaZVOf" - }, - "outputs": [], - "source": [ - "" + "This notebook has been moved to [https://github.com/tensorflow/docs/blob/master/site/en/r2/tutorials/generative/pix2pix.ipynb](https://github.com/tensorflow/docs/blob/master/site/en/r2/tutorials/generative/pix2pix.ipynb)" ] } ], diff --git a/tensorflow/contrib/ffmpeg/ffmpeg_ops.py b/tensorflow/contrib/ffmpeg/ffmpeg_ops.py index 45a67acb5b2..42e212b0c11 100644 --- a/tensorflow/contrib/ffmpeg/ffmpeg_ops.py +++ b/tensorflow/contrib/ffmpeg/ffmpeg_ops.py @@ -30,7 +30,10 @@ _ffmpeg_so = loader.load_op_library( resource_loader.get_path_to_datafile('ffmpeg.so')) -@deprecated('2018-09-04', 'This will be deleted and should not be used.') +@deprecated('2018-09-04', + 'tf.contrib.ffmpeg will be removed in 2.0, the support for video ' + 'and audio will continue to be provided in tensorflow-io: ' + 'https://github.com/tensorflow/io') def decode_audio(contents, file_format=None, samples_per_second=None, channel_count=None, stream=None): """Create an op that decodes the contents of an audio file. @@ -71,7 +74,10 @@ def decode_audio(contents, file_format=None, samples_per_second=None, ops.NotDifferentiable('DecodeAudio') -@deprecated('2018-09-04', 'This will be deleted and should not be used.') +@deprecated('2018-09-04', + 'tf.contrib.ffmpeg will be removed in 2.0, the support for video ' + 'and audio will continue to be provided in tensorflow-io: ' + 'https://github.com/tensorflow/io') def encode_audio(audio, file_format=None, samples_per_second=None): """Creates an op that encodes an audio file using sampled audio from a tensor. @@ -98,13 +104,15 @@ def encode_audio(audio, file_format=None, samples_per_second=None): ops.NotDifferentiable('EncodeAudio') -@deprecated('2018-09-04', 'This will be deleted and should not be used.') +@deprecated('2018-09-04', + 'tf.contrib.ffmpeg will be removed in 2.0, the support for video ' + 'and audio will continue to be provided in tensorflow-io: ' + 'https://github.com/tensorflow/io') def decode_video(contents): """Create an op that decodes the contents of a video file. Args: - contents: The binary contents of the video file to decode. This is a - scalar. + contents: The binary contents of the video file to decode. This is a scalar. Returns: A rank-4 `Tensor` that has `[frames, height, width, 3]` RGB as output. diff --git a/tensorflow/core/common_runtime/function.cc b/tensorflow/core/common_runtime/function.cc index 488d0c71c89..7a28ac55612 100644 --- a/tensorflow/core/common_runtime/function.cc +++ b/tensorflow/core/common_runtime/function.cc @@ -37,6 +37,7 @@ limitations under the License. #include "tensorflow/core/graph/control_flow.h" #include "tensorflow/core/graph/gradients.h" #include "tensorflow/core/graph/graph_constructor.h" +#include "tensorflow/core/graph/node_builder.h" #include "tensorflow/core/graph/optimizer_cse.h" #include "tensorflow/core/lib/core/threadpool.h" #include "tensorflow/core/lib/gtl/map_util.h" @@ -1734,6 +1735,9 @@ Status InlineFunctionBody(const FunctionLibraryDefinition& flib_def, Graph* g, // added above or on all control return nodes (controlled by // `options.output_control_src` value). And nodes previously depend on // "callee" is changed to depend on "output_control_node". + // + // If `keep_node_fetchable` is `true` we always add an output control node, to + // guarantee that executing a fetchable node will execute all side-effects. std::vector outputs(caller->num_outputs()); for (std::size_t i = 0; i < fbody->ret_nodes.size(); ++i) { Node* ret = node_map[fbody->ret_nodes[i]->id()]; @@ -1754,29 +1758,53 @@ Status InlineFunctionBody(const FunctionLibraryDefinition& flib_def, Graph* g, } g->RemoveNode(ret); // 'ret' is disconnected. } + Node* output_control_node = nullptr; + bool has_control_outputs = absl::c_any_of( + caller->out_edges(), [](const Edge* e) { return e->IsControlEdge(); }); + + if (has_control_outputs || options.keep_caller_fetchable) { + output_control_node = no_op("output_control_node"); + if (options.output_control_src == OutputControlSrc::kDataOutputs) { + for (Node* n : outputs) { + g->AddControlEdge(n, output_control_node); + } + } else { + for (Node* fbody_node : fbody->control_ret_nodes) { + Node* n = node_map[fbody_node->id()]; + g->AddControlEdge(n, output_control_node); + } + } + } + for (const Edge* e : caller->out_edges()) { if (e->IsControlEdge()) { - if (output_control_node == nullptr) { - output_control_node = no_op("output_control_node"); - if (options.output_control_src == - InlineFunctionBodyOptions::OutputControlSource::kDataOutputs) { - for (Node* n : outputs) { - g->AddControlEdge(n, output_control_node); - } - } else { - for (Node* fbody_node : fbody->control_ret_nodes) { - Node* n = node_map[fbody_node->id()]; - g->AddControlEdge(n, output_control_node); - } - } - } g->AddControlEdge(output_control_node, e->dst()); } else { g->AddEdge(outputs[e->src_output()], 0, e->dst(), e->dst_input()); } } - g->RemoveNode(caller); // 'caller' is replaced with inlined nodes. + + // ------------------------------------------------------------------------ // + // Add an IdentityN node in-place of caller node to keep `caller` fetchable. + + if (options.keep_caller_fetchable) { + std::vector output_tensors; + absl::c_transform(outputs, std::back_inserter(output_tensors), + [](Node* n) { return NodeBuilder::NodeOut(n, 0); }); + + Node* fetchable_node; + TF_CHECK_OK(NodeBuilder(caller->name(), "IdentityN") + .Device(caller->requested_device()) + .Input(output_tensors) + .ControlInput(output_control_node) + .Finalize(g, &fetchable_node)); + } + + // ------------------------------------------------------------------------ // + // 'caller' is replaced with inlined function body nodes and maybe IdentityN + // to keep it fetchable. + g->RemoveNode(caller); return Status::OK(); } diff --git a/tensorflow/core/common_runtime/function.h b/tensorflow/core/common_runtime/function.h index 86b4d21cb1d..7956e629484 100644 --- a/tensorflow/core/common_runtime/function.h +++ b/tensorflow/core/common_runtime/function.h @@ -173,6 +173,16 @@ struct InlineFunctionBodyOptions { // If 'true' function inlining will override explicitly specified devices // inside function body with the caller node device. bool override_device = false; + // If 'true' function inlining will add an IdentityN node to the graph with + // the same name as the caller node. It will have a control edge from inlined + // 'output_control_node' and data edges from function output nodes. IdentityN + // node will be placed on the same device as the caller node. + // This is mostly for compatibility with Tensorflow v1 and sessions. When we + // prepare a graph for execution in GraphExecutionState::MakeForBaseGraph we + // don't know what nodes will be fetched, so we can't safely remove any of + // them. When graph executed as a function it has 'Retval' nodes for each + // fetched tensor, and we can safely inline function calls. + bool keep_caller_fetchable = false; // For compatibility with Tensorflow v1 by default we will use data outputs. // Control returns were added to Tensorflow v2 with automatic control // dependencies tracking in Eager mode. diff --git a/tensorflow/core/common_runtime/function_test.cc b/tensorflow/core/common_runtime/function_test.cc index 15910aff92f..309618118b4 100644 --- a/tensorflow/core/common_runtime/function_test.cc +++ b/tensorflow/core/common_runtime/function_test.cc @@ -54,7 +54,9 @@ limitations under the License. namespace tensorflow { namespace { -using FDH = FunctionDefHelper; +using FDH = ::tensorflow::FunctionDefHelper; + +using OutputControlSrc = InlineFunctionBodyOptions::OutputControlSource; Status GetOpSig(const string& op, const OpDef** sig) { return OpRegistry::Global()->LookUpOpDef(op, sig); @@ -888,17 +890,13 @@ TEST_F(FunctionLibraryRuntimeTest, ExpandInlineFunctionsWithInputControlEdges) { TEST_F(FunctionLibraryRuntimeTest, ExpandInlineFunctionsWithOutputControlEdges) { using test::function::NDef; - using FDH = FunctionDefHelper; - using OutputControlSrc = InlineFunctionBodyOptions::OutputControlSource; // `add` node is not required to compute regular output `o`, but it must // execute because it is in `control_ret`. const FunctionDef func = - FDH::Create("FunctionWithControlOutputs", {"i: float"}, {"o: float"}, {}, - { - {{"add"}, "Add", {"i", "i"}, {{"T", DT_FLOAT}}}, - {{"ret"}, "Mul", {"i", "i"}, {{"T", DT_FLOAT}}}, - }, + FDH::Create("AddAndMul", {"i: float"}, {"o: float"}, {}, + {{{"add"}, "Add", {"i", "i"}, {{"T", DT_FLOAT}}}, + {{"ret"}, "Mul", {"i", "i"}, {{"T", DT_FLOAT}}}}, /*ret_def=*/{{"o", "ret:z:0"}}, /*control_ret_def=*/{{"must_execute", "add"}}); @@ -907,16 +905,16 @@ TEST_F(FunctionLibraryRuntimeTest, // Construct a graph for the function call: // // a = Arg[dtype=DT_FLOAT] - // b = FunctionWithControlOutputs(a) + // b = AddAndMul(a) // c = NoOp(^b) // ret = RetVal(b, ^c) const auto init_graph = [this](std::unique_ptr* g) -> void { - g->reset(new Graph(OpRegistry::Global())); + *g = absl::make_unique(OpRegistry::Global()); Scope s = Scope::NewRootScope(); TF_ASSERT_OK(s.graph()->AddFunctionLibrary(fdef_lib_)); auto a = ops::_Arg(s.WithOpName("a"), DT_FLOAT, 0); - auto b = test::function::Call(&s, "b", "FunctionWithControlOutputs", {a}); + auto b = test::function::Call(&s, "b", "AddAndMul", {a}); auto c = ops::NoOp(s.WithOpName("c")); auto ret = ops::_Retval(s.WithOpName("ret"), b, 0); s.graph()->AddControlEdge(b.node(), c.operation.node()); @@ -978,6 +976,55 @@ TEST_F(FunctionLibraryRuntimeTest, } } +TEST_F(FunctionLibraryRuntimeTest, ExpandInlineFunctionsAndKeepThemFetchable) { + using test::function::NDef; + + const FunctionDef func = + FDH::Create("AddAndMul", {"i: float"}, {"o: float"}, {}, + {{{"add"}, "Add", {"i", "i"}, {{"T", DT_FLOAT}}}, + {{"ret"}, "Mul", {"i", "i"}, {{"T", DT_FLOAT}}}}, + /*ret_def=*/{{"o", "ret:z:0"}}, + /*control_ret_def=*/{{"must_execute", "add"}}); + Init({func}); + + // Construct a graph: + // a = Arg[dtype=DT_FLOAT] + // b = FunctionWithControlOutputs(a) + std::unique_ptr g = absl::make_unique(OpRegistry::Global()); + + Scope s = Scope::NewRootScope(); + TF_ASSERT_OK(s.graph()->AddFunctionLibrary(fdef_lib_)); + auto a = ops::_Arg(s.WithOpName("a"), DT_FLOAT, 0); + auto b = test::function::Call(&s, "b", "AddAndMul", {a}); + TF_ASSERT_OK(s.ToGraph(g.get())); + + ExpandInlineFunctionsOptions opts; + opts.native_options.keep_caller_fetchable = true; + opts.native_options.output_control_src = OutputControlSrc::kControlOutputs; + + const string input_node = "Func/b/input/_0"; + const string output_node = "Func/b/output/_1"; + const string output_control_node = "Func/b/output_control_node/_2"; + + ExpandInlineFunctions(flr0_, g.get(), opts); + { + GraphDef expected = test::function::GDef( + {NDef("a", "_Arg", {}, {{"T", DT_FLOAT}, {"index", 0}}), + NDef(input_node, "Identity", {"a"}, {{"T", DT_FLOAT}}), + NDef("b/add", "Add", {input_node, input_node}, {{"T", DT_FLOAT}}), + NDef("b/ret", "Mul", {input_node, input_node}, {{"T", DT_FLOAT}}), + NDef(output_node, "Identity", {"b/ret"}, {{"T", DT_FLOAT}}), + NDef(output_control_node, "NoOp", {"^b/add"}, {}), + NDef("b", "IdentityN", {output_node, "^" + output_control_node}, + {{"T", DataTypeSlice{DT_FLOAT}}})}, + {func}); + + GraphDef actual; + g->ToGraphDef(&actual); + TF_EXPECT_GRAPH_EQ(expected, actual); + } +} + TEST_F(FunctionLibraryRuntimeTest, PruneBody) { auto T = DT_INT32; FunctionDef stateful_func = FDH::Define( diff --git a/tensorflow/core/common_runtime/lower_if_op.cc b/tensorflow/core/common_runtime/lower_if_op.cc index 0cc876bd527..d288f21eded 100644 --- a/tensorflow/core/common_runtime/lower_if_op.cc +++ b/tensorflow/core/common_runtime/lower_if_op.cc @@ -147,11 +147,21 @@ string CondBuilder::NewName(const string& infix) { Status CondBuilder::AddInput(Node* src, int src_output) { Node* input; NodeDebugInfo debug_info(*src); + // Colocate the Switch node with the `src` node. + // + // This is to avoid unnecessary Host<->Device copies between src and the + // Switch node. This aligns with the implementation of legacy tf.cond in + // control_flow_ops.py. The legacy impl colocates the Switch with the + // input tensor which resets the device stack and forces the Switch to have + // the same device as the input node (if set) and sets the colocation _class + // attr. It also ignores the existing colocation constraints on the input node + // using colocate_with(ignore_existing=True). TF_RETURN_IF_ERROR(NodeBuilder(NewName(src->name()), "Switch", graph_->op_registry(), &debug_info) .Input(src, src_output) .Input(pred_) - .Device(if_op_->requested_device()) + .Device(src->requested_device()) + .Attr("_class", {src->name()}) .Finalize(graph_, &input)); then_call_builder_.Input(input, kThenBranch); else_call_builder_.Input(input, kElseBranch); diff --git a/tensorflow/core/common_runtime/placer.cc b/tensorflow/core/common_runtime/placer.cc index 2ea1b6d82d6..2fd8c64d843 100644 --- a/tensorflow/core/common_runtime/placer.cc +++ b/tensorflow/core/common_runtime/placer.cc @@ -102,7 +102,7 @@ Status Placer::Run() { } if (VLOG_IS_ON(3)) { - DumpGraphToFile("placer_input", *graph_, nullptr, "/tmp"); + DumpGraphToFile("placer_input", *graph_, nullptr); for (const Node* node : graph_->op_nodes()) { VLOG(3) << " " << node->name() << ": requested: '" << node->requested_device() << "' assigned: '" @@ -226,7 +226,7 @@ Status Placer::Run() { } if (VLOG_IS_ON(3)) { - DumpGraphToFile("placer_output", *graph_, nullptr, "/tmp"); + DumpGraphToFile("placer_output", *graph_, nullptr); } return Status::OK(); } diff --git a/tensorflow/core/grappler/costs/graph_properties.cc b/tensorflow/core/grappler/costs/graph_properties.cc index 5e974ab5609..e4136273402 100644 --- a/tensorflow/core/grappler/costs/graph_properties.cc +++ b/tensorflow/core/grappler/costs/graph_properties.cc @@ -686,7 +686,7 @@ class SymbolicShapeRefiner { // Perform inference on function body. GraphProperties gp(grappler_function_item); - TF_RETURN_IF_ERROR(gp.InferStatically(true)); + TF_RETURN_IF_ERROR(gp.InferStatically(true, aggressive_shape_inference_)); // Add return nodes for output shapes. int output = 0; diff --git a/tensorflow/core/grappler/costs/graph_properties_test.cc b/tensorflow/core/grappler/costs/graph_properties_test.cc index 6c37d2418ae..a63abed09e1 100644 --- a/tensorflow/core/grappler/costs/graph_properties_test.cc +++ b/tensorflow/core/grappler/costs/graph_properties_test.cc @@ -1204,6 +1204,61 @@ TEST_F(GraphPropertiesTest, FunctionReturnTensorValue) { properties.GetInputProperties("MyFunc")[0].value()); } +TEST_F(GraphPropertiesTest, ArithmeticFunctionReturnTensorValue) { + FunctionDefLibrary library; + // Function that adds two input values. + *library.add_function() = FunctionDefHelper::Create( + "MyFunc", // Name + {"x: int32", "y: int32"}, // Inputs + {"out: int32"}, // Outputs + {}, // Attrs + {{{"a"}, "Add", {"x", "y"}, {{"T", DataType::DT_INT32}}}}, // Nodes + {{"out", "a:z:0"}}); // Returns + tensorflow::Scope s = tensorflow::Scope::NewRootScope(); + TF_CHECK_OK(s.graph()->AddFunctionLibrary(library)); + + Output shape = ops::Const(s.WithOpName("shape"), {5, 7}, {2}); + auto _shape = tensorflow::ops::AsNodeOut(s, shape); + auto builder = + tensorflow::NodeBuilder("MyFunc", "MyFunc", s.graph()->op_registry()); + tensorflow::Node* func_op; + TF_CHECK_OK( + builder.Input(_shape).Input(_shape).Finalize(s.graph(), &func_op)); + + GrapplerItem item; + TF_CHECK_OK(s.ToGraphDef(&item.graph)); + { + GraphProperties properties(item); + // Without aggressive_shape_inference, the internal function does not + // evaluate output value. + TF_CHECK_OK(properties.InferStatically( + /*assume_valid_feeds=*/true, + /*aggressive_shape_inference=*/false)); + const auto out_props = properties.GetOutputProperties("MyFunc"); + const OpInfo::TensorProperties out_prop0 = out_props[0]; + EXPECT_EQ("int32: [2]", PropToString(out_prop0)); + EXPECT_FALSE(out_prop0.has_value()); + } + + { + GraphProperties properties(item); + // With aggressive_shape_inference, output value is evaluated. + TF_CHECK_OK(properties.InferStatically( + /*assume_valid_feeds=*/true, + /*aggressive_shape_inference=*/true)); + const auto out_props = properties.GetOutputProperties("MyFunc"); + const OpInfo::TensorProperties out_prop0 = out_props[0]; + EXPECT_EQ("int32: [2]", PropToString(out_prop0)); + EXPECT_TRUE(out_prop0.has_value()); + + ExpectTensorValues({10, 14}, out_prop0.value()); + ExpectTensorValues({5, 7}, + properties.GetInputProperties("MyFunc")[0].value()); + ExpectTensorValues({5, 7}, + properties.GetInputProperties("MyFunc")[1].value()); + } +} + TEST_F(GraphPropertiesTest, FunctionWithScalarInput) { // Create graph with a function that takes a scalar value so that we use // Placeholder with scalar as for input to the function shape inference. diff --git a/tensorflow/core/grappler/costs/op_level_cost_estimator.cc b/tensorflow/core/grappler/costs/op_level_cost_estimator.cc index e4838bb2b06..bf535be18d8 100644 --- a/tensorflow/core/grappler/costs/op_level_cost_estimator.cc +++ b/tensorflow/core/grappler/costs/op_level_cost_estimator.cc @@ -39,6 +39,7 @@ constexpr char kDepthwiseConv2dNativeBackpropInput[] = "DepthwiseConv2dNativeBackpropInput"; constexpr char kMatMul[] = "MatMul"; constexpr char kSparseMatMul[] = "SparseMatMul"; +constexpr char kSparseTensorDenseMatMul[] = "SparseTensorDenseMatMul"; constexpr char kPlaceholder[] = "Placeholder"; constexpr char kIdentity[] = "Identity"; constexpr char kIdentityN[] = "IdentityN"; @@ -243,6 +244,8 @@ OpLevelCostEstimator::OpLevelCostEstimator() { wrap(&OpLevelCostEstimator::PredictConv2DBackpropInput)}, {kMatMul, wrap(&OpLevelCostEstimator::PredictMatMul)}, {kSparseMatMul, wrap(&OpLevelCostEstimator::PredictMatMul)}, + {kSparseTensorDenseMatMul, + wrap(&OpLevelCostEstimator::PredictSparseTensorDenseMatMul)}, {kBatchMatMul, wrap(&OpLevelCostEstimator::PredictBatchMatMul)}, {kQuantizedMatMul, wrap(&OpLevelCostEstimator::PredictMatMul)}, {kQuantizedMatMulV2, wrap(&OpLevelCostEstimator::PredictMatMul)}, @@ -1228,6 +1231,49 @@ Costs OpLevelCostEstimator::PredictMatMul(const OpContext& op_context) const { return costs; } +Costs OpLevelCostEstimator::PredictSparseTensorDenseMatMul( + const OpContext& op_context) const { + const auto& op_info = op_context.op_info; + bool found_unknown_shapes = false; + // input[0]: indices in sparse matrix a + // input[1]: values in sparse matrix a + // input[2]: shape of matrix a + // input[3]: matrix b + // See + // https://github.com/tensorflow/tensorflow/blob/9a43dfeac5/tensorflow/core/ops/sparse_ops.cc#L85 + int64 num_elems_in_a = + CalculateTensorElementCount(op_info.inputs(1), &found_unknown_shapes); + auto b_matrix = op_info.inputs(3); + auto b_matrix_shape = + MaybeGetMinimumShape(b_matrix.shape(), 2, &found_unknown_shapes); + int64 n_dim = b_matrix_shape.dim(1).size(); + + // Each element in A is multiplied and added with an element from each column + // in b. + const int64 op_count = kOpsPerMac * num_elems_in_a * n_dim; + + int64 a_indices_input_size = + CalculateTensorSize(op_info.inputs(0), &found_unknown_shapes); + int64 a_values_input_size = + CalculateTensorSize(op_info.inputs(1), &found_unknown_shapes); + int64 a_shape_input_size = + CalculateTensorSize(op_info.inputs(2), &found_unknown_shapes); + int64 b_input_size = + num_elems_in_a * n_dim * DataTypeSize(BaseType(b_matrix.dtype())); + double input_size = a_indices_input_size + a_values_input_size + + a_shape_input_size + b_input_size; + + double output_size = CalculateOutputSize(op_info, &found_unknown_shapes); + + auto costs = + PredictOpCountBasedCost(op_count, input_size, output_size, op_info); + costs.inaccurate = found_unknown_shapes; + costs.num_ops_with_unknown_shapes = found_unknown_shapes; + costs.max_memory = output_size; + + return costs; +} + Costs OpLevelCostEstimator::PredictNoOp(const OpContext& op_context) const { const auto& op_info = op_context.op_info; VLOG(1) << "Op:" << op_info.op() << " Execution Time 0 (ns)"; diff --git a/tensorflow/core/grappler/costs/op_level_cost_estimator.h b/tensorflow/core/grappler/costs/op_level_cost_estimator.h index ace8fb218c7..e569320bf7e 100644 --- a/tensorflow/core/grappler/costs/op_level_cost_estimator.h +++ b/tensorflow/core/grappler/costs/op_level_cost_estimator.h @@ -132,6 +132,7 @@ class OpLevelCostEstimator { Costs PredictConv2DBackpropFilter(const OpContext& op_context) const; Costs PredictFusedConv2DBiasActivation(const OpContext& op_context) const; Costs PredictMatMul(const OpContext& op_context) const; + Costs PredictSparseTensorDenseMatMul(const OpContext& op_context) const; Costs PredictNoOp(const OpContext& op_context) const; Costs PredictIdentity(const OpContext& op_context) const; Costs PredictVariable(const OpContext& op_context) const; diff --git a/tensorflow/core/grappler/costs/op_level_cost_estimator_test.cc b/tensorflow/core/grappler/costs/op_level_cost_estimator_test.cc index 04c6ada2bf6..f6c4f2ae519 100644 --- a/tensorflow/core/grappler/costs/op_level_cost_estimator_test.cc +++ b/tensorflow/core/grappler/costs/op_level_cost_estimator_test.cc @@ -119,6 +119,22 @@ OpContext DescribeBatchMatMul(const std::vector& dims_a, return op_context; } +// Returns an OpInfo for a SparseTensorDenseMatMul +OpContext DescribeSparseTensorDenseMatMul(const int nnz_a, + const std::vector& dims_b, + const std::vector& dims_out) { + OpContext op_context; + SetCpuDevice(&op_context.op_info); + op_context.op_info.set_op("SparseTensorDenseMatMul"); + + DescribeArbitraryRankInput({nnz_a, 2}, DT_INT64, &op_context.op_info); + DescribeArbitraryRankInput({nnz_a}, DT_FLOAT, &op_context.op_info); + DescribeArbitraryRankInput({2}, DT_INT64, &op_context.op_info); + DescribeArbitraryRankInput(dims_b, DT_FLOAT, &op_context.op_info); + DescribeArbitraryRankOutput(dims_out, DT_FLOAT, &op_context.op_info); + return op_context; +} + // Wrangles the minimum number of proto fields to set up a 1D Tensor for cost // estimation purposes. void DescribeTensor1D(int dim0, OpInfo::TensorProperties* tensor) { @@ -854,6 +870,58 @@ TEST_F(OpLevelCostEstimatorTest, BatchMatMul) { EXPECT_NE(matmul_inaccurate, batch_matmul_inaccurate); } +TEST_F(OpLevelCostEstimatorTest, SparseTensorDenseMatMul) { + // Unknown shape cases + { + auto cost = + PredictCosts(DescribeSparseTensorDenseMatMul(-1, {1, 1}, {1, 1})); + EXPECT_EQ(1, cost.num_ops_total); + EXPECT_TRUE(cost.inaccurate); + EXPECT_EQ(1, cost.num_ops_with_unknown_shapes); + } + { + auto cost = + PredictCosts(DescribeSparseTensorDenseMatMul(1, {-1, 1}, {1, 1})); + EXPECT_EQ(1, cost.num_ops_total); + EXPECT_TRUE(cost.inaccurate); + EXPECT_EQ(1, cost.num_ops_with_unknown_shapes); + } + { + auto cost = + PredictCosts(DescribeSparseTensorDenseMatMul(1, {1, -1}, {1, -1})); + EXPECT_EQ(1, cost.num_ops_total); + EXPECT_TRUE(cost.inaccurate); + EXPECT_EQ(1, cost.num_ops_with_unknown_shapes); + } + { + auto cost = + PredictCosts(DescribeSparseTensorDenseMatMul(1, {1, 1}, {-1, 1})); + EXPECT_EQ(1, cost.num_ops_total); + EXPECT_TRUE(cost.inaccurate); + EXPECT_EQ(1, cost.num_ops_with_unknown_shapes); + } + // Known shape cases + { + auto cost = PredictCosts( + DescribeSparseTensorDenseMatMul(10, {1000, 100}, {50, 100})); + EXPECT_EQ(1, cost.num_ops_total); + EXPECT_FALSE(cost.inaccurate); + EXPECT_EQ(0, cost.num_ops_with_unknown_shapes); + EXPECT_EQ(Costs::Duration(200), cost.compute_time); + EXPECT_EQ(Costs::Duration(2422), cost.memory_time); + } + { + // Same cost as above case because cost does not depend on k_dim + auto cost = PredictCosts( + DescribeSparseTensorDenseMatMul(10, {100000, 100}, {50, 100})); + EXPECT_EQ(1, cost.num_ops_total); + EXPECT_FALSE(cost.inaccurate); + EXPECT_EQ(0, cost.num_ops_with_unknown_shapes); + EXPECT_EQ(Costs::Duration(200), cost.compute_time); + EXPECT_EQ(Costs::Duration(2422), cost.memory_time); + } +} + void ExpectTensorShape(const std::vector& expected, const TensorShapeProto& tensor_shape_proto) { TensorShape tensor_shape_expected(expected); diff --git a/tensorflow/core/grappler/graph_topology_view.h b/tensorflow/core/grappler/graph_topology_view.h index d32e51928e0..cdb2eeb92a9 100644 --- a/tensorflow/core/grappler/graph_topology_view.h +++ b/tensorflow/core/grappler/graph_topology_view.h @@ -38,7 +38,7 @@ namespace grappler { // b = Placeholder(..) // c = AddN([a, a, b]) // -// GraphView edges: [a:0 -> c:0, a:0 -> c:1, b:0 -> c:3] +// GraphView edges: [a:0 -> c:0, a:0 -> c:1, b:0 -> c:2] // GraphTopologyView edges: [a -> c, b -> c] // // GraphView is used for exploring single node fanins and fanouts, and diff --git a/tensorflow/core/kernels/conv_ops_fused_impl.h b/tensorflow/core/kernels/conv_ops_fused_impl.h index 8e6a0652298..f207af65565 100644 --- a/tensorflow/core/kernels/conv_ops_fused_impl.h +++ b/tensorflow/core/kernels/conv_ops_fused_impl.h @@ -499,12 +499,12 @@ inline int64 ConvolveScratchSize() { // convolution on the stream) and parameters, by running all possible // algorithms and measuring execution time. // TODO(ezhulenev): Move it to conv_ops_gpu.h and share with conv_ops.cc. -template -Status FindBestConvolveAlgorithm( - const FusedConvParameters& params, const ConvLaunch launch, - OpKernelContext* context, se::Stream* stream, - se::dnn::AlgorithmConfig* algorithm_config, - std::vector* results) { +template +Status FindBestConvolveAlgorithm(const FusedConvParameters& params, + const ConvLaunch launch, + OpKernelContext* context, se::Stream* stream, + const LogFunc& log, + se::dnn::AlgorithmConfig* algorithm_config) { // Check if we already have an algorithm selected for the given parameters. if (AutoTuneFusedConv::GetInstance()->Find(params, algorithm_config)) { return Status::OK(); @@ -521,6 +521,7 @@ Status FindBestConvolveAlgorithm( "see if a warning log message was printed above."); } + std::vector results; for (auto profile_algorithm : algorithms) { DnnScratchAllocator scratch_allocator(ConvolveScratchSize(), context); se::dnn::ProfileResult profile_result; @@ -530,8 +531,8 @@ Status FindBestConvolveAlgorithm( &profile_result); if (cudnn_launch_status && profile_result.is_valid()) { - results->emplace_back(); - auto& result = results->back(); + results.emplace_back(); + auto& result = results.back(); result.mutable_conv()->set_algorithm(profile_algorithm.algo_id()); result.mutable_conv()->set_tensor_ops_enabled( profile_algorithm.tensor_ops_enabled()); @@ -542,7 +543,9 @@ Status FindBestConvolveAlgorithm( absl::Milliseconds(profile_result.elapsed_time_in_ms())); } } - TF_RETURN_IF_ERROR(BestCudnnConvAlgorithm(*results, algorithm_config)); + // Only log on an AutoTuneFusedConv cache miss. + log(results); + TF_RETURN_IF_ERROR(BestCudnnConvAlgorithm(results, algorithm_config)); AutoTuneFusedConv::GetInstance()->Insert(params, *algorithm_config); return Status::OK(); } @@ -789,13 +792,14 @@ struct LaunchFusedConv2DOp { se::dnn::AlgorithmConfig algorithm_config; if (cudnn_use_autotune) { - std::vector results; - auto status = - FindBestConvolveAlgorithm(conv_parameters, launch, context, stream, - &algorithm_config, &results); - LogFusedConvAutotuneResults(context->op_kernel().def(), input, - transformed_filter, transformed_output, bias, - nullptr, stream->parent(), results); + auto status = FindBestConvolveAlgorithm( + conv_parameters, launch, context, stream, + [&](absl::Span results) { + LogFusedConvAutotuneResults( + context->op_kernel().def(), input, transformed_filter, + transformed_output, bias, nullptr, stream->parent(), results); + }, + &algorithm_config); OP_REQUIRES_OK(context, status); } diff --git a/tensorflow/core/kernels/cwise_op_div.cc b/tensorflow/core/kernels/cwise_op_div.cc index 313d976e2c6..08fd228cd6d 100644 --- a/tensorflow/core/kernels/cwise_op_div.cc +++ b/tensorflow/core/kernels/cwise_op_div.cc @@ -24,7 +24,8 @@ REGISTER5(BinaryOp, CPU, "TruncateDiv", functor::safe_div, uint8, uint16, int16, int32, int64); REGISTER6(BinaryOp, CPU, "RealDiv", functor::div, float, Eigen::half, double, bfloat16, complex64, complex128); -REGISTER2(BinaryOp, CPU, "DivNoNan", functor::div_no_nan, float, double); +REGISTER5(BinaryOp, CPU, "DivNoNan", functor::div_no_nan, Eigen::half, float, + double, complex64, complex128); #if GOOGLE_CUDA REGISTER9(BinaryOp, GPU, "Div", functor::div, float, Eigen::half, double, uint8, diff --git a/tensorflow/core/kernels/cwise_op_gpu_tan.cu.cc b/tensorflow/core/kernels/cwise_op_gpu_tan.cu.cc index dc66676c577..e09f12d4124 100644 --- a/tensorflow/core/kernels/cwise_op_gpu_tan.cu.cc +++ b/tensorflow/core/kernels/cwise_op_gpu_tan.cu.cc @@ -19,7 +19,7 @@ limitations under the License. namespace tensorflow { namespace functor { -DEFINE_UNARY2(tan, float, double); +DEFINE_UNARY3(tan, Eigen::half, float, double); } // namespace functor } // namespace tensorflow diff --git a/tensorflow/core/kernels/cwise_op_mul_1.cc b/tensorflow/core/kernels/cwise_op_mul_1.cc index 93d6e38f54e..13c89aae4ce 100644 --- a/tensorflow/core/kernels/cwise_op_mul_1.cc +++ b/tensorflow/core/kernels/cwise_op_mul_1.cc @@ -19,7 +19,8 @@ namespace tensorflow { REGISTER6(BinaryOp, CPU, "Mul", functor::mul, float, Eigen::half, double, uint8, int32, bfloat16); -REGISTER2(BinaryOp, CPU, "MulNoNan", functor::mul_no_nan, float, double); +REGISTER5(BinaryOp, CPU, "MulNoNan", functor::mul_no_nan, Eigen::half, float, + double, complex64, complex128); #if defined(__ANDROID_TYPES_SLIM__) // We only register the first type when we have multi-argument calls in the diff --git a/tensorflow/core/kernels/cwise_op_tan.cc b/tensorflow/core/kernels/cwise_op_tan.cc index 90762fb1b0c..4338d75219e 100644 --- a/tensorflow/core/kernels/cwise_op_tan.cc +++ b/tensorflow/core/kernels/cwise_op_tan.cc @@ -16,11 +16,11 @@ limitations under the License. #include "tensorflow/core/kernels/cwise_ops_common.h" namespace tensorflow { -REGISTER4(UnaryOp, CPU, "Tan", functor::tan, float, double, complex64, - complex128); +REGISTER5(UnaryOp, CPU, "Tan", functor::tan, Eigen::half, float, double, + complex64, complex128); #if GOOGLE_CUDA -REGISTER2(UnaryOp, GPU, "Tan", functor::tan, float, double); +REGISTER3(UnaryOp, GPU, "Tan", functor::tan, Eigen::half, float, double); #endif #ifdef TENSORFLOW_USE_SYCL diff --git a/tensorflow/core/kernels/data/BUILD b/tensorflow/core/kernels/data/BUILD index 9316c9a8550..e86c3b0c1bc 100644 --- a/tensorflow/core/kernels/data/BUILD +++ b/tensorflow/core/kernels/data/BUILD @@ -540,12 +540,32 @@ tf_kernel_library( name = "tensor_dataset_op", srcs = ["tensor_dataset_op.cc"], deps = [ + ":dataset_utils", "//tensorflow/core:dataset_ops_op_lib", "//tensorflow/core:framework", "//tensorflow/core:graph", ], ) +tf_cc_test( + name = "tensor_dataset_op_test", + size = "small", + srcs = ["tensor_dataset_op_test.cc"], + deps = [ + ":dataset_test_base", + ":dataset_utils", + ":iterator_ops", + ":tensor_dataset_op", + "//tensorflow/core:core_cpu_internal", + "//tensorflow/core:dataset_ops_op_lib", + "//tensorflow/core:framework", + "//tensorflow/core:lib_internal", + "//tensorflow/core:test", + "//tensorflow/core:test_main", + "//tensorflow/core:testlib", + ], +) + tf_kernel_library( name = "tensor_slice_dataset_op", srcs = ["tensor_slice_dataset_op.cc"], diff --git a/tensorflow/core/kernels/data/experimental/choose_fastest_branch_dataset_op.cc b/tensorflow/core/kernels/data/experimental/choose_fastest_branch_dataset_op.cc index f8eabd75897..eb1c35411ff 100644 --- a/tensorflow/core/kernels/data/experimental/choose_fastest_branch_dataset_op.cc +++ b/tensorflow/core/kernels/data/experimental/choose_fastest_branch_dataset_op.cc @@ -446,18 +446,26 @@ class ChooseFastestBranchDatasetOp : public UnaryDatasetOpKernel { return s; } + // Select the fastest input to use based on the histograms of timings + // of the completed iterations. The input with the best 90th percentile + // iteration time is selected. void SelectFastestInputIndex() EXCLUSIVE_LOCKS_REQUIRED(mu_) { fastest_index_ = 0; + VLOG(2) << "90.0 percentile iteration time:"; double best_percentile = histograms_[0].Percentile(kPercentile); + VLOG(2) << "Branch 0: " << best_percentile; for (size_t i = 1, num_inputs = histograms_.size(); i < num_inputs; ++i) { double percentile = histograms_[i].Percentile(kPercentile); + VLOG(2) << "Branch " << i << ": " << percentile; if (percentile <= best_percentile) { best_percentile = percentile; fastest_index_ = i; } } + VLOG(1) << "Selecting index " << fastest_index_ + << " as the fastest index."; } Status MakeCurrentIterator(IteratorContext* ctx, int64 branch_index, diff --git a/tensorflow/core/kernels/data/experimental/choose_fastest_dataset_op.cc b/tensorflow/core/kernels/data/experimental/choose_fastest_dataset_op.cc index e736b46319d..1ae86c1dbfa 100644 --- a/tensorflow/core/kernels/data/experimental/choose_fastest_dataset_op.cc +++ b/tensorflow/core/kernels/data/experimental/choose_fastest_dataset_op.cc @@ -325,15 +325,20 @@ class ChooseFastestDatasetOp : public DatasetOpKernel { void SelectFastestInputIndex() EXCLUSIVE_LOCKS_REQUIRED(mu_) { fastest_index_ = 0; + VLOG(2) << "90.0 percentile iteration time:"; double best_percentile = histograms_[0].Percentile(kPercentile); + VLOG(2) << "Branch 0: " << best_percentile; for (size_t i = 1, num_inputs = histograms_.size(); i < num_inputs; ++i) { double percentile = histograms_[i].Percentile(kPercentile); + VLOG(2) << "Branch " << i << ": " << percentile; if (percentile <= best_percentile) { best_percentile = percentile; fastest_index_ = i; } } + VLOG(1) << "Selecting index " << fastest_index_ + << " as the fastest index."; fastest_input_impl_ = std::move(input_impls_[fastest_index_]); input_impls_.clear(); // Delete the unused iterators. diff --git a/tensorflow/core/kernels/data/tensor_dataset_op.cc b/tensorflow/core/kernels/data/tensor_dataset_op.cc index a44dbd0d4d4..04698751f80 100644 --- a/tensorflow/core/kernels/data/tensor_dataset_op.cc +++ b/tensorflow/core/kernels/data/tensor_dataset_op.cc @@ -16,6 +16,7 @@ limitations under the License. #include "tensorflow/core/framework/partial_tensor_shape.h" #include "tensorflow/core/framework/tensor.h" #include "tensorflow/core/graph/graph.h" +#include "tensorflow/core/kernels/data/dataset_utils.h" namespace tensorflow { namespace data { @@ -26,15 +27,20 @@ namespace { class TensorDatasetOp : public DatasetOpKernel { public: - explicit TensorDatasetOp(OpKernelConstruction* ctx) : DatasetOpKernel(ctx) {} + explicit TensorDatasetOp(OpKernelConstruction* ctx) : DatasetOpKernel(ctx) { + OP_REQUIRES_OK(ctx, ctx->GetAttr("Toutput_types", &output_types_)); + OP_REQUIRES_OK(ctx, ctx->GetAttr("output_shapes", &output_shapes_)); + } void MakeDataset(OpKernelContext* ctx, DatasetBase** output) override { OpInputList inputs; OP_REQUIRES_OK(ctx, ctx->input_list("components", &inputs)); - // TODO(mrry): Validate that the shapes of the "components" tensors match - // the "shapes" attr.; std::vector components(inputs.begin(), inputs.end()); *output = new Dataset(ctx, std::move(components)); + OP_REQUIRES_OK(ctx, + VerifyTypesMatch((*output)->output_dtypes(), output_types_)); + OP_REQUIRES_OK(ctx, VerifyShapesCompatible((*output)->output_shapes(), + output_shapes_)); } private: @@ -137,6 +143,9 @@ class TensorDatasetOp : public DatasetOpKernel { DataTypeVector dtypes_; std::vector shapes_; }; + + DataTypeVector output_types_; + std::vector output_shapes_; }; REGISTER_KERNEL_BUILDER(Name("TensorDataset").Device(DEVICE_CPU), diff --git a/tensorflow/core/kernels/data/tensor_dataset_op_test.cc b/tensorflow/core/kernels/data/tensor_dataset_op_test.cc new file mode 100644 index 00000000000..9586ded2cb0 --- /dev/null +++ b/tensorflow/core/kernels/data/tensor_dataset_op_test.cc @@ -0,0 +1,535 @@ +/* Copyright 2019 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 "tensorflow/core/framework/dataset.h" +#include "tensorflow/core/framework/fake_input.h" +#include "tensorflow/core/framework/function_testlib.h" +#include "tensorflow/core/framework/node_def_builder.h" +#include "tensorflow/core/framework/partial_tensor_shape.h" +#include "tensorflow/core/framework/variant.h" +#include "tensorflow/core/framework/variant_tensor_data.h" +#include "tensorflow/core/kernels/data/dataset_test_base.h" +#include "tensorflow/core/kernels/data/dataset_utils.h" +#include "tensorflow/core/kernels/data/iterator_ops.h" +#include "tensorflow/core/kernels/ops_testutil.h" +#include "tensorflow/core/platform/test.h" +#include "tensorflow/core/util/ptr_util.h" + +namespace tensorflow { +namespace data { +namespace { + +constexpr char kNodeName[] = "tensor_dataset"; +constexpr char kOpName[] = "TensorDataset"; + +class TensorDatasetOpTest : public DatasetOpsTestBase { + protected: + // Creates a new TensorDataset op kernel. + Status CreateTensorDatasetKernel( + DataTypeVector dtypes, std::vector shapes, + std::unique_ptr *tensor_dataset_kernel) { + std::vector components; + components.reserve(dtypes.size()); + for (int i = 0; i < dtypes.size(); i++) { + components.emplace_back(strings::StrCat("component_", i)); + } + node_def_ = test::function::NDef( + kNodeName, kOpName, components, + {{"Toutput_types", dtypes}, {"output_shapes", shapes}}); + TF_RETURN_IF_ERROR(CreateOpKernel(node_def_, tensor_dataset_kernel)); + return Status::OK(); + } + + // Creates a new TensorDataset op kernel context. + Status CreateTensorDatasetContext(OpKernel *const tensor_dataset_kernel, + gtl::InlinedVector *inputs, + std::unique_ptr *context) { + TF_RETURN_IF_ERROR(CheckOpKernelInput(*tensor_dataset_kernel, *inputs)); + TF_RETURN_IF_ERROR( + CreateOpKernelContext(tensor_dataset_kernel, inputs, context)); + return Status::OK(); + } + + private: + NodeDef node_def_; +}; + +struct TestCase { + std::vector components; + std::vector expected_outputs; + DataTypeVector expected_output_dtypes; + std::vector expected_output_shapes; + int64 expected_cardinality; + std::vector breakpoints; +}; + +// Test case 1: test a dataset that represents a single tuple of plain tensors. +TestCase PlainTensorsTestCase() { + return { + /*components*/ + {DatasetOpsTestBase::CreateTensor(TensorShape({}), {1}), + DatasetOpsTestBase::CreateTensor(TensorShape({1, 3}), {1, 2, 3}), + DatasetOpsTestBase::CreateTensor(TensorShape({}), {37.0}), + DatasetOpsTestBase::CreateTensor(TensorShape({1, 2}), + {"a", "b"})}, + /*expected_outputs*/ + {DatasetOpsTestBase::CreateTensor(TensorShape({}), {1}), + DatasetOpsTestBase::CreateTensor(TensorShape({1, 3}), {1, 2, 3}), + DatasetOpsTestBase::CreateTensor(TensorShape({}), {37.0}), + DatasetOpsTestBase::CreateTensor(TensorShape({1, 2}), + {"a", "b"})}, + /*expected_output_dtypes*/ + {DT_INT64, DT_INT64, DT_DOUBLE, DT_STRING}, + /*expected_output_shapes*/ + {PartialTensorShape({}), PartialTensorShape({1, 3}), + PartialTensorShape({}), PartialTensorShape({1, 2})}, + /*expected_cardinality*/ 1, + /*breakpoints*/ {0, 1, 2}}; +} + +// Test case 2: test a dataset that represents a tuple of nested tensors. +TestCase NestedTensorsTestCase() { + return { + /*components*/ + {DatasetOpsTestBase::CreateTensor( + TensorShape({}), {DatasetOpsTestBase::CreateTensor( + TensorShape({2, 2}), {1.0, 2.0, 3.0, 4.0})}), + DatasetOpsTestBase::CreateTensor( + TensorShape({}), {DatasetOpsTestBase::CreateTensor( + TensorShape({1, 2}), {"a", "b"})}), + DatasetOpsTestBase::CreateTensor(TensorShape({1, 3}), {1, 2, 3})}, + /*expected_outputs*/ + {DatasetOpsTestBase::CreateTensor( + TensorShape({}), {DatasetOpsTestBase::CreateTensor( + TensorShape({2, 2}), {1.0, 2.0, 3.0, 4.0})}), + DatasetOpsTestBase::CreateTensor( + TensorShape({}), {DatasetOpsTestBase::CreateTensor( + TensorShape({1, 2}), {"a", "b"})}), + DatasetOpsTestBase::CreateTensor(TensorShape({1, 3}), {1, 2, 3})}, + /*expected_output_dtypes*/ + {DT_VARIANT, DT_VARIANT, DT_INT64}, + /*expected_output_shapes*/ + {PartialTensorShape({}), PartialTensorShape({}), + PartialTensorShape({1, 3})}, + /*expected_cardinality*/ 1, + /*breakpoints*/ {0, 1, 2}}; +} + +class ParametrizedTensorDatasetOpTest + : public TensorDatasetOpTest, + public ::testing::WithParamInterface {}; + +TEST_P(ParametrizedTensorDatasetOpTest, GetNext) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = GetParam(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + std::unique_ptr iterator_context; + TF_ASSERT_OK( + CreateIteratorContext(tensor_dataset_context.get(), &iterator_context)); + std::unique_ptr iterator; + TF_ASSERT_OK(tensor_dataset->MakeIterator(iterator_context.get(), "Iterator", + &iterator)); + bool end_of_sequence = false; + std::vector out_tensors; + while (!end_of_sequence) { + TF_EXPECT_OK(iterator->GetNext(iterator_context.get(), &out_tensors, + &end_of_sequence)); + } + EXPECT_EQ(out_tensors.size(), test_case.expected_outputs.size()); + for (int i = 0; i < out_tensors.size(); ++i) { + if (out_tensors[i].dtype() == DT_VARIANT) { + // Currently `ExpectEqual()` does not support the variant tensor + // yet, so we manually cast the variant to numeric/string tensor. + const Tensor *output = out_tensors[i].scalar()().get(); + const Tensor *expected_output = + test_case.expected_outputs[i].scalar()().get(); + TF_EXPECT_OK(ExpectEqual(*output, *expected_output)); + } else { + TF_EXPECT_OK(ExpectEqual(out_tensors[i], test_case.expected_outputs[i])); + } + } +} + +TEST_F(TensorDatasetOpTest, DatasetTypeString) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = PlainTensorsTestCase(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + EXPECT_EQ(tensor_dataset->type_string(), kOpName); +} + +TEST_F(TensorDatasetOpTest, DatasetNodeName) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = PlainTensorsTestCase(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + EXPECT_EQ(tensor_dataset->node_name(), kNodeName); +} + +TEST_F(TensorDatasetOpTest, DatasetOutputDtypes) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = PlainTensorsTestCase(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + EXPECT_EQ(tensor_dataset->output_dtypes(), test_case.expected_output_dtypes); +} + +TEST_F(TensorDatasetOpTest, DatasetOutputShapes) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = PlainTensorsTestCase(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + EXPECT_EQ(tensor_dataset->output_shapes().size(), + test_case.expected_output_shapes.size()); + for (int i = 0; i < test_case.expected_output_shapes.size(); i++) { + EXPECT_TRUE(test_case.expected_output_shapes[i].IsIdenticalTo( + tensor_dataset->output_shapes()[i])); + } +} + +TEST_F(TensorDatasetOpTest, Cardinality) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = PlainTensorsTestCase(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + EXPECT_EQ(tensor_dataset->Cardinality(), test_case.expected_cardinality); +} + +TEST_P(ParametrizedTensorDatasetOpTest, DatasetSave) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = GetParam(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + std::unique_ptr serialization_context; + TF_ASSERT_OK(CreateSerializationContext(&serialization_context)); + VariantTensorData data; + VariantTensorDataWriter writer(&data); + TF_ASSERT_OK(tensor_dataset->Save(serialization_context.get(), &writer)); + TF_ASSERT_OK(writer.Flush()); +} + +TEST_P(ParametrizedTensorDatasetOpTest, IteratorOutputDtypes) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = GetParam(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + std::unique_ptr iterator_context; + TF_ASSERT_OK( + CreateIteratorContext(tensor_dataset_context.get(), &iterator_context)); + std::unique_ptr iterator; + TF_ASSERT_OK(tensor_dataset->MakeIterator(iterator_context.get(), "Iterator", + &iterator)); + EXPECT_EQ(iterator->output_dtypes(), test_case.expected_output_dtypes); +} + +TEST_P(ParametrizedTensorDatasetOpTest, IteratorOutputShapes) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = GetParam(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + std::unique_ptr iterator_context; + TF_ASSERT_OK( + CreateIteratorContext(tensor_dataset_context.get(), &iterator_context)); + std::unique_ptr iterator; + TF_ASSERT_OK(tensor_dataset->MakeIterator(iterator_context.get(), "Iterator", + &iterator)); + + EXPECT_EQ(iterator->output_shapes().size(), + test_case.expected_output_shapes.size()); + for (int i = 0; i < test_case.expected_output_shapes.size(); ++i) { + EXPECT_TRUE(test_case.expected_output_shapes[i].IsIdenticalTo( + iterator->output_shapes()[i])); + } +} + +TEST_F(TensorDatasetOpTest, IteratorOutputPrefix) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = PlainTensorsTestCase(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + std::unique_ptr iterator_context; + TF_ASSERT_OK( + CreateIteratorContext(tensor_dataset_context.get(), &iterator_context)); + std::unique_ptr iterator; + TF_ASSERT_OK(tensor_dataset->MakeIterator(iterator_context.get(), "Iterator", + &iterator)); + + EXPECT_EQ(iterator->prefix(), "Iterator::FromTensor"); +} + +TEST_P(ParametrizedTensorDatasetOpTest, Roundtrip) { + int thread_num = 2, cpu_num = 2; + TF_ASSERT_OK(InitThreadPool(thread_num)); + TF_ASSERT_OK(InitFunctionLibraryRuntime({}, cpu_num)); + + const TestCase &test_case = GetParam(); + std::vector components = test_case.components; + gtl::InlinedVector inputs; + for (auto &component : components) { + inputs.push_back(&component); + } + std::unique_ptr tensor_dataset_kernel; + TF_ASSERT_OK(CreateTensorDatasetKernel(test_case.expected_output_dtypes, + test_case.expected_output_shapes, + &tensor_dataset_kernel)); + std::unique_ptr tensor_dataset_context; + TF_ASSERT_OK(CreateTensorDatasetContext(tensor_dataset_kernel.get(), &inputs, + &tensor_dataset_context)); + DatasetBase *tensor_dataset; + TF_ASSERT_OK(CreateDataset(tensor_dataset_kernel.get(), + tensor_dataset_context.get(), &tensor_dataset)); + core::ScopedUnref scoped_unref(tensor_dataset); + + std::unique_ptr iterator_ctx; + TF_ASSERT_OK( + CreateIteratorContext(tensor_dataset_context.get(), &iterator_ctx)); + std::unique_ptr iterator; + TF_ASSERT_OK( + tensor_dataset->MakeIterator(iterator_ctx.get(), "Iterator", &iterator)); + + std::unique_ptr serialization_ctx; + TF_ASSERT_OK(CreateSerializationContext(&serialization_ctx)); + bool end_of_sequence = false; + std::vector out_tensors; + int cur_iteration = 0; + const std::vector &breakpoints = test_case.breakpoints; + for (int breakpoint : breakpoints) { + VariantTensorData data; + VariantTensorDataWriter writer(&data); + TF_EXPECT_OK(iterator->Save(serialization_ctx.get(), &writer)); + TF_EXPECT_OK(writer.Flush()); + VariantTensorDataReader reader(&data); + TF_EXPECT_OK(iterator->Restore(iterator_ctx.get(), &reader)); + + while (cur_iteration <= breakpoint) { + TF_EXPECT_OK(iterator->GetNext(iterator_ctx.get(), &out_tensors, + &end_of_sequence)); + if (!end_of_sequence) { + EXPECT_EQ(out_tensors.size(), test_case.expected_outputs.size()); + for (int i = 0; i < out_tensors.size(); ++i) { + if (out_tensors[i].dtype() == DT_VARIANT) { + // Currently `ExpectEqual()` does not support the variant tensor + // yet, so we manually cast the variant to numeric/string tensor. + const Tensor *output = + out_tensors[i].scalar()().get(); + const Tensor *expected_output = + test_case.expected_outputs[i].scalar()().get(); + TF_EXPECT_OK(ExpectEqual(*output, *expected_output)); + } else { + TF_EXPECT_OK( + ExpectEqual(out_tensors[i], test_case.expected_outputs[i])); + } + } + } + cur_iteration++; + } + + if (breakpoint >= test_case.expected_cardinality) { + EXPECT_TRUE(end_of_sequence); + } else { + EXPECT_FALSE(end_of_sequence); + } + } +} + +INSTANTIATE_TEST_CASE_P( + TensorDatasetOpTest, ParametrizedTensorDatasetOpTest, + ::testing::ValuesIn(std::vector({PlainTensorsTestCase(), + NestedTensorsTestCase()}))); + +} // namespace +} // namespace data +} // namespace tensorflow diff --git a/tensorflow/core/kernels/scale_and_translate_op.cc b/tensorflow/core/kernels/scale_and_translate_op.cc index 92b458f2e75..fff457e55c7 100644 --- a/tensorflow/core/kernels/scale_and_translate_op.cc +++ b/tensorflow/core/kernels/scale_and_translate_op.cc @@ -82,10 +82,8 @@ Status ComputeSpansCore(OpKernelContext* context, const Kernel& kernel, const float col_f = x + 0.5f; const float sample_f = col_f * inv_scale + inv_translate; - // Don't sample when the sampling *kernel* is completely outside the - // source image. - if (sample_f < 0 - kernel.Radius() * kernel_scale || - sample_f > input_size + kernel.Radius() * kernel_scale) { + // Don't sample when the sampling location is outside the source image. + if (sample_f < 0 || sample_f > input_size) { // Add an empty span. starts_vec(x) = 0; continue; @@ -169,11 +167,15 @@ Status ComputeGradSpansCore(OpKernelContext* context, const Spans& spans, auto grad_weights_vec = grad_spans->weights.vec(); grad_weights_vec.setZero(); for (int input_index = 0; input_index < forward_input_size; ++input_index) { - const int start_span = grad_components[input_index].front().index; - grad_starts_vec(input_index) = start_span; - for (const GradComponent& gc : grad_components[input_index]) { - grad_weights_vec(input_index * grad_spans->span_size + gc.index - - start_span) += gc.weight; + if (!grad_components[input_index].empty()) { + const int start_span = grad_components[input_index].front().index; + grad_starts_vec(input_index) = start_span; + for (const GradComponent& gc : grad_components[input_index]) { + grad_weights_vec(input_index * grad_spans->span_size + gc.index - + start_span) += gc.weight; + } + } else { + grad_starts_vec(input_index) = 0; } } return Status::OK(); diff --git a/tensorflow/core/kernels/scale_and_translate_op_test.cc b/tensorflow/core/kernels/scale_and_translate_op_test.cc index 127f1641554..a17e3d83963 100644 --- a/tensorflow/core/kernels/scale_and_translate_op_test.cc +++ b/tensorflow/core/kernels/scale_and_translate_op_test.cc @@ -120,7 +120,8 @@ void Sample(const DynamicKernel& kernel, const bool antialias, 1; std::fill(dest, dest + channels, 0.0f); - if (y_span_end <= y_span_start || x_span_end <= x_span_start) { + if (sample_f.x() < 0.0f || sample_f.y() < 0.0f || sample_f.x() > in_width || + sample_f.y() > in_height) { return; } const Vector2f one_over_kernel_scale(1.0f / kernel_scale.x(), @@ -170,6 +171,8 @@ void ScaleAndTranslateBaseline(const DynamicKernel& kernel, const int64 out_height = output.dimension(1); const int64 out_width = output.dimension(2); + const int64 in_height = images.dimension(1); + const int64 in_width = images.dimension(2); for (int b = 0; b < batch; ++b) { for (int64 y = 0; y < out_height; ++y) { @@ -178,8 +181,13 @@ void ScaleAndTranslateBaseline(const DynamicKernel& kernel, for (int64 x = 0; x < out_width; ++x) { const float out_x_f = static_cast(x) + 0.5; const float in_x_f = out_x_f * scale.x() + translate.x(); - Sample(kernel, antialias, images, b, scale, Vector2f(in_x_f, in_y_f), - &output(b, y, x, 0)); + if (in_x_f < 0.0f || in_y_f < 0.0f || in_x_f > in_width || + in_y_f > in_height) { + std::fill(&output(b, y, x, 0), &output(b, y, x + 1, 0), 0.0f); + } else { + Sample(kernel, antialias, images, b, scale, Vector2f(in_x_f, in_y_f), + &output(b, y, x, 0)); + } } } } diff --git a/tensorflow/core/kernels/stage_op.cc b/tensorflow/core/kernels/stage_op.cc index 65174e163c1..925c9266395 100644 --- a/tensorflow/core/kernels/stage_op.cc +++ b/tensorflow/core/kernels/stage_op.cc @@ -216,7 +216,7 @@ class StageOp : public OpKernel { }; REGISTER_KERNEL_BUILDER(Name("Stage").Device(DEVICE_CPU), StageOp); -#if GOOGLE_CUDA +#if GOOGLE_CUDA || TENSORFLOW_USE_ROCM REGISTER_KERNEL_BUILDER(Name("Stage").Device(DEVICE_GPU), StageOp); #endif #ifdef TENSORFLOW_USE_SYCL @@ -249,7 +249,7 @@ class UnstageOp : public OpKernel { }; REGISTER_KERNEL_BUILDER(Name("Unstage").Device(DEVICE_CPU), UnstageOp); -#if GOOGLE_CUDA +#if GOOGLE_CUDA || TENSORFLOW_USE_ROCM REGISTER_KERNEL_BUILDER(Name("Unstage").Device(DEVICE_GPU), UnstageOp); #endif #ifdef TENSORFLOW_USE_SYCL @@ -284,7 +284,7 @@ class StagePeekOp : public OpKernel { }; REGISTER_KERNEL_BUILDER(Name("StagePeek").Device(DEVICE_CPU), StagePeekOp); -#if GOOGLE_CUDA +#if GOOGLE_CUDA || TENSORFLOW_USE_ROCM REGISTER_KERNEL_BUILDER( Name("StagePeek").HostMemory("index").Device(DEVICE_GPU), StagePeekOp); #endif @@ -314,7 +314,7 @@ class StageSizeOp : public OpKernel { }; REGISTER_KERNEL_BUILDER(Name("StageSize").Device(DEVICE_CPU), StageSizeOp); -#if GOOGLE_CUDA +#if GOOGLE_CUDA || TENSORFLOW_USE_ROCM REGISTER_KERNEL_BUILDER(Name("StageSize").HostMemory("size").Device(DEVICE_GPU), StageSizeOp); #endif @@ -339,7 +339,7 @@ class StageClearOp : public OpKernel { }; REGISTER_KERNEL_BUILDER(Name("StageClear").Device(DEVICE_CPU), StageClearOp); -#if GOOGLE_CUDA +#if GOOGLE_CUDA || TENSORFLOW_USE_ROCM REGISTER_KERNEL_BUILDER(Name("StageClear").Device(DEVICE_GPU), StageClearOp); #endif #ifdef TENSORFLOW_USE_SYCL diff --git a/tensorflow/core/kernels/xent_op.cc b/tensorflow/core/kernels/xent_op.cc index 9a3612bd72c..58d905c3547 100644 --- a/tensorflow/core/kernels/xent_op.cc +++ b/tensorflow/core/kernels/xent_op.cc @@ -134,7 +134,7 @@ TF_CALL_half(REGISTER_CPU); TF_CALL_float(REGISTER_CPU); TF_CALL_double(REGISTER_CPU); -#if GOOGLE_CUDA +#if GOOGLE_CUDA || TENSORFLOW_USE_ROCM REGISTER_KERNEL_BUILDER(Name("SoftmaxCrossEntropyWithLogits") .Device(DEVICE_GPU) .TypeConstraint("T"), @@ -147,7 +147,7 @@ REGISTER_KERNEL_BUILDER(Name("SoftmaxCrossEntropyWithLogits") .Device(DEVICE_GPU) .TypeConstraint("T"), SoftmaxXentWithLogitsOp); -#endif // GOOGLE_CUDA +#endif // GOOGLE_CUDA || TENSORFLOW_USE_ROCM #ifdef TENSORFLOW_USE_SYCL REGISTER_KERNEL_BUILDER(Name("SoftmaxCrossEntropyWithLogits") diff --git a/tensorflow/core/kernels/xent_op_gpu.cu.cc b/tensorflow/core/kernels/xent_op_gpu.cu.cc index 2c0c0b3a027..6c7a9d7ba0a 100644 --- a/tensorflow/core/kernels/xent_op_gpu.cu.cc +++ b/tensorflow/core/kernels/xent_op_gpu.cu.cc @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -#if GOOGLE_CUDA +#if GOOGLE_CUDA || TENSORFLOW_USE_ROCM #define EIGEN_USE_GPU @@ -54,4 +54,4 @@ template struct functor::XentFunctor; } // end namespace tensorflow -#endif // GOOGLE_CUDA +#endif // GOOGLE_CUDA || TENSORFLOW_USE_ROCM diff --git a/tensorflow/core/ops/compat/ops_history.v1.pbtxt b/tensorflow/core/ops/compat/ops_history.v1.pbtxt index e9e7bd8f14c..994ac4b0e8f 100644 --- a/tensorflow/core/ops/compat/ops_history.v1.pbtxt +++ b/tensorflow/core/ops/compat/ops_history.v1.pbtxt @@ -21990,6 +21990,34 @@ op { } } } +op { + name: "DivNoNan" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} op { name: "DrawBoundingBoxes" input_arg { @@ -40851,6 +40879,35 @@ op { } is_commutative: true } +op { + name: "MulNoNan" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + is_commutative: true +} op { name: "MultiDeviceIterator" output_arg { diff --git a/tensorflow/core/ops/math_ops.cc b/tensorflow/core/ops/math_ops.cc index 1c2e9d40ae6..42bdc12fd3a 100644 --- a/tensorflow/core/ops/math_ops.cc +++ b/tensorflow/core/ops/math_ops.cc @@ -435,7 +435,7 @@ REGISTER_OP("MulNoNan") .Input("x: T") .Input("y: T") .Output("z: T") - .Attr("T: {float, double}") + .Attr("T: {half, float, double, complex64, complex128}") .SetIsCommutative() .SetShapeFn(shape_inference::BroadcastBinaryOpShapeFn); @@ -460,7 +460,7 @@ REGISTER_OP("DivNoNan") .Input("x: T") .Input("y: T") .Output("z: T") - .Attr("T: {float, double}") + .Attr("T: {half, float, double, complex64, complex128}") .SetShapeFn(shape_inference::BroadcastBinaryOpShapeFn); REGISTER_OP("FloorDiv") diff --git a/tensorflow/core/ops/ops.pbtxt b/tensorflow/core/ops/ops.pbtxt index 298da20ef54..c72da53ff9c 100644 --- a/tensorflow/core/ops/ops.pbtxt +++ b/tensorflow/core/ops/ops.pbtxt @@ -10019,8 +10019,11 @@ op { type: "type" allowed_values { list { + type: DT_HALF type: DT_FLOAT type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 } } } @@ -20017,8 +20020,11 @@ op { type: "type" allowed_values { list { + type: DT_HALF type: DT_FLOAT type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 } } } diff --git a/tensorflow/core/platform/cloud/oauth_client.cc b/tensorflow/core/platform/cloud/oauth_client.cc index a8657359a35..89b1056be7d 100644 --- a/tensorflow/core/platform/cloud/oauth_client.cc +++ b/tensorflow/core/platform/cloud/oauth_client.cc @@ -284,7 +284,7 @@ Status OAuthClient::ParseOAuthResponse(StringPiece response, return errors::FailedPrecondition("Unexpected Oauth token type: " + token_type); } - int64 expires_in; + int64 expires_in = 0; TF_RETURN_IF_ERROR(ReadJsonInt(root, "expires_in", &expires_in)); *expiration_timestamp_sec = request_timestamp_sec + expires_in; TF_RETURN_IF_ERROR(ReadJsonString(root, "access_token", token)); diff --git a/tensorflow/examples/multibox_detector/main.cc b/tensorflow/examples/multibox_detector/main.cc index 96ea525a4e7..82552a71740 100644 --- a/tensorflow/examples/multibox_detector/main.cc +++ b/tensorflow/examples/multibox_detector/main.cc @@ -16,6 +16,7 @@ limitations under the License. #include #include #include +#include #include #include @@ -228,7 +229,9 @@ void DecodeLocation(const float* encoded_location, const float* box_priors, } } -float DecodeScore(float encoded_score) { return 1 / (1 + exp(-encoded_score)); } +float DecodeScore(float encoded_score) { + return 1 / (1 + std::exp(-encoded_score)); +} void DrawBox(const int image_width, const int image_height, int left, int top, int right, int bottom, tensorflow::TTypes::Flat* image) { diff --git a/tensorflow/examples/saved_model/integration_tests/export_simple_text_embedding.py b/tensorflow/examples/saved_model/integration_tests/export_simple_text_embedding.py index 00829aab9a7..d4caf46c73e 100644 --- a/tensorflow/examples/saved_model/integration_tests/export_simple_text_embedding.py +++ b/tensorflow/examples/saved_model/integration_tests/export_simple_text_embedding.py @@ -72,7 +72,7 @@ class TextEmbeddingModel(tf.train.Checkpoint): normalized_sentences = tf.strings.regex_replace( input=sentences, pattern=r"\pP", rewrite="") normalized_sentences = tf.reshape(normalized_sentences, [-1]) - sparse_tokens = tf.string_split(normalized_sentences, " ") + sparse_tokens = tf.strings.split(normalized_sentences, " ") # Deal with a corner case: there is one empty sentence. sparse_tokens, _ = tf.sparse.fill_empty_rows(sparse_tokens, tf.constant("")) diff --git a/tensorflow/examples/saved_model/integration_tests/export_text_rnn_model.py b/tensorflow/examples/saved_model/integration_tests/export_text_rnn_model.py index af89e4e9f19..240f441939e 100644 --- a/tensorflow/examples/saved_model/integration_tests/export_text_rnn_model.py +++ b/tensorflow/examples/saved_model/integration_tests/export_text_rnn_model.py @@ -50,7 +50,7 @@ class TextRnnModel(tf.train.Checkpoint): # splitting on spaces. normalized_sentences = tf.strings.regex_replace( input=sentences, pattern=r"\pP", rewrite="") - sparse_tokens = tf.string_split(normalized_sentences, " ") + sparse_tokens = tf.strings.split(normalized_sentences, " ") # Deal with a corner case: there is one empty sentence. sparse_tokens, _ = tf.sparse.fill_empty_rows(sparse_tokens, tf.constant("")) diff --git a/tensorflow/go/graph.go b/tensorflow/go/graph.go index 6ff41ca9169..31f087591b7 100644 --- a/tensorflow/go/graph.go +++ b/tensorflow/go/graph.go @@ -53,7 +53,7 @@ type Graph struct { c *C.TF_Graph } -// Graph execution options +// The GraphImportOptions struct holds parameters for the ImportWithOptions function. type GraphImportOptions struct { // Node prefix Prefix string @@ -170,7 +170,7 @@ func (g *Graph) Operation(name string) *Operation { // Operations returns a list of all operations in the graph func (g *Graph) Operations() []Operation { - var pos C.size_t = 0 + var pos C.size_t ops := []Operation{} for { cop := C.TF_GraphNextOperation(g.c, &pos) diff --git a/tensorflow/python/BUILD b/tensorflow/python/BUILD index 818ee60fb43..e3c026c81c5 100644 --- a/tensorflow/python/BUILD +++ b/tensorflow/python/BUILD @@ -5342,7 +5342,6 @@ py_library( srcs_version = "PY2AND3", visibility = ["//visibility:public"], deps = [ - ":distribute", ":framework", ":framework_for_generated_wrappers", ":platform", @@ -5371,6 +5370,7 @@ py_library( ":summary_ops_gen", ":summary_ops_v2", ":util", + "//tensorflow/python/distribute:summary_op_util", "//tensorflow/python/eager:context", "@six_archive//:six", ], diff --git a/tensorflow/python/autograph/core/converter.py b/tensorflow/python/autograph/core/converter.py index 2e106ed1795..5b7880a2999 100644 --- a/tensorflow/python/autograph/core/converter.py +++ b/tensorflow/python/autograph/core/converter.py @@ -88,20 +88,6 @@ from tensorflow.python.util.tf_export import tf_export # TODO(mdan): Add a test specific to this converter. -# TODO(mdan): Remove when updating the API. -@tf_export('autograph.experimental.Verbosity') -class Verbosity(enum.IntEnum): - """Represents conversion verbosity levels. - - Attributes: - BRIEF: No logging, minimal error messages. - VERBOSE: Detailed logging of generated code, detailed error messages. - """ - - BRIEF = 0 - VERBOSE = 1 - - @tf_export('autograph.experimental.Feature') class Feature(enum.Enum): """Represents conversion options that can be toggled on or off. diff --git a/tensorflow/python/autograph/impl/api.py b/tensorflow/python/autograph/impl/api.py index 9e223d1992b..67fcfb96c9a 100644 --- a/tensorflow/python/autograph/impl/api.py +++ b/tensorflow/python/autograph/impl/api.py @@ -377,16 +377,12 @@ def _is_not_callable(obj): return False -# TODO(mdan): Remove obsolete args. @tf_export('autograph.to_graph') def to_graph(entity, recursive=True, arg_values=None, arg_types=None, - experimental_optional_features=converter.Feature.ALL, - experimental_strip_decorators=None, - experimental_verbose=converter.Verbosity.BRIEF, - experimental_partial_types=None): + experimental_optional_features=converter.Feature.ALL): """Converts a Python entity into a TensorFlow graph. Also see: `tf.autograph.to_code`, `tf.function`. @@ -442,9 +438,6 @@ def to_graph(entity, experimental_optional_features: `None`, a tuple of, or a single `tf.autograph.experimental.Feature` value. Controls the use of optional features in the conversion process. - experimental_strip_decorators: Deprecated, unused. - experimental_verbose: Deprecated, unused. - experimental_partial_types: Deprecated, unused. Returns: Same as `entity`, the converted Python function or class. @@ -452,10 +445,6 @@ def to_graph(entity, Raises: ValueError: If the entity could not be converted. """ - del experimental_strip_decorators - del experimental_verbose - del experimental_partial_types - try: program_ctx = converter.ProgramContext( options=converter.ConversionOptions( @@ -520,8 +509,7 @@ def to_code(entity, arg_values=None, arg_types=None, indentation=' ', - experimental_optional_features=converter.Feature.ALL, - experimental_partial_types=None): + experimental_optional_features=converter.Feature.ALL): """Similar to `to_graph`, but returns Python source code as a string. Also see: `tf.autograph.to_graph`. @@ -544,13 +532,10 @@ def to_code(entity, experimental_optional_features: `None`, a tuple of, or a single `tf.autograph.experimental.Feature` value. Controls the use of optional features in the conversion process. - experimental_partial_types: Deprecated, unused. Returns: The converted code as string. """ - del experimental_partial_types - program_ctx = converter.ProgramContext( options=converter.ConversionOptions( recursive=recursive, diff --git a/tensorflow/python/compat/compat.py b/tensorflow/python/compat/compat.py index 7bf6989277e..e08015088b8 100644 --- a/tensorflow/python/compat/compat.py +++ b/tensorflow/python/compat/compat.py @@ -27,7 +27,7 @@ import datetime from tensorflow.python.util import tf_contextlib from tensorflow.python.util.tf_export import tf_export -_FORWARD_COMPATIBILITY_HORIZON = datetime.date(2019, 3, 14) +_FORWARD_COMPATIBILITY_HORIZON = datetime.date(2019, 3, 15) @tf_export("compat.forward_compatible") diff --git a/tensorflow/python/data/experimental/ops/interleave_ops.py b/tensorflow/python/data/experimental/ops/interleave_ops.py index f54867bcd55..0480ac41a88 100644 --- a/tensorflow/python/data/experimental/ops/interleave_ops.py +++ b/tensorflow/python/data/experimental/ops/interleave_ops.py @@ -19,70 +19,19 @@ from __future__ import print_function from tensorflow.python.data.experimental.ops import random_ops from tensorflow.python.data.ops import dataset_ops -from tensorflow.python.data.util import convert +from tensorflow.python.data.ops import readers from tensorflow.python.data.util import nest from tensorflow.python.data.util import structure from tensorflow.python.framework import dtypes from tensorflow.python.framework import ops from tensorflow.python.ops import array_ops -from tensorflow.python.ops import gen_experimental_dataset_ops as ged_ops +from tensorflow.python.ops import gen_experimental_dataset_ops from tensorflow.python.ops import gen_stateless_random_ops from tensorflow.python.ops import math_ops from tensorflow.python.util import deprecation from tensorflow.python.util.tf_export import tf_export -class _ParallelInterleaveDataset(dataset_ops.UnaryDataset): - """A `Dataset` that maps a function over its input and flattens the result.""" - - def __init__(self, input_dataset, map_func, cycle_length, block_length, - sloppy, buffer_output_elements, prefetch_input_elements): - """See `tf.data.experimental.parallel_interleave()` for details.""" - self._input_dataset = input_dataset - self._map_func = dataset_ops.StructuredFunctionWrapper( - map_func, self._transformation_name(), dataset=input_dataset) - if not isinstance(self._map_func.output_structure, - dataset_ops.DatasetStructure): - raise TypeError("`map_func` must return a `Dataset` object.") - self._structure = self._map_func.output_structure._element_structure # pylint: disable=protected-access - self._cycle_length = ops.convert_to_tensor( - cycle_length, dtype=dtypes.int64, name="cycle_length") - self._block_length = ops.convert_to_tensor( - block_length, dtype=dtypes.int64, name="block_length") - self._sloppy = ops.convert_to_tensor( - sloppy, dtype=dtypes.bool, name="sloppy") - self._buffer_output_elements = convert.optional_param_to_tensor( - "buffer_output_elements", - buffer_output_elements, - argument_default=2 * block_length) - self._prefetch_input_elements = convert.optional_param_to_tensor( - "prefetch_input_elements", - prefetch_input_elements, - argument_default=2 * cycle_length) - variant_tensor = ged_ops.experimental_parallel_interleave_dataset( - self._input_dataset._variant_tensor, # pylint: disable=protected-access - self._map_func.function.captured_inputs, - self._cycle_length, - self._block_length, - self._sloppy, - self._buffer_output_elements, - self._prefetch_input_elements, - f=self._map_func.function, - **dataset_ops.flat_structure(self)) - super(_ParallelInterleaveDataset, self).__init__(input_dataset, - variant_tensor) - - def _functions(self): - return [self._map_func] - - @property - def _element_structure(self): - return self._structure - - def _transformation_name(self): - return "tf.data.experimental.parallel_interleave()" - - @deprecation.deprecated( None, "Use `tf.data.Dataset.interleave(map_func, cycle_length, block_length, " @@ -139,7 +88,7 @@ def parallel_interleave(map_func, `tf.data.Dataset.apply`. """ def _apply_fn(dataset): - return _ParallelInterleaveDataset( + return readers.ParallelInterleaveDataset( dataset, map_func, cycle_length, block_length, sloppy, buffer_output_elements, prefetch_input_elements) @@ -176,10 +125,11 @@ class _DirectedInterleaveDataset(dataset_ops.Dataset): def _as_variant_tensor(self): # pylint: disable=protected-access - return (ged_ops.experimental_directed_interleave_dataset( - self._selector_input._variant_tensor, - [data_input._variant_tensor for data_input in self._data_inputs], - **dataset_ops.flat_structure(self))) + return ( + gen_experimental_dataset_ops.experimental_directed_interleave_dataset( + self._selector_input._variant_tensor, + [data_input._variant_tensor for data_input in self._data_inputs], + **dataset_ops.flat_structure(self))) # pylint: enable=protected-access def _inputs(self): diff --git a/tensorflow/python/data/experimental/ops/readers.py b/tensorflow/python/data/experimental/ops/readers.py index 38fc3c5db46..a631fa61a91 100644 --- a/tensorflow/python/data/experimental/ops/readers.py +++ b/tensorflow/python/data/experimental/ops/readers.py @@ -25,6 +25,7 @@ import numpy as np from tensorflow.python.data.experimental.ops import batching from tensorflow.python.data.experimental.ops import error_ops +from tensorflow.python.data.experimental.ops import interleave_ops from tensorflow.python.data.experimental.ops import optimization from tensorflow.python.data.experimental.ops import parsing_ops from tensorflow.python.data.experimental.ops import shuffle_ops @@ -493,15 +494,9 @@ def make_csv_dataset_v2( return features # Read files sequentially (if num_parallel_reads=1) or in parallel - dataset = dataset.interleave( - filename_to_dataset, - cycle_length=num_parallel_reads, - num_parallel_calls=num_parallel_reads) - - if sloppy: - options = dataset_ops.Options() - options.experimental_deterministic = False - dataset = dataset.with_options(options) + dataset = dataset.apply( + interleave_ops.parallel_interleave( + filename_to_dataset, cycle_length=num_parallel_reads, sloppy=sloppy)) dataset = _maybe_shuffle_and_repeat( dataset, num_epochs, shuffle, shuffle_buffer_size, shuffle_seed) @@ -833,15 +828,11 @@ def make_batched_features_dataset_v2(file_pattern, reader_args = [] # Read files sequentially (if reader_num_threads=1) or in parallel - dataset = dataset.interleave( - lambda filename: reader(filename, *reader_args), - cycle_length=reader_num_threads, - num_parallel_calls=reader_num_threads) - - if sloppy_ordering: - options = dataset_ops.Options() - options.experimental_deterministic = False - dataset = dataset.with_options(options) + dataset = dataset.apply( + interleave_ops.parallel_interleave( + lambda filename: reader(filename, *reader_args), + cycle_length=reader_num_threads, + sloppy=sloppy_ordering)) # Extract values if the `Example` tensors are stored as key-value tuples. if dataset_ops.get_legacy_output_types(dataset) == ( diff --git a/tensorflow/python/data/ops/dataset_ops.py b/tensorflow/python/data/ops/dataset_ops.py index b1a130b9e70..a86f74542f0 100644 --- a/tensorflow/python/data/ops/dataset_ops.py +++ b/tensorflow/python/data/ops/dataset_ops.py @@ -1188,7 +1188,9 @@ class DatasetV2(object): """ dataset = transformation_func(self) if not isinstance(dataset, DatasetV2): - raise TypeError("`transformation_func` must return a Dataset.") + raise TypeError( + "`transformation_func` must return a Dataset. Got {}.".format( + dataset)) dataset._input_datasets = [self] # pylint: disable=protected-access return dataset @@ -2121,7 +2123,9 @@ class SparseTensorSliceDataset(DatasetSource): def __init__(self, sparse_tensor): """See `Dataset.from_sparse_tensor_slices()` for details.""" if not isinstance(sparse_tensor, sparse_tensor_lib.SparseTensor): - raise TypeError("`sparse_tensor` must be a `tf.SparseTensor` object.") + raise TypeError( + "`sparse_tensor` must be a `tf.SparseTensor` object. Was {}.".format( + sparse_tensor)) self._sparse_tensor = sparse_tensor indices_shape = self._sparse_tensor.indices.get_shape() @@ -2885,7 +2889,11 @@ def _default_padding(input_dataset): if t.base_dtype == dtypes.string: return "" elif t.base_dtype == dtypes.variant: - raise TypeError("Unable to create padding for field of type 'variant'") + error_msg = ("Unable to create padding for field of type 'variant' " + "because t.base_type == dtypes.variant == " + "{}.".format( + t.base_dtype)) + raise TypeError(error_msg) else: return np.zeros_like(t.as_numpy_dtype()) @@ -3066,7 +3074,9 @@ class FlatMapDataset(UnaryDataset): self._map_func = StructuredFunctionWrapper( map_func, self._transformation_name(), dataset=input_dataset) if not isinstance(self._map_func.output_structure, DatasetStructure): - raise TypeError("`map_func` must return a `Dataset` object.") + raise TypeError( + "`map_func` must return a `Dataset` object. Got {}".format( + type(self._map_func.output_structure))) self._structure = self._map_func.output_structure._element_structure # pylint: disable=protected-access variant_tensor = gen_dataset_ops.flat_map_dataset( input_dataset._variant_tensor, # pylint: disable=protected-access @@ -3096,7 +3106,9 @@ class InterleaveDataset(UnaryDataset): self._map_func = StructuredFunctionWrapper( map_func, self._transformation_name(), dataset=input_dataset) if not isinstance(self._map_func.output_structure, DatasetStructure): - raise TypeError("`map_func` must return a `Dataset` object.") + raise TypeError( + "`map_func` must return a `Dataset` object. Got {}".format( + type(self._map_func.output_structure))) self._structure = self._map_func.output_structure._element_structure # pylint: disable=protected-access self._cycle_length = ops.convert_to_tensor( cycle_length, dtype=dtypes.int64, name="cycle_length") @@ -3124,8 +3136,7 @@ class InterleaveDataset(UnaryDataset): class ParallelInterleaveDataset(UnaryDataset): - """A `Dataset` that maps a function over its input and interleaves the result. - """ + """A `Dataset` that maps a function over its input and interleaves the result.""" def __init__(self, input_dataset, map_func, cycle_length, block_length, num_parallel_calls): @@ -3134,7 +3145,9 @@ class ParallelInterleaveDataset(UnaryDataset): self._map_func = StructuredFunctionWrapper( map_func, self._transformation_name(), dataset=input_dataset) if not isinstance(self._map_func.output_structure, DatasetStructure): - raise TypeError("`map_func` must return a `Dataset` object.") + raise TypeError( + "`map_func` must return a `Dataset` object. Got {}".format( + type(self._map_func.output_structure))) self._structure = self._map_func.output_structure._element_structure # pylint: disable=protected-access self._cycle_length = ops.convert_to_tensor( cycle_length, dtype=dtypes.int64, name="cycle_length") @@ -3177,7 +3190,10 @@ class FilterDataset(UnaryUnchangedStructureDataset): use_legacy_function=use_legacy_function) if not wrapped_func.output_structure.is_compatible_with( structure_lib.TensorStructure(dtypes.bool, [])): - raise ValueError("`predicate` must return a scalar boolean tensor.") + error_msg = ("`predicate` return type must be convertible to a scalar " + "boolean tensor. Was {}.").format( + wrapped_func.output_structure) + raise ValueError(error_msg) self._predicate = wrapped_func variant_tensor = gen_dataset_ops.filter_dataset( input_dataset._variant_tensor, # pylint: disable=protected-access diff --git a/tensorflow/python/data/ops/readers.py b/tensorflow/python/data/ops/readers.py index f1e8bb1e942..477ff94a8d3 100644 --- a/tensorflow/python/data/ops/readers.py +++ b/tensorflow/python/data/ops/readers.py @@ -26,6 +26,7 @@ from tensorflow.python.framework import ops from tensorflow.python.framework import tensor_shape from tensorflow.python.ops import array_ops from tensorflow.python.ops import gen_dataset_ops +from tensorflow.python.ops import gen_experimental_dataset_ops as ged_ops from tensorflow.python.util.tf_export import tf_export @@ -118,6 +119,57 @@ class _TFRecordDataset(dataset_ops.DatasetSource): return structure.TensorStructure(dtypes.string, []) +class ParallelInterleaveDataset(dataset_ops.UnaryDataset): + """A `Dataset` that maps a function over its input and flattens the result.""" + + def __init__(self, input_dataset, map_func, cycle_length, block_length, + sloppy, buffer_output_elements, prefetch_input_elements): + """See `tf.data.experimental.parallel_interleave()` for details.""" + self._input_dataset = input_dataset + self._map_func = dataset_ops.StructuredFunctionWrapper( + map_func, self._transformation_name(), dataset=input_dataset) + if not isinstance(self._map_func.output_structure, + dataset_ops.DatasetStructure): + raise TypeError("`map_func` must return a `Dataset` object.") + self._structure = self._map_func.output_structure._element_structure # pylint: disable=protected-access + self._cycle_length = ops.convert_to_tensor( + cycle_length, dtype=dtypes.int64, name="cycle_length") + self._block_length = ops.convert_to_tensor( + block_length, dtype=dtypes.int64, name="block_length") + self._sloppy = ops.convert_to_tensor( + sloppy, dtype=dtypes.bool, name="sloppy") + self._buffer_output_elements = convert.optional_param_to_tensor( + "buffer_output_elements", + buffer_output_elements, + argument_default=2 * block_length) + self._prefetch_input_elements = convert.optional_param_to_tensor( + "prefetch_input_elements", + prefetch_input_elements, + argument_default=2 * cycle_length) + variant_tensor = ged_ops.experimental_parallel_interleave_dataset( + self._input_dataset._variant_tensor, # pylint: disable=protected-access + self._map_func.function.captured_inputs, + self._cycle_length, + self._block_length, + self._sloppy, + self._buffer_output_elements, + self._prefetch_input_elements, + f=self._map_func.function, + **dataset_ops.flat_structure(self)) + super(ParallelInterleaveDataset, self).__init__(input_dataset, + variant_tensor) + + def _functions(self): + return [self._map_func] + + @property + def _element_structure(self): + return self._structure + + def _transformation_name(self): + return "tf.data.experimental.parallel_interleave()" + + @tf_export("data.TFRecordDataset", v1=[]) class TFRecordDatasetV2(dataset_ops.DatasetV2): """A `Dataset` comprising records from one or more TFRecord files.""" @@ -169,10 +221,10 @@ class TFRecordDatasetV2(dataset_ops.DatasetV2): if num_parallel_reads is None: self._impl = filenames.flat_map(read_one_file) else: - self._impl = filenames.interleave( - read_one_file, - cycle_length=num_parallel_reads, - num_parallel_calls=num_parallel_reads) + self._impl = ParallelInterleaveDataset( + filenames, read_one_file, cycle_length=num_parallel_reads, + block_length=1, sloppy=False, buffer_output_elements=None, + prefetch_input_elements=None) variant_tensor = self._impl._variant_tensor # pylint: disable=protected-access super(TFRecordDatasetV2, self).__init__(variant_tensor) diff --git a/tensorflow/python/distribute/BUILD b/tensorflow/python/distribute/BUILD index 308bd428d05..9f9e285cce2 100644 --- a/tensorflow/python/distribute/BUILD +++ b/tensorflow/python/distribute/BUILD @@ -469,6 +469,16 @@ py_test( ], ) +py_library( + name = "summary_op_util", + srcs = ["summary_op_util.py"], + deps = [ + ":distribute_lib", + "//tensorflow/python:framework_ops", + "//tensorflow/python:tensor_util", + ], +) + py_library( name = "values", srcs = ["values.py"], diff --git a/tensorflow/python/distribute/distribute_lib.py b/tensorflow/python/distribute/distribute_lib.py index 2b7bb5f8565..05b928b9a2b 100644 --- a/tensorflow/python/distribute/distribute_lib.py +++ b/tensorflow/python/distribute/distribute_lib.py @@ -512,23 +512,50 @@ class DistributionStrategy(object): _require_cross_replica_or_default_context_extended(self._extended) return self._extended._reduce(reduce_op, value) # pylint: disable=protected-access - @doc_controls.do_not_generate_docs # DEPRECATED, -> `DistributedValues` + @doc_controls.do_not_generate_docs # DEPRECATED def unwrap(self, value): - """Returns the list of all per-replica values contained in `value`. + """Returns the list of all local per-replica values contained in `value`. + + DEPRECATED: Please use `experimental_local_results` instead. + + Note: This only returns values on the workers initiated by this client. + When using a `Strategy` like + `tf.distribute.experimental.MultiWorkerMirroredStrategy`, each worker + will be its own client, and this function will only return values + computed on that worker. Args: - value: A value returned by `extended.call_for_each_replica()` or a - variable created in `scope`. + value: A value returned by `experimental_run()`, + `extended.call_for_each_replica()`, or a variable created in `scope`. Returns: A tuple of values contained in `value`. If `value` represents a single value, this returns `(value,).` """ - return self._extended._unwrap(value) # pylint: disable=protected-access + return self._extended._local_results(value) # pylint: disable=protected-access - @doc_controls.do_not_generate_docs # DEPRECATED, -> `DistributedValues` + def experimental_local_results(self, value): + """Returns the list of all local per-replica values contained in `value`. + + Note: This only returns values on the workers initiated by this client. + When using a `Strategy` like + `tf.distribute.experimental.MultiWorkerMirroredStrategy`, each worker + will be its own client, and this function will only return values + computed on that worker. + + Args: + value: A value returned by `experimental_run()`, `experimental_run_v2()`, + `extended.call_for_each_replica()`, or a variable created in `scope`. + + Returns: + A tuple of values contained in `value`. If `value` represents a single + value, this returns `(value,).` + """ + return self._extended._local_results(value) # pylint: disable=protected-access + + @doc_controls.do_not_generate_docs # DEPRECATED: TF v1.x only def group(self, value, name=None): - """Shortcut for `tf.group(self.unwrap(value))`.""" + """Shortcut for `tf.group(self.experimental_local_results(value))`.""" return self._extended._group(value, name) # pylint: disable=protected-access @property @@ -1067,7 +1094,7 @@ class DistributionStrategyExtended(object): # Called once in "cross-replica" context. def merge_fn(distribution, three_plus_replica_id): # sum the values across replicas - return sum(distribution.unwrap(three_plus_replica_id)) + return sum(distribution.experimental_local_results(three_plus_replica_id)) # Called once per replica in `distribution`, in a "replica" context. def fn(three): @@ -1082,7 +1109,8 @@ class DistributionStrategyExtended(object): ... merged_results = distribution.call_for_each_replica(fn, args=[3]) # merged_results has the values from every replica execution of `fn`. - print(distribution.unwrap(merged_results)) # Prints a list + # This statement prints a list: + print(distribution.experimental_local_results(merged_results)) ``` Args: @@ -1104,8 +1132,9 @@ class DistributionStrategyExtended(object): def _reduce(self, reduce_op, value): # Default implementation until we have an implementation for each strategy. - return self._unwrap(self._reduce_to( - reduce_op, value, device_util.current() or "/device:CPU:0"))[0] + return self._local_results( + self._reduce_to(reduce_op, value, + device_util.current() or "/device:CPU:0"))[0] def reduce_to(self, reduce_op, value, destinations): """Combine (via e.g. sum or mean) values across replicas. @@ -1224,7 +1253,7 @@ class DistributionStrategyExtended(object): def _update_non_slot(self, colocate_with, fn, args, kwargs, group): raise NotImplementedError("must be implemented in descendants") - def _unwrap(self, distributed_value): + def _local_results(self, distributed_value): raise NotImplementedError("must be implemented in descendants") def value_container(self, value): @@ -1238,13 +1267,14 @@ class DistributionStrategyExtended(object): A container that `value` belongs to. If value does not belong to any container (including the case of container having been destroyed), returns the value itself. - `value in unwrap(value_container(value))` will always be true. + `value in experimental_local_results(value_container(value))` will + always be true. """ raise NotImplementedError("must be implemented in descendants") def _group(self, value, name=None): - """Shortcut for `tf.group(distribution.unwrap(value))`.""" - value = nest.flatten(self._unwrap(value)) + """Implementation of `group`.""" + value = nest.flatten(self._local_results(value)) if len(value) != 1 or name is not None: return control_flow_ops.group(value, name=name) @@ -1590,12 +1620,12 @@ class _DefaultDistributionExtended(DistributionStrategyExtended): if should_group: return result else: - return nest.map_structure(self._unwrap, result) + return nest.map_structure(self._local_results, result) def read_var(self, replica_local_var): return array_ops.identity(replica_local_var) - def _unwrap(self, distributed_value): + def _local_results(self, distributed_value): return (distributed_value,) def value_container(self, value): diff --git a/tensorflow/python/distribute/input_lib.py b/tensorflow/python/distribute/input_lib.py index 51a394859e6..7aa861dee97 100644 --- a/tensorflow/python/distribute/input_lib.py +++ b/tensorflow/python/distribute/input_lib.py @@ -648,6 +648,7 @@ class MultiStepContext(object): def merge_fn(distribution, value): # NOTE(priyag): For non tensor outputs, we simply return all the values # in a list as reduction doesn't make sense on non tensors. - self._non_tensor_outputs[name] = distribution.unwrap(value) + self._non_tensor_outputs[name] = ( + distribution.experimental_local_results(value)) distribution_strategy_context.get_replica_context().merge_call( merge_fn, args=(output,)) diff --git a/tensorflow/python/distribute/mirrored_strategy.py b/tensorflow/python/distribute/mirrored_strategy.py index a4d9e836202..3b34732cee3 100644 --- a/tensorflow/python/distribute/mirrored_strategy.py +++ b/tensorflow/python/distribute/mirrored_strategy.py @@ -602,7 +602,7 @@ class MirroredExtended(distribute_lib.DistributionStrategyExtended): fn_result = fn(ctx, iterator.get_next()) for (name, output) in ctx.last_step_outputs.items(): # Convert all outputs to tensors, potentially from `DistributedValues`. - ctx.last_step_outputs[name] = self._unwrap(output) + ctx.last_step_outputs[name] = self._local_results(output) flat_last_step_outputs = nest.flatten(ctx.last_step_outputs) with ops.control_dependencies([fn_result]): return [i + 1] + flat_last_step_outputs @@ -741,7 +741,7 @@ class MirroredExtended(distribute_lib.DistributionStrategyExtended): assert isinstance(replica_local_var, values.Mirrored) return array_ops.identity(replica_local_var.get()) - def _unwrap(self, val): + def _local_results(self, val): if isinstance(val, values.DistributedValues): return val.values return (val,) diff --git a/tensorflow/python/distribute/one_device_strategy.py b/tensorflow/python/distribute/one_device_strategy.py index 9a255b2fe10..576db795a0b 100644 --- a/tensorflow/python/distribute/one_device_strategy.py +++ b/tensorflow/python/distribute/one_device_strategy.py @@ -159,13 +159,13 @@ class OneDeviceExtended(distribute_lib.DistributionStrategyExtended): if group: return result else: - return nest.map_structure(self._unwrap, result) + return nest.map_structure(self._local_results, result) def read_var(self, replica_local_var): """Read the aggregate value of a replica-local variable.""" return array_ops.identity(replica_local_var) - def _unwrap(self, value): + def _local_results(self, value): return (value,) def value_container(self, value): diff --git a/tensorflow/python/distribute/parameter_server_strategy.py b/tensorflow/python/distribute/parameter_server_strategy.py index 715e2a1f0ec..b4c8bee53c7 100644 --- a/tensorflow/python/distribute/parameter_server_strategy.py +++ b/tensorflow/python/distribute/parameter_server_strategy.py @@ -426,7 +426,7 @@ class ParameterServerStrategyExtended( if group: return result else: - return nest.map_structure(self._unwrap, result) + return nest.map_structure(self._local_results, result) # TODO(yuefengz): does it need to call _select_single_value? def _update_non_slot(self, colocate_with, fn, args, kwargs, group): @@ -436,9 +436,9 @@ class ParameterServerStrategyExtended( if group: return result else: - return nest.map_structure(self._unwrap, result) + return nest.map_structure(self._local_results, result) - def _unwrap(self, val): + def _local_results(self, val): if isinstance(val, values.DistributedValues): return val.values return (val,) diff --git a/tensorflow/python/distribute/summary_op_util.py b/tensorflow/python/distribute/summary_op_util.py new file mode 100644 index 00000000000..1c7086b365b --- /dev/null +++ b/tensorflow/python/distribute/summary_op_util.py @@ -0,0 +1,48 @@ +# 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. +#============================================================================== +"""Contains utility functions used by summary ops in distribution strategy.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + + +from tensorflow.python.distribute import distribution_strategy_context +from tensorflow.python.framework import ops +from tensorflow.python.framework import tensor_util + + +def skip_summary(): + """Determines if summary should be skipped. + + If using multiple replicas in distributed strategy, skip summaries on all + replicas except the first one (replica_id=0). + + Returns: + True if the summary is skipped; False otherwise. + """ + + # TODO(priyag): Add a new optional argument that will provide multiple + # alternatives to override default behavior. (e.g. run on last replica, + # compute sum or mean across replicas). + replica_context = distribution_strategy_context.get_replica_context() + if not replica_context: + return False + # TODO(b/118385803): when replica_id of _TPUReplicaContext is properly + # initialized, remember to change here as well. + replica_id = replica_context.replica_id_in_sync_group + if isinstance(replica_id, ops.Tensor): + replica_id = tensor_util.constant_value(replica_id) + return replica_id and replica_id > 0 diff --git a/tensorflow/python/distribute/tpu_strategy.py b/tensorflow/python/distribute/tpu_strategy.py index 563edd6dbf6..e7902815b13 100644 --- a/tensorflow/python/distribute/tpu_strategy.py +++ b/tensorflow/python/distribute/tpu_strategy.py @@ -500,7 +500,7 @@ class TPUExtended(distribute_lib.DistributionStrategyExtended): assert isinstance(var, values.TPUMirroredVariable) return var.read_value() - def _unwrap(self, val): + def _local_results(self, val): if isinstance(val, values.DistributedValues): # Return in a deterministic order. return tuple(val.get(device=d) for d in sorted(val.devices)) @@ -589,7 +589,7 @@ class TPUExtended(distribute_lib.DistributionStrategyExtended): if group: return result else: - return nest.map_structure(self._unwrap, result) + return nest.map_structure(self._local_results, result) def _configure(self, session_config=None, diff --git a/tensorflow/python/distribute/values.py b/tensorflow/python/distribute/values.py index b25b3282dfb..fc74fc67bd8 100644 --- a/tensorflow/python/distribute/values.py +++ b/tensorflow/python/distribute/values.py @@ -272,7 +272,7 @@ class DistributedValues(object): def device_map(self): return self._device_map - # TODO(josh11b): Replace unwrap with this? + # TODO(josh11b): Replace experimental_local_results with this? @property def values(self): return self._values @@ -622,8 +622,9 @@ def validate_colocate(v, extended): def _apply_aggregation(strategy, value, aggregation, destinations): if aggregation == vs.VariableAggregation.ONLY_FIRST_REPLICA: - return strategy.extended.broadcast_to(strategy.unwrap(value)[0], - destinations=destinations) + return strategy.extended.broadcast_to( + strategy.experimental_local_results(value)[0], + destinations=destinations) reduce_op = reduce_util.ReduceOp.from_variable_aggregation(aggregation) return strategy.extended.reduce_to(reduce_op, value, destinations) @@ -824,7 +825,7 @@ class TPUMirroredVariable(trackable.Trackable): def device_map(self): return self._device_map - # TODO(josh11b): Replace unwrap with this? + # TODO(josh11b): Replace experimental_local_results with this? @property def values(self): return self._values @@ -1410,7 +1411,7 @@ def update_regroup(extended, device_map, updates, group): # so we can avoid all these nest operations. regrouped = regroup(device_map, updates, Mirrored) if not group: - return nest.map_structure(extended._unwrap, regrouped) # pylint: disable=protected-access + return nest.map_structure(extended._local_results, regrouped) # pylint: disable=protected-access grouped_flat = [] for u in nest.flatten(regrouped): if isinstance(u, DistributedValues): diff --git a/tensorflow/python/eager/function.py b/tensorflow/python/eager/function.py index 00ad03457b5..ff92f8c3dbf 100644 --- a/tensorflow/python/eager/function.py +++ b/tensorflow/python/eager/function.py @@ -735,7 +735,7 @@ class ConcreteFunction(object): # In case of eager execution, function definition gets added to context # during construction itself. - # TODO(allel/shivaniagrawal): rename this to register to reflect the + # TODO(allenl/shivaniagrawal): rename this to register to reflect the # method's functionality better. Remove register_gradient_functions argument # and figure out if these needs to be registered. diff --git a/tensorflow/python/framework/function_def_to_graph.py b/tensorflow/python/framework/function_def_to_graph.py index aa670f1e379..79cc72918ee 100644 --- a/tensorflow/python/framework/function_def_to_graph.py +++ b/tensorflow/python/framework/function_def_to_graph.py @@ -73,6 +73,10 @@ def function_def_to_graph(fdef, input_shapes=None): func_graph.outputs = [ func_graph.get_tensor_by_name(name) for name in output_tensor_names ] + func_graph.control_outputs = [ + func_graph.get_operation_by_name(fdef.control_ret[ret_name]) + for ret_name in fdef.signature.control_output + ] return func_graph diff --git a/tensorflow/python/framework/python_op_gen.cc b/tensorflow/python/framework/python_op_gen.cc index c78b6a34a5e..c8338a344dc 100644 --- a/tensorflow/python/framework/python_op_gen.cc +++ b/tensorflow/python/framework/python_op_gen.cc @@ -144,7 +144,7 @@ class GenEagerPythonOp : public python_op_gen_internal::GenPythonOp { const string& num_outputs_expr); void AddDispatch(const string& prefix); - void AddRawOpExport(); + void AddRawOpExport(const string& parameters); void AddAttrForArg(const string& attr, int arg_index) { gtl::InsertIfNotPresent(&inferred_attrs_, attr, @@ -300,6 +300,7 @@ string GenEagerPythonOp::Code() { attrs_.push_back(p.first.GetName()); } + // TODO(slebedev): call AvoidPythonReserved on each param? param_names_.reserve(params_no_default_.size() + params_with_default_.size()); param_names_.insert(param_names_.begin(), params_no_default_.begin(), params_no_default_.end()); @@ -317,8 +318,7 @@ string GenEagerPythonOp::Code() { strings::StrAppend(¶meters, param_and_default.first.GetRenameTo(), "=", param_and_default.second); } - if (!parameters.empty()) strings::StrAppend(¶meters, ", "); - strings::StrAppend(¶meters, "name=None"); + strings::StrAppend(¶meters, parameters.empty() ? "" : ", ", "name=None"); // Add attr_expressions_ for attrs that are params. for (int i = 0; i < attrs_.size(); ++i) { @@ -639,6 +639,7 @@ bool GenEagerPythonOp::AddEagerFastPathAndGraphCode( if (api_def_.visibility() == ApiDef::VISIBLE) { strings::StrAppend(&result_, "@_dispatch.add_dispatch_list\n"); } + AddExport(); AddDefLine(function_name_, parameters); AddDocStringDescription(); @@ -671,7 +672,7 @@ bool GenEagerPythonOp::AddEagerFastPathAndGraphCode( AddEagerFunctionTeardown(" ", output_sizes, true /* execute_record_gradient */); - AddRawOpExport(); + AddRawOpExport(parameters); strings::StrAppend(&result_, "\n\n"); return true; } @@ -679,8 +680,9 @@ bool GenEagerPythonOp::AddEagerFastPathAndGraphCode( bool GenEagerPythonOp::AddEagerFallbackCode( const string& parameters, const std::vector& output_sizes, const string& num_outputs_expr, const string& eager_not_allowed_error) { - AddDefLine(strings::StrCat(function_name_, kEagerFallbackSuffix), - strings::StrCat(parameters, ", ctx=None")); + AddDefLine( + strings::StrCat(function_name_, kEagerFallbackSuffix), + strings::StrCat(parameters, parameters.empty() ? "" : ", ", "ctx=None")); if (!eager_not_allowed_error.empty()) { strings::StrAppend(&result_, " ", eager_not_allowed_error); @@ -925,64 +927,31 @@ void GenEagerPythonOp::AddDispatch(const string& prefix) { strings::StrAppend(&result_, prefix, " raise\n"); } -void GenEagerPythonOp::AddRawOpExport() { - // Create function for python op. - string raw_parameters; - string function_call_parameters; - string inputs; - string attrs; - - std::map renames; - +void GenEagerPythonOp::AddRawOpExport(const string& parameters) { + string arguments; for (const auto& param_names : param_names_) { - renames.insert({param_names.GetName(), param_names.GetRenameTo()}); - } - - for (const auto& input_arg : op_def_.input_arg()) { - const string input_arg_name = - python_op_gen_internal::AvoidPythonReserved(input_arg.name()); - if (!raw_parameters.empty()) strings::StrAppend(&raw_parameters, ", "); - strings::StrAppend(&raw_parameters, input_arg_name); - - if (!inputs.empty()) strings::StrAppend(&inputs, ", "); - strings::StrAppend(&inputs, input_arg_name); - - if (!function_call_parameters.empty()) { - strings::StrAppend(&function_call_parameters, ", "); - } - strings::StrAppend(&function_call_parameters, renames[input_arg.name()], - "=", input_arg_name); - } - for (const auto& attr : op_def_.attr()) { - if (inferred_attrs_.find(attr.name()) != inferred_attrs_.end()) continue; - - const string attr_name = - python_op_gen_internal::AvoidPythonReserved(attr.name()); - - if (!raw_parameters.empty()) strings::StrAppend(&raw_parameters, ", "); - strings::StrAppend(&raw_parameters, attr_name); - - if (!attrs.empty()) strings::StrAppend(&attrs, ", "); - strings::StrAppend(&attrs, "\"", attr_name, "\", ", attr_name); - - if (!function_call_parameters.empty()) { - strings::StrAppend(&function_call_parameters, ", "); - } - strings::StrAppend(&function_call_parameters, renames[attr.name()], "=", - attr_name); + const string renamed = param_names.GetRenameTo(); + strings::StrAppend(&arguments, arguments.empty() ? "" : ", ", renamed, "=", + renamed); } + strings::StrAppend(&arguments, arguments.empty() ? "" : ", ", "name=name"); const string raw_function_name = python_op_gen_internal::AvoidPythonReserved(op_def_.name()); - strings::StrAppend(&result_, - "@_doc_controls.do_not_generate_docs\n@_kwarg_only\ndef ", - raw_function_name, "(", raw_parameters, "):\n"); + strings::StrAppend(&result_, "def ", raw_function_name, "(", parameters, + "):\n"); + strings::StrAppend(&result_, " return ", function_name_, "(", arguments, + ")\n"); - // Function body. - strings::StrAppend(&result_, " return ", function_name_, "(", - function_call_parameters, ")\n"); + // Copy the __doc__ from the original op and apply the decorators. + strings::StrAppend(&result_, raw_function_name, ".__doc__", " = ", + function_name_, ".__doc__\n"); + strings::StrAppend(&result_, raw_function_name, " = ", + "_doc_controls.do_not_generate_docs(_kwarg_only(", + raw_function_name, "))\n"); + // Export. strings::StrAppend(&result_, "tf_export(\"raw_ops.", raw_function_name, "\")(", raw_function_name, ")\n"); } diff --git a/tensorflow/python/keras/callbacks_test.py b/tensorflow/python/keras/callbacks_test.py index 690409f2522..d25ef6360f0 100644 --- a/tensorflow/python/keras/callbacks_test.py +++ b/tensorflow/python/keras/callbacks_test.py @@ -1164,6 +1164,7 @@ class TestTensorBoardV2(keras_parameterized.TestCase): model = self._get_model() x, y = np.ones((10, 10, 10, 1)), np.ones((10, 1)) tb_cbk = keras.callbacks.TensorBoard(self.logdir, histogram_freq=1) + model_type = testing_utils.get_model_type() model.fit( x, @@ -1182,7 +1183,7 @@ class TestTensorBoardV2(keras_parameterized.TestCase): }, ) self.assertEqual( - self._strip_layer_names(summary_file.histograms), + self._strip_layer_names(summary_file.histograms, model_type), { _ObservedSummary(logdir=self.train_dir, tag='bias_0'), _ObservedSummary(logdir=self.train_dir, tag='kernel_0'), @@ -1194,6 +1195,7 @@ class TestTensorBoardV2(keras_parameterized.TestCase): x, y = np.ones((10, 10, 10, 1)), np.ones((10, 1)) tb_cbk = keras.callbacks.TensorBoard( self.logdir, histogram_freq=1, write_images=True) + model_type = testing_utils.get_model_type() model.fit( x, @@ -1212,14 +1214,14 @@ class TestTensorBoardV2(keras_parameterized.TestCase): }, ) self.assertEqual( - self._strip_layer_names(summary_file.histograms), + self._strip_layer_names(summary_file.histograms, model_type), { _ObservedSummary(logdir=self.train_dir, tag='bias_0'), _ObservedSummary(logdir=self.train_dir, tag='kernel_0'), }, ) self.assertEqual( - self._strip_layer_names(summary_file.images), + self._strip_layer_names(summary_file.images, model_type), { _ObservedSummary(logdir=self.train_dir, tag='bias_0/image/0'), _ObservedSummary(logdir=self.train_dir, tag='kernel_0/image/0'), @@ -1228,7 +1230,7 @@ class TestTensorBoardV2(keras_parameterized.TestCase): }, ) - def _strip_layer_names(self, summaries): + def _strip_layer_names(self, summaries, model_type): """Deduplicate summary names modulo layer prefix. This removes the first slash-component of each tag name: for @@ -1236,6 +1238,7 @@ class TestTensorBoardV2(keras_parameterized.TestCase): Args: summaries: A `set` of `_ObservedSummary` values. + model_type: The model type currently being tested. Returns: A new `set` of `_ObservedSummary` values with layer prefixes @@ -1245,7 +1248,8 @@ class TestTensorBoardV2(keras_parameterized.TestCase): for summary in summaries: if '/' not in summary.tag: raise ValueError('tag has no layer name: %r' % summary.tag) - new_tag = summary.tag.split('/', 1)[1] + start_from = 2 if 'subclass' in model_type else 1 + new_tag = '/'.join(summary.tag.split('/')[start_from:]) result.add(summary._replace(tag=new_tag)) return result diff --git a/tensorflow/python/keras/engine/base_layer.py b/tensorflow/python/keras/engine/base_layer.py index fc59f3c81f7..cf70c28e75e 100644 --- a/tensorflow/python/keras/engine/base_layer.py +++ b/tensorflow/python/keras/engine/base_layer.py @@ -714,9 +714,7 @@ class Layer(trackable.Trackable): @property def updates(self): - if not self.trainable and not self.stateful: - return [] - return self._updates + self._gather_children_attribute('updates') + return self._get_unfiltered_updates(check_trainable=True) @property def losses(self): @@ -967,13 +965,15 @@ class Layer(trackable.Trackable): if inputs is None: # Requesting unconditional updates. - return [x for x in self._unfiltered_updates if x._unconditional_update] # pylint: disable=protected-access + return [ + x for x in self._get_unfiltered_updates() if x._unconditional_update # pylint: disable=protected-access + ] # Requesting input-conditional updates. inputs = nest.flatten(inputs) - reachable = tf_utils.get_reachable_from_inputs(inputs, - self._unfiltered_updates) - return [u for u in self._unfiltered_updates if u in reachable] # pylint: disable=protected-access + reachable = tf_utils.get_reachable_from_inputs( + inputs, self._get_unfiltered_updates()) + return [u for u in self._get_unfiltered_updates() if u in reachable] # pylint: disable=protected-access def get_losses_for(self, inputs): """Retrieves losses relevant to a specific set of inputs. @@ -1847,10 +1847,10 @@ class Layer(trackable.Trackable): def _is_layer(self): return True - @property - def _unfiltered_updates(self): - # Overridden in `Network`. - return self.updates + def _get_unfiltered_updates(self, check_trainable=True): + if check_trainable and not self.trainable and not self.stateful: + return [] + return self._updates + self._gather_children_attribute('updates') class Node(object): diff --git a/tensorflow/python/keras/engine/base_layer_utils.py b/tensorflow/python/keras/engine/base_layer_utils.py index 95f709fd425..4697f8d1f9e 100644 --- a/tensorflow/python/keras/engine/base_layer_utils.py +++ b/tensorflow/python/keras/engine/base_layer_utils.py @@ -482,8 +482,10 @@ class AutoAddUpdates(object): if is_stateful_op and op.type != 'ReadVariableOp': new_stateful_ops.add(op) - explicit_updates = set( - [u for u in self.layer._unfiltered_updates if not isinstance(u, tuple)]) + explicit_updates = set([ + u for u in self.layer._get_unfiltered_updates(check_trainable=False) + if not isinstance(u, tuple) + ]) # pylint: enable=protected-access # Don't add updates that will already be run by virtue of being consumed by @@ -542,4 +544,3 @@ def autocast_context_manager(input_list, should_cast): var_read_dtype = _get_var_read_dtype(input_list, should_cast) return ops.get_default_graph()._enable_auto_casting_variables( # pylint: disable=protected-access var_read_dtype) - diff --git a/tensorflow/python/keras/engine/network.py b/tensorflow/python/keras/engine/network.py index 0bc10b0fb99..fdda1141fd7 100644 --- a/tensorflow/python/keras/engine/network.py +++ b/tensorflow/python/keras/engine/network.py @@ -521,11 +521,12 @@ class Network(base_layer.Layer): return layer raise ValueError('No such layer: ' + name) - @property - def _unfiltered_updates(self): + def _get_unfiltered_updates(self, check_trainable=True): + if check_trainable and not self.trainable and not self.stateful: + return [] updates = [] for layer in self.layers: - updates += layer._unfiltered_updates + updates += layer._get_unfiltered_updates(check_trainable=check_trainable) updates += list(self._updates) return updates @@ -605,10 +606,8 @@ class Network(base_layer.Layer): Returns: A list of update ops. """ - if not self.trainable and not self.stateful: - return [] - updates = self._unfiltered_updates + updates = self._get_unfiltered_updates(check_trainable=True) # `updates` might contain irrelevant updates, so it needs to be filtered # with respect to inputs the model has been called on. @@ -1107,6 +1106,9 @@ class Network(base_layer.Layer): model_inputs.append( tf_utils.ListWrapper([layer.name, new_node_index, tensor_index])) model_inputs = nest.pack_sequence_as(self._nested_inputs, model_inputs) + # Preserve external Keras compat for Models with single input. + if not nest.is_sequence(model_inputs): + model_inputs = [model_inputs] model_inputs = tf_utils.convert_inner_node_data(model_inputs) config['input_layers'] = model_inputs @@ -1120,6 +1122,9 @@ class Network(base_layer.Layer): model_outputs.append( tf_utils.ListWrapper([layer.name, new_node_index, tensor_index])) model_outputs = nest.pack_sequence_as(self._nested_outputs, model_outputs) + # Preserve external Keras compat for Models with single output. + if not nest.is_sequence(model_outputs): + model_outputs = [model_outputs] model_outputs = tf_utils.convert_inner_node_data(model_outputs) config['output_layers'] = model_outputs return copy.deepcopy(config) diff --git a/tensorflow/python/keras/engine/topology_test.py b/tensorflow/python/keras/engine/topology_test.py index ffd053c02fb..5b1c74adb9d 100644 --- a/tensorflow/python/keras/engine/topology_test.py +++ b/tensorflow/python/keras/engine/topology_test.py @@ -1180,6 +1180,18 @@ class DefaultShapeInferenceBehaviorTest(keras_parameterized.TestCase): self.assertAllClose(mask_outputs_val[0], np.any(model_input, axis=-1)) self.assertAllClose(mask_outputs_val[1], np.any(model_input, axis=-1)) + @test_util.run_in_graph_and_eager_modes() + def test_external_keras_serialization_compat(self): + inputs = keras.Input(shape=(10,)) + outputs = keras.layers.Dense(1)(inputs) + model = keras.Model(inputs, outputs) + config = model.get_config() + # Checks that single inputs and outputs are still saved as 1-element lists. + # Saving as 1-element lists or not is equivalent in TF Keras, but only the + # 1-element list format is supported in TF.js and keras-team/Keras. + self.assertLen(config['input_layers'], 1) + self.assertLen(config['output_layers'], 1) + class GraphUtilsTest(test.TestCase): diff --git a/tensorflow/python/keras/engine/training.py b/tensorflow/python/keras/engine/training.py index 820a99b4463..56c787b97aa 100644 --- a/tensorflow/python/keras/engine/training.py +++ b/tensorflow/python/keras/engine/training.py @@ -2612,7 +2612,7 @@ class Model(network.Network): 'However we received `validation_data=%s`' % validation_data) return val_x, val_y, val_sample_weight - @trackable.no_automatic_dependency_tracking + # TODO(omalleyt): Consider changing to a more descriptive function name. def _set_inputs(self, inputs, outputs=None, training=None): """Set model's input and output specs based on the input data received. @@ -2639,6 +2639,22 @@ class Model(network.Network): ValueError: If dict inputs are passed to a Sequential Model where the first layer isn't FeatureLayer. """ + inputs = self._set_input_attrs(inputs) + + if outputs is None: + kwargs = {'training': training} if self._expects_training_arg else {} + try: + outputs = self(inputs, **kwargs) + except NotImplementedError: + # This Model or a submodel is dynamic and hasn't overridden + # `compute_output_shape`. + outputs = None + + self._set_output_attrs(outputs) + + @trackable.no_automatic_dependency_tracking + def _set_input_attrs(self, inputs): + """Sets attributes related to the inputs of the Model.""" if self.inputs: raise ValueError('Model inputs are already set.') @@ -2675,33 +2691,11 @@ class Model(network.Network): self._feed_inputs.append(v) self._feed_input_shapes.append(K.int_shape(v)) - # TODO(fchollet): consider calling `_maybe_build` before calling the model. - if outputs is None: - if not self._dynamic: - # The network may include dynamic layers but its `call` - # itself isn't dynamic. - # Obtain symbolic outputs by calling the model. - with K.get_graph().as_default(): - contains_symbolic_tensors = getattr( - self, '_contains_symbolic_tensors', False) - if self._expects_training_arg: - outputs = self.call(inputs, training=training) - else: - outputs = self.call(inputs) - # Reset to the previously saved value. If `call()` had `add_metric` - # or `add_loss`, then `_contains_symbolic_tensors` will have been set - # to True since we are not in `__call__` context. Hence we are - # resetting to the old value here. - self._contains_symbolic_tensors = contains_symbolic_tensors - else: - # Case: network's `call` is dynamic. - try: - outputs = self._symbolic_call(inputs) - except NotImplementedError: - # Static shape inference was not implemented for this dynamic net. - # Do not specify symbolic outputs. - outputs = None + return inputs + @trackable.no_automatic_dependency_tracking + def _set_output_attrs(self, outputs): + """Sets attributes related to the outputs of the Model.""" outputs = nest.flatten(outputs) self.outputs = outputs self.output_names = training_utils.generic_output_names(outputs) diff --git a/tensorflow/python/keras/model_subclassing_test.py b/tensorflow/python/keras/model_subclassing_test.py index 5220f4e28f4..768b8e4dd3b 100644 --- a/tensorflow/python/keras/model_subclassing_test.py +++ b/tensorflow/python/keras/model_subclassing_test.py @@ -187,8 +187,8 @@ def get_nested_model_3(input_dim, num_classes): return keras.Model(inputs, outputs, name='nested_model_3') -@test_util.run_all_in_graph_and_eager_modes -class ModelSubclassingTest(test.TestCase): +@keras_parameterized.run_all_keras_modes +class ModelSubclassingTest(keras_parameterized.TestCase): def test_custom_build(self): class DummyModel(keras.Model): @@ -210,6 +210,26 @@ class ModelSubclassingTest(test.TestCase): self.assertTrue(test_model.uses_custom_build, 'Model should use user ' 'defined build when called.') + def test_custom_build_with_fit(self): + + class DummyModel(keras.Model): + + def __init__(self): + super(DummyModel, self).__init__() + self.layer1 = keras.layers.Dense(10, activation='relu') + + def build(self, input_shape): + self.layer2 = keras.layers.Dense(1, activation='relu') + + def call(self, inputs): + return self.layer2(self.layer1(inputs)) + + model = DummyModel() + model.compile('sgd', 'mse', run_eagerly=testing_utils.should_run_eagerly()) + model.fit(np.ones((10, 10)), np.ones((10, 1)), batch_size=2, epochs=2) + self.assertLen(model.layers, 2) + self.assertLen(model.trainable_variables, 4) + def test_invalid_input_shape_build(self): num_classes = 2 input_dim = 50 diff --git a/tensorflow/python/keras/optimizer_v2/optimizer_v2.py b/tensorflow/python/keras/optimizer_v2/optimizer_v2.py index 3b6d30a4656..ecdeafe1c7e 100644 --- a/tensorflow/python/keras/optimizer_v2/optimizer_v2.py +++ b/tensorflow/python/keras/optimizer_v2/optimizer_v2.py @@ -44,6 +44,7 @@ from tensorflow.python.ops import math_ops from tensorflow.python.ops import resource_variable_ops from tensorflow.python.ops import variables as tf_variables from tensorflow.python.platform import tf_logging as logging +from tensorflow.python.saved_model import revived_types from tensorflow.python.training.tracking import base as trackable from tensorflow.python.util import nest from tensorflow.python.util.tf_export import keras_export @@ -466,6 +467,8 @@ class OptimizerV2(trackable.Trackable): def _set_hyper(self, name, value): """set hyper `name` to value. value can be callable, tensor, numeric.""" + if isinstance(value, trackable.Trackable): + self._track_trackable(value, name, overwrite=True) if name not in self._hyper: self._hyper[name] = value else: @@ -968,3 +971,37 @@ def _get_slot_key_from_var(var, slot_name): name = _var_key(var) return name + "/" + slot_name + + +class _RestoredOptimizer(OptimizerV2): + """A non-functional Optimizer implementation for checkpoint compatibility. + + Holds slot variables and hyperparameters when an optimizer is restored from a + SavedModel. These variables may be referenced in functions along with ops + created by the original optimizer, but currently we do not support using the + optimizer object iself (e.g. through `apply_gradients`). + """ + # TODO(allenl): Make the restored optimizer functional by tracing its apply + # methods. + + def __init__(self): + super(_RestoredOptimizer, self).__init__("_RestoredOptimizer") + self._hypers_created = True + + def get_config(self): + # TODO(allenl): Save and restore the Optimizer's config + raise NotImplementedError( + "Restoring functional Optimzers from SavedModels is not currently " + "supported. Please file a feature request if this limitation bothers " + "you.") + +revived_types.register_revived_type( + "optimizer", + lambda obj: isinstance(obj, OptimizerV2), + versions=[revived_types.VersionedTypeRegistration( + object_factory=lambda proto: _RestoredOptimizer(), + version=1, + min_producer_version=1, + min_consumer_version=1, + setter=_RestoredOptimizer._set_hyper # pylint: disable=protected-access + )]) diff --git a/tensorflow/python/kernel_tests/BUILD b/tensorflow/python/kernel_tests/BUILD index 71c1a1e2df1..e3b4ef3cc69 100644 --- a/tensorflow/python/kernel_tests/BUILD +++ b/tensorflow/python/kernel_tests/BUILD @@ -1695,9 +1695,6 @@ cuda_py_test( "//tensorflow/python:while_v2", ], shard_count = 16, - tags = [ - "no_gpu", # TODO(b/117928656) - ], xla_enable_strict_auto_jit = True, ) diff --git a/tensorflow/python/kernel_tests/control_flow_ops_py_test.py b/tensorflow/python/kernel_tests/control_flow_ops_py_test.py index fb3e81260ff..9208ad55240 100644 --- a/tensorflow/python/kernel_tests/control_flow_ops_py_test.py +++ b/tensorflow/python/kernel_tests/control_flow_ops_py_test.py @@ -580,6 +580,7 @@ class ControlFlowTest(test.TestCase): result = self.evaluate(r) self.assertAllEqual(12, result) + @test_util.disable_xla("b/128638446") @test_util.run_in_graph_and_eager_modes def testCondPruning(self): v1 = variables.Variable(7) @@ -657,7 +658,7 @@ class ControlFlowTest(test.TestCase): @test_util.run_gpu_only @test_util.run_deprecated_v1 def testCond_Device(self): - x = constant_op.constant(-10) + x = constant_op.constant(-10.) # True branch function defined outside of device scope def true_fn(): @@ -675,6 +676,77 @@ class ControlFlowTest(test.TestCase): # We expect that everything runs on CPU, even if GPU is available. self.assertEqual(len(run_metadata.partition_graphs), 1) + def _count_matching_switch_nodes_on_device(self, run_metadata, device_str): + # Returns the number of Switch nodes with type float32 placed on + # `device_str`. + device_graphs = [ + g for g in run_metadata.partition_graphs + if device_str in g.node[0].device + ] + self.assertLen(device_graphs, 1) + switch_nodes = [ + n for n in device_graphs[0].node if n.op == "Switch" and + n.attr["T"].type == dtypes.float32.as_datatype_enum + ] + return len(switch_nodes) + + @test_util.run_gpu_only + @test_util.run_deprecated_v1 + def testCondSwitchColocatedWithInputWhenInputOnCPU(self): + x = array_ops.placeholder(dtypes.float32) + + # `arg` is used in the cond then branch so a Switch node is created for it. + # We test that the Switch node gets placed on the same device as `arg`. + # We force `arg` to be on CPU here. + with ops.device("CPU:0"): + arg = x + 10. + + def true_fn(): + with ops.device("CPU:0"): + return arg + 1 + + r = control_flow_ops.cond(constant_op.constant(True), true_fn, lambda: 0.) + + with session.Session() as sess: + run_metadata = config_pb2.RunMetadata() + options = config_pb2.RunOptions(output_partition_graphs=True) + sess.run( + r, feed_dict={x: -10.}, options=options, run_metadata=run_metadata) + self.assertEqual(len(run_metadata.partition_graphs), 2) + # Check that the Switch for `arg` gets placed on CPU. + self.assertEqual( + self._count_matching_switch_nodes_on_device(run_metadata, "CPU"), 1) + self.assertEqual( + self._count_matching_switch_nodes_on_device(run_metadata, "GPU"), 0) + + @test_util.run_gpu_only + @test_util.run_deprecated_v1 + def testCondSwitchColocatedWithInputWhenInputOnGPU(self): + x = array_ops.placeholder(dtypes.float32) + + # `arg` is used in the cond then branch so a Switch node is created for it. + # We test that the Switch node gets placed on the same device as `arg`. + # Note: `arg` gets placed on GPU by default by the placer. + arg = x + 10. + + def true_fn(): + with ops.device("CPU:0"): + return arg + 1 + + r = control_flow_ops.cond(constant_op.constant(True), true_fn, lambda: 0.) + + with session.Session() as sess: + run_metadata = config_pb2.RunMetadata() + options = config_pb2.RunOptions(output_partition_graphs=True) + sess.run( + r, feed_dict={x: -10.}, options=options, run_metadata=run_metadata) + self.assertEqual(len(run_metadata.partition_graphs), 2) + # Check that the Switch for `arg` gets placed on GPU. + self.assertEqual( + self._count_matching_switch_nodes_on_device(run_metadata, "CPU"), 0) + self.assertEqual( + self._count_matching_switch_nodes_on_device(run_metadata, "GPU"), 1) + def testCondListOutput(self): with self.cached_session() as sess: x = constant_op.constant(10) @@ -987,6 +1059,7 @@ class ControlFlowTest(test.TestCase): [1., 1.], [0., 0.]]) + @test_util.disable_xla("b/128643464") def testCondGrad_MultiGather(self): # NOTE(skyewm): this test is interesting because the array_ops.gather and # ResourceVariable.sparse_read gradient functions returns IndexedSlices. @@ -1063,8 +1136,11 @@ class ControlFlowTest(test.TestCase): self.assertAllEqual(0.0, sess.run(result, feed_dict={predicate: True})) self.assertAllEqual(0.0, sess.run(result)) + @test_util.disable_xla("b/128644469 PrintV2") @test_util.run_in_graph_and_eager_modes def testCondAutoControlDeps(self): + if test_util.is_gpu_available(): + self.skipTest("b/128676188 causes OOM on opensource gpu tests") def branch_fn(): logging_ops.print_v2("A") @@ -1130,6 +1206,7 @@ class ControlFlowTest(test.TestCase): self.assertEqual(self.evaluate(pruned_nested_cond()), 10) self.assertEqual(printed.contents(), "C\n") + @test_util.disable_xla("b/128643646 PrintV2") @test_util.run_in_graph_and_eager_modes def testWhileAutoControlDeps(self): # Legacy while_loop fails this test because it produces deprecation notices @@ -1411,6 +1488,9 @@ class ControlFlowTest(test.TestCase): @test_util.run_v1_only("b/120545219") def testNestedWhileLoopWithMaxItersFromOuterContextInXLAContext(self): + if test_util.is_gpu_available(): + self.skipTest("b/128646372, b/128645947 fails in opensource build") + v = constant_op.constant(1.0) p = array_ops.placeholder(dtype=dtypes.int32) @@ -1482,7 +1562,7 @@ class ControlFlowTest(test.TestCase): [x for x in node_stats if x.node_name.endswith(stack_push_op)]) # Pushes to the stack = product of maximum_iterations values; # the last two "3"s comes from size(p), when p == [0, 0, 0]. - self.assertEqual(stack_push_count, 5 * 3 * 3) + self.assertEqual(stack_push_count, 5 * 3 * 3, str(node_stats)) self.assertAllClose(final_value_with_xla_context, final_value_without_xla_context) @@ -2618,6 +2698,7 @@ class ControlFlowTest(test.TestCase): self.assertEqual(self.evaluate(fn()), 32.) + @test_util.disable_xla("b/128643381") def testWhileGrad_ResourceVarInFunctionCall(self): @def_function.function @@ -2638,6 +2719,7 @@ class ControlFlowTest(test.TestCase): self.assertIsInstance(grad, ops.IndexedSlicesValue) self.assertAllEqual(gradient_checker_v2._to_numpy(grad), [0., 2., 0., 2.]) + @test_util.disable_xla("b/128643461") def testWhileGrad_ResourceVarInNestedFunctionCall(self): @def_function.function @@ -2663,6 +2745,8 @@ class ControlFlowTest(test.TestCase): self.assertAllEqual(gradient_checker_v2._to_numpy(grad), [0., 2., 0., 2.]) def testWhileGrad_ResourceVarInLoopInFunctionCall(self): + if test.is_gpu_available(): + self.skipTest("b/128635252") @def_function.function def foo(x, var): @@ -2686,6 +2770,7 @@ class ControlFlowTest(test.TestCase): self.assertIsInstance(grad, ops.IndexedSlicesValue) self.assertAllEqual(gradient_checker_v2._to_numpy(grad), [0., 6., 6., 0.]) + @test_util.disable_xla("b/128639858") def testWhileCondGrad_ResourceVarInFunctionCall(self): @def_function.function @@ -2880,6 +2965,7 @@ class ControlFlowTest(test.TestCase): self.evaluate(variables.global_variables_initializer()) self.assertEqual(self.evaluate(foo()), 9.0) + @test_util.disable_xla("b/128643398") def testNestedResourceAccess(self): var = resource_variable_ops.ResourceVariable(constant_op.constant(3.0)) @@ -4343,6 +4429,9 @@ class AssertTest(test.TestCase): @test_util.run_deprecated_v1 def testGuardedAssertDoesNotCopyWhenTrue(self): + if test_util.is_gpu_available(): + self.skipTest("b/128646478 fails in opensource") + with self.session(use_gpu=True) as sess: with ops.device(test.gpu_device_name()): value = constant_op.constant(1.0) @@ -4374,7 +4463,8 @@ class AssertTest(test.TestCase): ] if "GPU" in [d.device_type for d in device_lib.list_local_devices()]: # A copy was performed for the unguarded assert - self.assertLess(0, len(unguarded_memcpy_nodestat_names)) + self.assertLess(0, len(unguarded_memcpy_nodestat_names), + str(unguarded_nodestat_names)) # No copy was performed for the guarded assert self.assertEqual([], guarded_memcpy_nodestat_names) diff --git a/tensorflow/python/kernel_tests/cwise_ops_test.py b/tensorflow/python/kernel_tests/cwise_ops_test.py index 29d335d68cf..96315846b95 100644 --- a/tensorflow/python/kernel_tests/cwise_ops_test.py +++ b/tensorflow/python/kernel_tests/cwise_ops_test.py @@ -20,13 +20,16 @@ from __future__ import print_function import numpy as np +from tensorflow.python.compat import compat from tensorflow.python.framework import constant_op from tensorflow.python.framework import dtypes as dtypes_lib from tensorflow.python.framework import ops from tensorflow.python.framework import sparse_tensor from tensorflow.python.framework import test_util from tensorflow.python.ops import array_ops +from tensorflow.python.ops import gen_math_ops from tensorflow.python.ops import gradient_checker +from tensorflow.python.ops import gradients_impl from tensorflow.python.ops import math_ops from tensorflow.python.ops import nn_grad # pylint: disable=unused-import from tensorflow.python.ops import variables @@ -1109,5 +1112,57 @@ class PolyvalTest(test.TestCase): self.assertAllClose(np_val, self.evaluate(tf_val)) +class SingularGradientOpTest(test.TestCase): + + @test_util.run_deprecated_v1 + def testGradientAtSingularity(self): + if not compat.forward_compatible(2019, 4, 7): + self.skipTest("Skipping test for future functionality.") + + ops_and_singularity = [ + (gen_math_ops.reciprocal, (0.,)), + (gen_math_ops.rsqrt, (0.,)), + (gen_math_ops.sqrt, (0.,)), + (gen_math_ops.sqrt_grad, ( + 0., + 0., + )), + (gen_math_ops.reciprocal_grad, ( + 1., + 0., + )), + (gen_math_ops.tan, (np.pi / 2,)), + (gen_math_ops.log, (0.,)), + (gen_math_ops.log1p, (-1.,)), + (gen_math_ops.acosh, (0.,)), + (gen_math_ops.asin, (1.,)), + (gen_math_ops.acos, (1.,)), + (gen_math_ops.atan2, (0., 0.)), + (gen_math_ops.div, (1., 0.)), + (math_ops.pow, (0., -1.)), + ] + for op, singularity in ops_and_singularity: + for dtype in (dtypes_lib.half, dtypes_lib.float32, dtypes_lib.float64, + dtypes_lib.complex64, dtypes_lib.complex128): + if dtype.is_complex and op in [ + gen_math_ops.asin, gen_math_ops.acos, gen_math_ops.atan2 + ]: + continue + if dtype == dtypes_lib.half and op in [ + gen_math_ops.acosh, gen_math_ops.asin, gen_math_ops.acos, + gen_math_ops.atan2 + ]: + continue + with self.cached_session(): + print("op = ", op, ", singularity = ", singularity, ", type = ", + dtype) + args = [constant_op.constant(s, dtype=dtype) for s in singularity] + grad_y = constant_op.constant(0, dtype=dtype) + y = op(*args) + g = gradients_impl.gradients(y, args, grad_ys=grad_y) + g_val = self.evaluate(g) + self.assertAllEqual(g_val, np.zeros(len(singularity))) + + if __name__ == "__main__": test.main() diff --git a/tensorflow/python/kernel_tests/cwise_ops_unary_test.py b/tensorflow/python/kernel_tests/cwise_ops_unary_test.py index d2d6687c95c..709a20f3d0d 100644 --- a/tensorflow/python/kernel_tests/cwise_ops_unary_test.py +++ b/tensorflow/python/kernel_tests/cwise_ops_unary_test.py @@ -29,7 +29,6 @@ from tensorflow.python.framework import sparse_tensor from tensorflow.python.framework import test_util from tensorflow.python.ops import gen_math_ops from tensorflow.python.ops import gradient_checker -from tensorflow.python.ops import gradients_impl from tensorflow.python.ops import math_ops from tensorflow.python.ops import nn_grad # pylint: disable=unused-import from tensorflow.python.platform import test @@ -544,23 +543,5 @@ class UnaryOpTest(test.TestCase): self.assertAllClose(analytical, numerical, rtol=tol, atol=tol) -class SingularGradientOpTest(test.TestCase): - - @test_util.run_deprecated_v1 - def testGradientAtOrigin(self): - ops_to_test = [ - gen_math_ops.reciprocal, gen_math_ops.rsqrt, gen_math_ops.sqrt - ] - for op in ops_to_test: - for dtype in (dtypes_lib.float32, dtypes_lib.float64): - with self.cached_session(): - x = constant_op.constant(0, dtype=dtype) - grad_y = constant_op.constant(0, dtype=dtype) - y = op(x) - g = gradients_impl.gradients(y, [x], grad_ys=grad_y) - g_val = self.evaluate(g) - self.assertAllEqual(g_val, [0]) - - if __name__ == "__main__": test.main() diff --git a/tensorflow/python/lib/io/py_record_writer.cc b/tensorflow/python/lib/io/py_record_writer.cc index faf20df8683..03f24d0f8f4 100644 --- a/tensorflow/python/lib/io/py_record_writer.cc +++ b/tensorflow/python/lib/io/py_record_writer.cc @@ -68,6 +68,11 @@ void PyRecordWriter::Flush(TF_Status* out_status) { return; } Status s = writer_->Flush(); + if (s.ok()) { + // Per the RecordWriter contract, flushing the RecordWriter does not + // flush the underlying file. Here we need to do both. + s = file_->Flush(); + } if (!s.ok()) { Set_TF_Status_from_Status(out_status, s); return; diff --git a/tensorflow/python/ops/image_grad.py b/tensorflow/python/ops/image_grad.py index 4925209b7d1..7d240dc6b63 100644 --- a/tensorflow/python/ops/image_grad.py +++ b/tensorflow/python/ops/image_grad.py @@ -68,6 +68,28 @@ def _ResizeBilinearGrad(op, grad): return [grad0, None] +@ops.RegisterGradient("ScaleAndTranslate") +def _ScaleAndTranslateGrad(op, grad): + """The derivatives for ScaleAndTranslate transformation op. + + Args: + op: The ScaleAndTranslate op. + grad: The tensor representing the gradient w.r.t. the output. + + Returns: + The gradients w.r.t. the input. + """ + + grad0 = gen_image_ops.scale_and_translate_grad( + grad, + op.inputs[0], + op.inputs[2], + op.inputs[3], + kernel_type=op.get_attr("kernel_type"), + antialias=op.get_attr("antialias")) + return [grad0, None, None, None] + + @ops.RegisterGradient("ResizeBicubic") def _ResizeBicubicGrad(op, grad): """The derivatives for bicubic resizing. diff --git a/tensorflow/python/ops/image_grad_test.py b/tensorflow/python/ops/image_grad_test.py index e4bec8e2551..ea41ea39f98 100644 --- a/tensorflow/python/ops/image_grad_test.py +++ b/tensorflow/python/ops/image_grad_test.py @@ -20,6 +20,7 @@ from __future__ import print_function import numpy as np +from tensorflow.python.eager import backprop from tensorflow.python.framework import constant_op from tensorflow.python.framework import test_util from tensorflow.python.ops import gradient_checker @@ -40,7 +41,7 @@ class ResizeNearestNeighborOpTest(test.TestCase): for nptype in self.TYPES: x = np.arange(0, 4).reshape(in_shape).astype(nptype) - with self.cached_session(use_gpu=True) as sess: + with self.cached_session(use_gpu=True): input_tensor = constant_op.constant(x, shape=in_shape) resize_out = image_ops.resize_nearest_neighbor(input_tensor, out_shape[1:3]) @@ -113,7 +114,7 @@ class ResizeBilinearOpTest(test.TestCase): x = np.arange(0, 4).reshape(in_shape).astype(np.float32) - with self.cached_session() as sess: + with self.cached_session(): input_tensor = constant_op.constant(x, shape=in_shape) resize_out = image_ops.resize_bilinear(input_tensor, out_shape[1:3]) self.assertEqual(out_shape, list(resize_out.get_shape())) @@ -204,7 +205,7 @@ class ResizeBicubicOpTest(test.TestCase): x = np.arange(0, 4).reshape(in_shape).astype(np.float32) for align_corners in [True, False]: - with self.cached_session() as sess: + with self.cached_session(): input_tensor = constant_op.constant(x, shape=in_shape) resize_out = image_ops.resize_bicubic(input_tensor, out_shape[1:3], align_corners=align_corners) @@ -259,6 +260,70 @@ class ResizeBicubicOpTest(test.TestCase): self.assertEqual([None], grad) +class ScaleAndTranslateOpTest(test.TestCase): + + @test_util.run_deprecated_v1 + def testGrads(self): + in_shape = [1, 2, 3, 1] + out_shape = [1, 4, 6, 1] + + x = np.arange(0, 6).reshape(in_shape).astype(np.float32) + + kernel_types = [ + 'lanczos1', 'lanczos3', 'lanczos5', 'gaussian', 'box', 'triangle', + 'keyscubic', 'mitchellcubic' + ] + scales = [(1.0, 1.0), (0.37, 0.47), (2.1, 2.1)] + translations = [(0.0, 0.0), (3.14, 1.19), (2.1, 3.1), (100.0, 200.0)] + for scale in scales: + for translation in translations: + for kernel_type in kernel_types: + for antialias in [True, False]: + with self.cached_session(): + input_tensor = constant_op.constant(x, shape=in_shape) + scale_and_translate_out = image_ops.scale_and_translate( + input_tensor, + out_shape[1:3], + scale=constant_op.constant(scale), + translation=constant_op.constant(translation), + kernel_type=kernel_type, + antialias=antialias) + err = gradient_checker.compute_gradient_error( + input_tensor, + in_shape, + scale_and_translate_out, + out_shape, + x_init_value=x) + self.assertLess(err, 1e-3) + + def testIdentityGrads(self): + """Tests that Gradients for 1.0 scale should be ones for some kernels.""" + in_shape = [1, 2, 3, 1] + out_shape = [1, 4, 6, 1] + + x = np.arange(0, 6).reshape(in_shape).astype(np.float32) + + kernel_types = ['lanczos1', 'lanczos3', 'lanczos5', 'triangle', 'keyscubic'] + scale = (1.0, 1.0) + translation = (0.0, 0.0) + antialias = True + for kernel_type in kernel_types: + with self.cached_session(): + input_tensor = constant_op.constant(x, shape=in_shape) + with backprop.GradientTape() as tape: + tape.watch(input_tensor) + scale_and_translate_out = image_ops.scale_and_translate( + input_tensor, + out_shape[1:3], + scale=constant_op.constant(scale), + translation=constant_op.constant(translation), + kernel_type=kernel_type, + antialias=antialias) + grad = tape.gradient(scale_and_translate_out, input_tensor)[0] + grad_v = self.evaluate(grad) + self.assertAllClose(np.ones_like(grad_v), grad_v) + + class CropAndResizeOpTest(test.TestCase): def testShapeIsCorrectAfterOp(self): diff --git a/tensorflow/python/ops/math_grad.py b/tensorflow/python/ops/math_grad.py index 42495b189d2..db45ee209d2 100644 --- a/tensorflow/python/ops/math_grad.py +++ b/tensorflow/python/ops/math_grad.py @@ -19,6 +19,7 @@ from __future__ import print_function import numpy as np +from tensorflow.python.compat import compat from tensorflow.python.eager import context from tensorflow.python.framework import constant_op from tensorflow.python.framework import dtypes @@ -459,8 +460,12 @@ def _SqrtGradGrad(op, grad): a = op.inputs[0] y = op.outputs[0] # y = 0.5 * b / conj(a) with ops.control_dependencies([grad]): - ga = grad / a - return -math_ops.conj(ga) * y, 0.5 * ga + if compat.forward_compatible(2019, 4, 7): + ga = gen_math_ops.xdivy(grad, a) + return -gen_math_ops.mul_no_nan(y, math_ops.conj(ga)), 0.5 * ga + else: + ga = grad / a + return -math_ops.conj(ga) * y, 0.5 * ga @ops.RegisterGradient("Rsqrt") @@ -508,7 +513,10 @@ def _LogGrad(op, grad): x = op.inputs[0] with ops.control_dependencies([grad]): x = math_ops.conj(x) - return grad * math_ops.reciprocal(x) + if compat.forward_compatible(2019, 4, 7): + return gen_math_ops.xdivy(grad, x) + else: + return grad * math_ops.reciprocal(x) @ops.RegisterGradient("Log1p") @@ -517,7 +525,10 @@ def _Log1pGrad(op, grad): x = op.inputs[0] with ops.control_dependencies([grad]): x = math_ops.conj(x) - return grad * math_ops.reciprocal(1 + x) + if compat.forward_compatible(2019, 4, 7): + return gen_math_ops.xdivy(grad, 1 + x) + else: + return grad * math_ops.reciprocal(1 + x) @ops.RegisterGradient("Xlogy") @@ -596,7 +607,10 @@ def _AcoshGrad(op, grad): y = op.outputs[0] with ops.control_dependencies([grad]): y = math_ops.conj(y) - return grad / math_ops.sinh(y) + if compat.forward_compatible(2019, 4, 7): + return math_ops.xdivy(grad, math_ops.sinh(y)) + else: + return grad / math_ops.sinh(y) @ops.RegisterGradient("Atanh") @@ -831,7 +845,10 @@ def _TanGrad(op, grad): x = math_ops.conj(x) secx = math_ops.reciprocal(math_ops.cos(x)) secx2 = math_ops.square(secx) - return grad * secx2 + if compat.forward_compatible(2019, 4, 7): + return math_ops.mul_no_nan(secx2, grad) + else: + return secx2 * grad @ops.RegisterGradient("Asin") @@ -843,8 +860,11 @@ def _AsinGrad(op, grad): x2 = math_ops.square(x) one = constant_op.constant(1, dtype=grad.dtype) den = math_ops.sqrt(math_ops.subtract(one, x2)) - inv = math_ops.reciprocal(den) - return grad * inv + if compat.forward_compatible(2019, 4, 7): + return math_ops.xdivy(grad, den) + else: + inv = math_ops.reciprocal(den) + return grad * inv @ops.RegisterGradient("Acos") @@ -856,8 +876,11 @@ def _AcosGrad(op, grad): x2 = math_ops.square(x) one = constant_op.constant(1, dtype=grad.dtype) den = math_ops.sqrt(math_ops.subtract(one, x2)) - inv = math_ops.reciprocal(den) - return -grad * inv + if compat.forward_compatible(2019, 4, 7): + return -math_ops.xdivy(grad, den) + else: + inv = math_ops.reciprocal(den) + return -grad * inv @ops.RegisterGradient("Atan") @@ -878,7 +901,10 @@ def _Atan2Grad(op, grad): y = op.inputs[0] x = op.inputs[1] with ops.control_dependencies([grad]): - grad_inv = grad / (math_ops.square(x) + math_ops.square(y)) + if compat.forward_compatible(2019, 4, 7): + grad_inv = math_ops.xdivy(grad, (math_ops.square(x) + math_ops.square(y))) + else: + grad_inv = grad / (math_ops.square(x) + math_ops.square(y)) return x * grad_inv, -y * grad_inv @@ -980,11 +1006,14 @@ def _DivGrad(op, grad): rx, ry = gen_array_ops.broadcast_gradient_args(sx, sy) x = math_ops.conj(x) y = math_ops.conj(y) - return (array_ops.reshape( - math_ops.reduce_sum(math_ops.divide(grad, y), rx), sx), + if compat.forward_compatible(2019, 4, 7): + div_op = math_ops.div_no_nan + else: + div_op = math_ops.divide + return (array_ops.reshape(math_ops.reduce_sum(div_op(grad, y), rx), sx), array_ops.reshape( - math_ops.reduce_sum( - grad * math_ops.divide(math_ops.divide(-x, y), y), ry), sy)) + math_ops.reduce_sum(grad * div_op(math_ops.divide(-x, y), y), ry), + sy)) @ops.RegisterGradient("FloorDiv") @@ -1061,8 +1090,14 @@ def _PowGrad(op, grad): x = math_ops.conj(x) y = math_ops.conj(y) z = math_ops.conj(z) - gx = array_ops.reshape( - math_ops.reduce_sum(grad * y * math_ops.pow(x, y - 1), rx), sx) + + if compat.forward_compatible(2019, 4, 7): + gx = array_ops.reshape( + math_ops.reduce_sum( + gen_math_ops.mul_no_nan(y * math_ops.pow(x, y - 1), grad), rx), sx) + else: + gx = array_ops.reshape( + math_ops.reduce_sum(grad * y * math_ops.pow(x, y - 1), rx), sx) # Avoid false singularity at x = 0 if x.dtype.is_complex: # real(x) < 0 is fine for the complex case @@ -1072,7 +1107,11 @@ def _PowGrad(op, grad): mask = x > 0 safe_x = array_ops.where(mask, x, array_ops.ones_like(x)) log_x = array_ops.where(mask, math_ops.log(safe_x), array_ops.zeros_like(x)) - gy = array_ops.reshape(math_ops.reduce_sum(grad * z * log_x, ry), sy) + if compat.forward_compatible(2019, 4, 7): + gy = array_ops.reshape( + math_ops.reduce_sum(gen_math_ops.mul_no_nan(z * log_x, grad), ry), sy) + else: + gy = array_ops.reshape(math_ops.reduce_sum(grad * z * log_x, ry), sy) return gx, gy diff --git a/tensorflow/python/ops/parallel_for/pfor.py b/tensorflow/python/ops/parallel_for/pfor.py index d6ba04917ae..dc1ed88d475 100644 --- a/tensorflow/python/ops/parallel_for/pfor.py +++ b/tensorflow/python/ops/parallel_for/pfor.py @@ -2070,72 +2070,73 @@ def _convert_cast(pfor_input): @RegisterPForWithArgs("Abs", math_ops.abs) -@RegisterPForWithArgs("Acosh", math_ops.acosh) @RegisterPForWithArgs("Acos", math_ops.acos) +@RegisterPForWithArgs("Acosh", math_ops.acosh) @RegisterPForWithArgs("Add", math_ops.add) @RegisterPForWithArgs("AddV2", math_ops.add_v2) @RegisterPForWithArgs("Angle", math_ops.angle) -@RegisterPForWithArgs("Asinh", math_ops.asinh) @RegisterPForWithArgs("Asin", math_ops.asin) +@RegisterPForWithArgs("Asinh", math_ops.asinh) +@RegisterPForWithArgs("Atan", math_ops.atan) @RegisterPForWithArgs("Atan2", math_ops.atan2) @RegisterPForWithArgs("Atanh", math_ops.atanh) -@RegisterPForWithArgs("Atan", math_ops.atan) @RegisterPForWithArgs("BesselI0e", math_ops.bessel_i0e) @RegisterPForWithArgs("BesselI1e", math_ops.bessel_i1e) @RegisterPForWithArgs("BitwiseAnd", bitwise_ops.bitwise_and) @RegisterPForWithArgs("BitwiseOr", bitwise_ops.bitwise_or) @RegisterPForWithArgs("BitwiseXor", bitwise_ops.bitwise_xor) @RegisterPForWithArgs("Ceil", math_ops.ceil) -@RegisterPForWithArgs("ComplexAbs", math_ops.complex_abs) @RegisterPForWithArgs("Complex", math_ops.complex) +@RegisterPForWithArgs("ComplexAbs", math_ops.complex_abs) @RegisterPForWithArgs("Conj", math_ops.conj) -@RegisterPForWithArgs("Cosh", math_ops.cosh) @RegisterPForWithArgs("Cos", math_ops.cos) +@RegisterPForWithArgs("Cosh", math_ops.cosh) @RegisterPForWithArgs("Digamma", math_ops.digamma) @RegisterPForWithArgs("Div", math_ops.div) @RegisterPForWithArgs("DivNoNan", math_ops.div_no_nan) @RegisterPForWithArgs("Elu", nn_ops.elu) @RegisterPForWithArgs("Equal", math_ops.equal) -@RegisterPForWithArgs("Erfc", math_ops.erfc) @RegisterPForWithArgs("Erf", math_ops.erf) -@RegisterPForWithArgs("Expm1", math_ops.expm1) +@RegisterPForWithArgs("Erfc", math_ops.erfc) @RegisterPForWithArgs("Exp", math_ops.exp) -@RegisterPForWithArgs("FloorDiv", math_ops.floor_div) +@RegisterPForWithArgs("Expm1", math_ops.expm1) @RegisterPForWithArgs("Floor", math_ops.floor) +@RegisterPForWithArgs("FloorDiv", math_ops.floor_div) @RegisterPForWithArgs("FloorMod", math_ops.floor_mod) -@RegisterPForWithArgs("GreaterEqual", math_ops.greater_equal) @RegisterPForWithArgs("Greater", math_ops.greater) -@RegisterPForWithArgs("Igammac", math_ops.igammac) -@RegisterPForWithArgs("IgammaGradA", math_ops.igamma_grad_a) +@RegisterPForWithArgs("GreaterEqual", math_ops.greater_equal) @RegisterPForWithArgs("Igamma", math_ops.igamma) +@RegisterPForWithArgs("IgammaGradA", math_ops.igamma_grad_a) +@RegisterPForWithArgs("Igammac", math_ops.igammac) @RegisterPForWithArgs("Imag", math_ops.imag) -@RegisterPForWithArgs("Invert", bitwise_ops.invert) @RegisterPForWithArgs("Inv", math_ops.inv) +@RegisterPForWithArgs("Invert", bitwise_ops.invert) @RegisterPForWithArgs("IsFinite", math_ops.is_finite) @RegisterPForWithArgs("IsInf", math_ops.is_inf) @RegisterPForWithArgs("LeftShift", bitwise_ops.left_shift) -@RegisterPForWithArgs("LessEqual", math_ops.less_equal) @RegisterPForWithArgs("Less", math_ops.less) +@RegisterPForWithArgs("LessEqual", math_ops.less_equal) @RegisterPForWithArgs("Lgamma", math_ops.lgamma) +@RegisterPForWithArgs("Log", math_ops.log) @RegisterPForWithArgs("Log1p", math_ops.log1p) @RegisterPForWithArgs("LogicalAnd", math_ops.logical_and) @RegisterPForWithArgs("LogicalNot", math_ops.logical_not) @RegisterPForWithArgs("LogicalOr", math_ops.logical_or) @RegisterPForWithArgs("LogicalXor", math_ops.logical_xor) -@RegisterPForWithArgs("Log", math_ops.log) @RegisterPForWithArgs("Maximum", math_ops.maximum) @RegisterPForWithArgs("Minimum", math_ops.minimum) @RegisterPForWithArgs("Mod", math_ops.mod) @RegisterPForWithArgs("Mul", math_ops.multiply) +@RegisterPForWithArgs("MulNoNan", math_ops.mul_no_nan) @RegisterPForWithArgs("Neg", math_ops.negative) @RegisterPForWithArgs("NotEqual", math_ops.not_equal) @RegisterPForWithArgs("Polygamma", math_ops.polygamma) @RegisterPForWithArgs("Pow", math_ops.pow) -@RegisterPForWithArgs("RealDiv", math_ops.divide) @RegisterPForWithArgs("Real", math_ops.real) +@RegisterPForWithArgs("RealDiv", math_ops.divide) @RegisterPForWithArgs("Reciprocal", math_ops.reciprocal) -@RegisterPForWithArgs("Relu6", nn_ops.relu6) @RegisterPForWithArgs("Relu", nn_ops.relu) +@RegisterPForWithArgs("Relu6", nn_ops.relu6) @RegisterPForWithArgs("RightShift", bitwise_ops.right_shift) @RegisterPForWithArgs("Rint", math_ops.rint) @RegisterPForWithArgs("Round", math_ops.round) @@ -2143,18 +2144,20 @@ def _convert_cast(pfor_input): @RegisterPForWithArgs("Selu", nn_ops.selu) @RegisterPForWithArgs("Sigmoid", math_ops.sigmoid) @RegisterPForWithArgs("Sign", math_ops.sign) -@RegisterPForWithArgs("Sinh", math_ops.sinh) @RegisterPForWithArgs("Sin", math_ops.sin) +@RegisterPForWithArgs("Sinh", math_ops.sinh) @RegisterPForWithArgs("Softplus", nn_ops.softplus) @RegisterPForWithArgs("Softsign", nn_ops.softsign) @RegisterPForWithArgs("Sqrt", math_ops.sqrt) -@RegisterPForWithArgs("SquaredDifference", math_ops.squared_difference) @RegisterPForWithArgs("Square", math_ops.square) +@RegisterPForWithArgs("SquaredDifference", math_ops.squared_difference) @RegisterPForWithArgs("Sub", math_ops.subtract) -@RegisterPForWithArgs("Tanh", math_ops.tanh) @RegisterPForWithArgs("Tan", math_ops.tan) +@RegisterPForWithArgs("Tanh", math_ops.tanh) @RegisterPForWithArgs("TruncateDiv", math_ops.truncate_div) @RegisterPForWithArgs("TruncateMod", math_ops.truncate_mod) +@RegisterPForWithArgs("Xdivy", math_ops.xdivy) +@RegisterPForWithArgs("Xlogy", math_ops.xlogy) @RegisterPForWithArgs("Zeta", math_ops.zeta) def _convert_cwise(pfor_input, op_type, op_func): # Note that ops handled here do not have attributes except "T" and "Tout", and diff --git a/tensorflow/python/ops/raw_ops_test.py b/tensorflow/python/ops/raw_ops_test.py index a504679046d..fff94f5c25a 100644 --- a/tensorflow/python/ops/raw_ops_test.py +++ b/tensorflow/python/ops/raw_ops_test.py @@ -18,6 +18,7 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function +from tensorflow.python.eager import context from tensorflow.python.framework import constant_op from tensorflow.python.framework import ops from tensorflow.python.framework import test_util @@ -37,10 +38,27 @@ class RawOpsTest(test.TestCase): gen_math_ops.Add(1., 1.) def testRequiresKwargs_providesSuggestion(self): - msg = "possible keys: \\['x', 'y'\\]" + msg = "possible keys: \\['x', 'y', 'name'\\]" with self.assertRaisesRegexp(TypeError, msg): gen_math_ops.Add(1., y=2.) + def testName(self): + x = constant_op.constant(1) + op = gen_math_ops.Add(x=x, y=x, name="double") + if not context.executing_eagerly(): + # `Tensor.name` is not available in eager. + self.assertEqual(op.name, "double:0") + + def testDoc(self): + self.assertEqual(gen_math_ops.add.__doc__, gen_math_ops.Add.__doc__) + + def testDefaults(self): + x = constant_op.constant([[True]]) + self.assertAllClose( + gen_math_ops.Any(input=x, axis=0), + gen_math_ops.Any(input=x, axis=0, keep_dims=False)) + + if __name__ == "__main__": ops.enable_eager_execution() test.main() diff --git a/tensorflow/python/ops/string_ops.py b/tensorflow/python/ops/string_ops.py index f75634d856e..ebd0d9b4400 100644 --- a/tensorflow/python/ops/string_ops.py +++ b/tensorflow/python/ops/string_ops.py @@ -192,15 +192,18 @@ def string_format(template, inputs, placeholder="{}", summarize=3, name=None): name=name) -@tf_export("string_split") -def string_split(source, delimiter=" ", skip_empty=True): # pylint: disable=invalid-name +@tf_export(v1=["string_split"]) +@deprecation.deprecated_args(None, + "delimiter is deprecated, please use sep instead.", + "delimiter") +def string_split(source, sep=None, skip_empty=True, delimiter=None): # pylint: disable=invalid-name """Split elements of `source` based on `delimiter` into a `SparseTensor`. Let N be the size of source (typically N will be the batch size). Split each element of `source` based on `delimiter` and return a `SparseTensor` containing the split tokens. Empty tokens are ignored. - If `delimiter` is an empty string, each element of the `source` is split + If `sep` is an empty string, each element of the `source` is split into individual strings, each containing one byte. (This includes splitting multibyte sequences of UTF-8.) If delimiter contains multiple bytes, it is treated as a set of delimiters with each considered a potential split point. @@ -219,9 +222,10 @@ def string_split(source, delimiter=" ", skip_empty=True): # pylint: disable=inv Args: source: `1-D` string `Tensor`, the strings to split. - delimiter: `0-D` string `Tensor`, the delimiter character, the string should - be length 0 or 1. + sep: `0-D` string `Tensor`, the delimiter character, the string should + be length 0 or 1. Default is ' '. skip_empty: A `bool`. If `True`, skip the empty strings from the result. + delimiter: deprecated alias for `sep`. Raises: ValueError: If delimiter is not a string. @@ -231,6 +235,11 @@ def string_split(source, delimiter=" ", skip_empty=True): # pylint: disable=inv The first column of the indices corresponds to the row in `source` and the second column corresponds to the index of the split component in this row. """ + delimiter = deprecation.deprecated_argument_lookup( + "sep", sep, "delimiter", delimiter) + + if delimiter is None: + delimiter = " " delimiter = ops.convert_to_tensor(delimiter, dtype=dtypes.string) source = ops.convert_to_tensor(source, dtype=dtypes.string) @@ -265,7 +274,7 @@ def string_split_v2(source, sep=None, maxsplit=-1): deemed to delimit empty strings. For example, source of `"1<>2<><>3"` and sep of `"<>"` returns `["1", "2", "", "3"]`. If `sep` is None or an empty string, consecutive whitespace are regarded as a single separator, and the - result will contain no empty strings at the startor end if the string has + result will contain no empty strings at the start or end if the string has leading or trailing whitespace. Note that the above mentioned behavior matches python's str.split. diff --git a/tensorflow/python/ops/summary_op_util.py b/tensorflow/python/ops/summary_op_util.py index 93d8d50842b..37b80d5e20b 100644 --- a/tensorflow/python/ops/summary_op_util.py +++ b/tensorflow/python/ops/summary_op_util.py @@ -21,9 +21,7 @@ from __future__ import print_function import contextlib import re -from tensorflow.python.distribute import distribution_strategy_context from tensorflow.python.framework import ops -from tensorflow.python.framework import tensor_util from tensorflow.python.platform import tf_logging @@ -44,30 +42,6 @@ def collect(val, collections, default_collections): _INVALID_TAG_CHARACTERS = re.compile(r'[^-/\w\.]') -def skip_summary(): - """Determines if summary should be skipped. - - If using multiple replicas in distributed strategy, skip summaries on all - replicas except the first one (replica_id=0). - - Returns: - True if the summary is skipped; False otherwise. - """ - - # TODO(priyag): Add a new optional argument that will provide multiple - # alternatives to override default behavior. (e.g. run on last replica, - # compute sum or mean across replicas). - replica_context = distribution_strategy_context.get_replica_context() - if not replica_context: - return False - # TODO(b/118385803): when replica_id of _TPUReplicaContext is properly - # initialized, remember to change here as well. - replica_id = replica_context.replica_id_in_sync_group - if isinstance(replica_id, ops.Tensor): - replica_id = tensor_util.constant_value(replica_id) - return replica_id and replica_id > 0 - - def clean_tag(name): """Cleans a tag. Removes illegal characters for instance. diff --git a/tensorflow/python/saved_model/BUILD b/tensorflow/python/saved_model/BUILD index 6ba639f4239..0b5c22c7a53 100644 --- a/tensorflow/python/saved_model/BUILD +++ b/tensorflow/python/saved_model/BUILD @@ -391,6 +391,7 @@ tf_py_test( "//tensorflow/python:tensor_spec", "//tensorflow/python/eager:def_function", "//tensorflow/python/eager:test", + "//tensorflow/python/module", "//tensorflow/python/training/tracking:tracking", ], tags = ["no_mac"], # TODO(b/124822121): Re-enable this test. diff --git a/tensorflow/python/saved_model/load.py b/tensorflow/python/saved_model/load.py index 61974416e75..326f54c7194 100644 --- a/tensorflow/python/saved_model/load.py +++ b/tensorflow/python/saved_model/load.py @@ -126,17 +126,52 @@ class _Loader(object): def _load_all(self): """Load all saved objects and wire their properties.""" - self._nodes = [] - node_setters = [] + # Maps from node ids to recreated objects + nodes = {} + # Maps from node ids to setter functions (same signature as setattr) for + # setting dependencies. + node_setters = {} + + # Figure out which objects are slot variables. These objects are created + # with Optimizer.add_slot rather than _recreate_variable. + slot_variable_node_ids = set() for proto in self._proto.nodes: + for slot_variable_proto in proto.slot_variables: + slot_variable_node_ids.add(slot_variable_proto.slot_variable_node_id) + + # Re-create everything except slot variables. + for node_id, proto in enumerate(self._proto.nodes): + if node_id in slot_variable_node_ids: + # Defer recreating slot variables so we can use the public Optimizer + # interface. + continue node, setter = self._recreate(proto) - self._nodes.append(node) - node_setters.append(setter) + nodes[node_id] = node + node_setters[node_id] = setter + + # Now that we have created the variables being optimized, we have enough + # information to re-create slot variables for them. + for node_id, proto in enumerate(self._proto.nodes): + optimizer_object = nodes[node_id] + for slot_variable_proto in proto.slot_variables: + optimized_variable = nodes[ + slot_variable_proto.original_variable_node_id] + slot_variable = optimizer_object.add_slot( + var=optimized_variable, + slot_name=slot_variable_proto.slot_name) + nodes[slot_variable_proto.slot_variable_node_id] = slot_variable + node_setters[slot_variable_proto.slot_variable_node_id] = setattr + + self._nodes = [] + # After creating the objects, construct the edges between the objects. - for obj, object_proto, setter in zip(self._nodes, self._proto.nodes, - node_setters): + for node_id, object_proto in enumerate(self._proto.nodes): + obj = nodes[node_id] + setter = node_setters[node_id] + self._nodes.append(obj) + for reference in object_proto.children: - setter(obj, reference.local_name, self._nodes[reference.node_id]) + setter(obj, reference.local_name, nodes[reference.node_id]) # Note: if an object has an attribute `__call__` add a class method # that allows `obj()` syntax to work. This is done per-instance to # allow `callable` to be used to find out if an object is callable. diff --git a/tensorflow/python/saved_model/load_test.py b/tensorflow/python/saved_model/load_test.py index f1c448c3a07..d80de3c87e3 100644 --- a/tensorflow/python/saved_model/load_test.py +++ b/tensorflow/python/saved_model/load_test.py @@ -34,7 +34,10 @@ from tensorflow.python.framework import dtypes from tensorflow.python.framework import ops from tensorflow.python.framework import tensor_spec from tensorflow.python.keras.engine import sequential +from tensorflow.python.keras.layers import core +from tensorflow.python.keras.optimizer_v2 import adam from tensorflow.python.lib.io import file_io +from tensorflow.python.module import module from tensorflow.python.ops import array_ops from tensorflow.python.ops import lookup_ops from tensorflow.python.ops import math_ops @@ -96,6 +99,26 @@ class LoadTest(test.TestCase, parameterized.TestCase): imported.weights.assign(4.0) self.assertEqual(8., imported.f(constant_op.constant(2.)).numpy()) + def test_control_outputs(self, cycles): + exported = tracking.AutoTrackable() + exported.v = variables.Variable(1.) + exported.f = def_function.function( + lambda: exported.v.assign(2., name="should_be_control_output")) + exported_graph = exported.f.get_concrete_function().graph + self.assertIn( + exported_graph.get_operation_by_name("should_be_control_output"), + exported_graph.control_outputs) + + imported = self.cycle(exported, cycles) + # Calling get_concrete_function wraps in a second call operation; we want to + # inspect the original function body for the control output; digging into + # graph.as_graph_def() and its FunctionDefLibrary is another option. + imported_concrete, = imported.f._concrete_functions + imported_graph = imported_concrete.graph + self.assertIn( + imported_graph.get_operation_by_name("should_be_control_output"), + imported_graph.control_outputs) + def _make_asset(self, contents): filename = tempfile.mktemp(prefix=self.get_temp_dir()) with open(filename, "w") as f: @@ -375,6 +398,42 @@ class LoadTest(test.TestCase, parameterized.TestCase): self.assertEqual(5, result[1].numpy()) self.assertEqual(0.5, result[2]["x"].numpy()) + def test_optimizer(self, cycles): + + class _HasOptimizer(module.Module): + + def __init__(self): + super(_HasOptimizer, self).__init__() + self.layer = core.Dense(1) + self.optimizer = adam.Adam(0.01) + + @def_function.function + def __call__(self, x): + return self.layer(x) + + @def_function.function + def train(self, x, y): + with backprop.GradientTape() as tape: + predicted = self(x) + loss = math_ops.reduce_sum(math_ops.abs(y - predicted)) + train_vars = self.layer.trainable_variables + grads = tape.gradient(loss, train_vars) + self.optimizer.apply_gradients(zip(grads, train_vars)) + + root = _HasOptimizer() + train_input = dict(x=constant_op.constant([[1.]]), + y=constant_op.constant([[2.]])) + root.train(**train_input) + imported = self.cycle(root, cycles) + self.assertAllClose(root.optimizer.learning_rate.numpy(), + imported.optimizer.learning_rate.numpy()) + self.assertAllClose(root(constant_op.constant([[-0.5]])), + imported(constant_op.constant([[-0.5]]))) + root.train(**train_input) + imported.train(**train_input) + self.assertAllClose(root(constant_op.constant([[-0.5]])), + imported(constant_op.constant([[-0.5]]))) + def test_positional_arguments(self, cycles): def func(x, training=False, abc=7.1, defg=7.7): del abc diff --git a/tensorflow/python/summary/summary.py b/tensorflow/python/summary/summary.py index a01feb3dde0..4802dbb6572 100644 --- a/tensorflow/python/summary/summary.py +++ b/tensorflow/python/summary/summary.py @@ -35,6 +35,7 @@ from tensorflow.core.util.event_pb2 import SessionLog from tensorflow.core.util.event_pb2 import TaggedRunMetadata # pylint: enable=unused-import +from tensorflow.python.distribute import summary_op_util as _distribute_summary_op_util from tensorflow.python.eager import context as _context from tensorflow.python.framework import constant_op as _constant_op from tensorflow.python.framework import dtypes as _dtypes @@ -74,7 +75,7 @@ def scalar(name, tensor, collections=None, family=None): Raises: ValueError: If tensor has the wrong shape or type. """ - if _summary_op_util.skip_summary(): + if _distribute_summary_op_util.skip_summary(): return _constant_op.constant('') with _summary_op_util.summary_scope( name, family, values=[tensor]) as (tag, scope): @@ -129,7 +130,7 @@ def image(name, tensor, max_outputs=3, collections=None, family=None): A scalar `Tensor` of type `string`. The serialized `Summary` protocol buffer. """ - if _summary_op_util.skip_summary(): + if _distribute_summary_op_util.skip_summary(): return _constant_op.constant('') with _summary_op_util.summary_scope( name, family, values=[tensor]) as (tag, scope): @@ -169,7 +170,7 @@ def histogram(name, values, collections=None, family=None): A scalar `Tensor` of type `string`. The serialized `Summary` protocol buffer. """ - if _summary_op_util.skip_summary(): + if _distribute_summary_op_util.skip_summary(): return _constant_op.constant('') with _summary_op_util.summary_scope( name, family, values=[values], @@ -216,7 +217,7 @@ def audio(name, tensor, sample_rate, max_outputs=3, collections=None, A scalar `Tensor` of type `string`. The serialized `Summary` protocol buffer. """ - if _summary_op_util.skip_summary(): + if _distribute_summary_op_util.skip_summary(): return _constant_op.constant('') with _summary_op_util.summary_scope( name, family=family, values=[tensor]) as (tag, scope): @@ -313,7 +314,7 @@ def tensor_summary(name, serialized_summary_metadata = summary_metadata.SerializeToString() - if _summary_op_util.skip_summary(): + if _distribute_summary_op_util.skip_summary(): return _constant_op.constant('') with _summary_op_util.summary_scope( name, family, values=[tensor]) as (tag, scope): @@ -363,7 +364,7 @@ def merge(inputs, collections=None, name=None): raise RuntimeError( 'Merging tf.summary.* ops is not compatible with eager execution. ' 'Use tf.contrib.summary instead.') - if _summary_op_util.skip_summary(): + if _distribute_summary_op_util.skip_summary(): return _constant_op.constant('') name = _summary_op_util.clean_tag(name) with _ops.name_scope(name, 'Merge', inputs): diff --git a/tensorflow/python/tpu/tensor_tracer.py b/tensorflow/python/tpu/tensor_tracer.py index 6d41d8768a3..50a860f78a0 100644 --- a/tensorflow/python/tpu/tensor_tracer.py +++ b/tensorflow/python/tpu/tensor_tracer.py @@ -218,7 +218,7 @@ def _create_tensor_values_cache(graph, num_tensors): _COMPACT_TRACE_ENTRY_INIT_VALUE), trainable=False, use_resource=True, - collections=[_TENSOR_TRACER_STORAGE, ops.GraphKeys.GLOBAL_VARIABLES]) + collections=[_TENSOR_TRACER_STORAGE, ops.GraphKeys.LOCAL_VARIABLES]) class TensorTracer(object): @@ -540,54 +540,56 @@ class TensorTracer(object): cycle is found) and the second element is either the sorted list of nodes or the cycle of nodes found. """ + def _is_loop_edge(op): + """Returns true if the op is the end of a while-loop creating a cycle.""" + return op.type in ['NextIteration'] - def visit(op, cycle, permanently_marked_ops, - temporarily_marked_ops, sorted_ops): - """Recursively visits all Ops in a graph. + def _in_op_degree(op): + """Returns the number of incoming edges to the given op. + The edge calculation skips the edges that come from 'NextIteration' ops. + NextIteration creates a cycle in the graph. We break cycles by treating + this op as 'sink' and ignoring all outgoing edges from it. Args: - op: the current Op being visited. - cycle: a cycle of Ops found. - permanently_marked_ops: the set of Ops that were already visited. - temporarily_marked_ops: the set of Ops that we have visited during - the current descent. - sorted_ops: the list of Ops sorted in topological order. + op: Tf.Operation + Returns: + the number of incoming edges. """ + count = 0 + for op in op.control_inputs + [in_tensor.op for in_tensor in op.inputs]: + if not _is_loop_edge(op): + count += 1 + return count - if cycle: - return - if op in permanently_marked_ops: - return - if op in temporarily_marked_ops: - cycle = temporarily_marked_ops - return - temporarily_marked_ops.add(op) - for i in range(len(op.outputs)): - out_tensor = op.outputs[i] - for consumer_op in out_tensor.consumers(): - visit(consumer_op, cycle, permanently_marked_ops, - temporarily_marked_ops, sorted_ops) - # pylint: disable=protected-access - for ctrl_output_op in op._control_outputs: - # pylint: enable=protected-access - visit(ctrl_output_op, cycle, permanently_marked_ops, - temporarily_marked_ops, sorted_ops) - temporarily_marked_ops.remove(op) - permanently_marked_ops.add(op) - sorted_ops.insert(0, op) - - graph_cycle = set([]) sorted_ops = [] - permanently_marked_ops = set([]) - temporarily_marked_ops = set([]) - unsorted_ops = g.get_operations() - for op in unsorted_ops: - visit(op, graph_cycle, permanently_marked_ops, - temporarily_marked_ops, sorted_ops) - if graph_cycle: - return (False, graph_cycle) + op_in_degree = {op: _in_op_degree(op) for op in g.get_operations()} + + frontier = [op for (op, degree) in op_in_degree.items() if degree == 0] + while frontier: + op = frontier.pop() + # Remove the op from graph, and remove its outgoing edges. + sorted_ops.append(op) + if _is_loop_edge(op): + continue + # pylint: disable=protected-access + consumers = list(op._control_outputs) + # pylint: enable=protected-access + for out_tensor in op.outputs: + consumers += [consumer_op for consumer_op in out_tensor.consumers()] + + for consumer in consumers: + # For each deleted edge shift the bucket of the vertex. + op_in_degree[consumer] -= 1 + if op_in_degree[consumer] == 0: + frontier.append(consumer) + if op_in_degree[consumer] < 0: + raise ValueError('consumer:%s degree mismatch'%consumer.name) + + left_ops = set([op for (op, degree) in op_in_degree.items() if degree > 0]) + if left_ops: + return (False, left_ops) else: - assert len(unsorted_ops) == len(sorted_ops) + assert len(g.get_operations()) == len(sorted_ops) return (True, sorted_ops) @staticmethod diff --git a/tensorflow/python/training/moving_averages.py b/tensorflow/python/training/moving_averages.py index 6efcab28c52..1bae24f67aa 100644 --- a/tensorflow/python/training/moving_averages.py +++ b/tensorflow/python/training/moving_averages.py @@ -203,7 +203,8 @@ def _zero_debias(unbiased_var, value, decay): tensor will also update the shadow variables appropriately. """ with variable_scope.variable_scope( - unbiased_var.op.name, values=[unbiased_var, value, decay]) as scope: + unbiased_var.name[:-len(":0")], values=[unbiased_var, + value, decay]) as scope: with ops.colocate_with(unbiased_var): with ops.init_scope(): biased_initializer = init_ops.zeros_initializer( diff --git a/tensorflow/python/training/moving_averages_test.py b/tensorflow/python/training/moving_averages_test.py index 0a7cff4f562..889d1119555 100644 --- a/tensorflow/python/training/moving_averages_test.py +++ b/tensorflow/python/training/moving_averages_test.py @@ -35,12 +35,19 @@ from tensorflow.python.training import saver as saver_lib class MovingAveragesTest(test.TestCase): - @test_util.run_deprecated_v1 + @test_util.run_in_graph_and_eager_modes def testAssignMovingAverageWithoutZeroDebias(self): - with self.cached_session(): - var = variables.Variable([10.0, 11.0]) - val = constant_op.constant([1.0, 2.0], dtypes.float32) - decay = 0.25 + var = variables.Variable([10.0, 11.0]) + val = constant_op.constant([1.0, 2.0], dtypes.float32) + decay = 0.25 + if context.executing_eagerly(): + self.assertAllClose([10.0, 11.0], self.evaluate(var)) + assign = moving_averages.assign_moving_average( + var, val, decay, zero_debias=False) + self.assertAllClose( + [10.0 * 0.25 + 1.0 * (1.0 - 0.25), 11.0 * 0.25 + 2.0 * (1.0 - 0.25)], + self.evaluate(var)) + else: assign = moving_averages.assign_moving_average( var, val, decay, zero_debias=False) self.evaluate(variables.global_variables_initializer()) @@ -50,19 +57,26 @@ class MovingAveragesTest(test.TestCase): [10.0 * 0.25 + 1.0 * (1.0 - 0.25), 11.0 * 0.25 + 2.0 * (1.0 - 0.25)], self.evaluate(var)) - @test_util.run_deprecated_v1 + @test_util.run_in_graph_and_eager_modes def testAssignMovingAverage(self): with self.cached_session(): var = variables.Variable([0.0, 0.0]) val = constant_op.constant([1.0, 2.0], dtypes.float32) decay = 0.25 - assign = moving_averages.assign_moving_average(var, val, decay) - self.evaluate(variables.global_variables_initializer()) - self.assertAllClose([0.0, 0.0], self.evaluate(var)) - assign.op.run() - self.assertAllClose( - [1.0 * (1.0 - 0.25) / (1 - 0.25), 2.0 * (1.0 - 0.25) / (1 - 0.25)], - self.evaluate(var)) + if context.executing_eagerly(): + self.assertAllClose([0.0, 0.0], self.evaluate(var)) + assign = moving_averages.assign_moving_average(var, val, decay) + self.assertAllClose( + [1.0 * (1.0 - 0.25) / (1 - 0.25), 2.0 * (1.0 - 0.25) / (1 - 0.25)], + self.evaluate(var)) + else: + assign = moving_averages.assign_moving_average(var, val, decay) + self.evaluate(variables.global_variables_initializer()) + self.assertAllClose([0.0, 0.0], self.evaluate(var)) + assign.op.run() + self.assertAllClose( + [1.0 * (1.0 - 0.25) / (1 - 0.25), 2.0 * (1.0 - 0.25) / (1 - 0.25)], + self.evaluate(var)) @test_util.run_deprecated_v1 def testAssignMovingAverageNewNamingMultipleCalls(self): @@ -143,7 +157,6 @@ class MovingAveragesTest(test.TestCase): denominator_2 = denominator_1 * decay + weight_2 * (1.0 - decay) self.assertAllClose(bfloat16(numerator_2 / denominator_2), wma_array) - def _Repeat(value, dim): if dim == 1: return value diff --git a/tensorflow/python/util/tf_inspect.py b/tensorflow/python/util/tf_inspect.py index a53f03a03fa..906776d5dba 100644 --- a/tensorflow/python/util/tf_inspect.py +++ b/tensorflow/python/util/tf_inspect.py @@ -198,7 +198,9 @@ def _get_argspec_for_partial(obj): # Partial function may give default value to any argument, therefore length # of default value list must be len(args) to allow each argument to # potentially be given a default value. - all_defaults = [None] * len(args) + no_default = object() + all_defaults = [no_default] * len(args) + if defaults: all_defaults[-len(defaults):] = defaults @@ -208,7 +210,8 @@ def _get_argspec_for_partial(obj): all_defaults[idx] = default # Find first argument with default value set. - first_default = next((idx for idx, x in enumerate(all_defaults) if x), None) + first_default = next( + (idx for idx, x in enumerate(all_defaults) if x is not no_default), None) # If no default values are found, return ArgSpec with defaults=None. if first_default is None: @@ -217,7 +220,7 @@ def _get_argspec_for_partial(obj): # Checks if all arguments have default value set after first one. invalid_default_values = [ args[i] for i, j in enumerate(all_defaults) - if j is None and i > first_default + if j is no_default and i > first_default ] if invalid_default_values: diff --git a/tensorflow/python/util/tf_inspect_test.py b/tensorflow/python/util/tf_inspect_test.py index 910848e67f9..7c030d69216 100644 --- a/tensorflow/python/util/tf_inspect_test.py +++ b/tensorflow/python/util/tf_inspect_test.py @@ -122,6 +122,20 @@ class TfInspectTest(test.TestCase): self.assertEqual(argspec, tf_inspect.getargspec(partial_func)) + def testGetArgSpecOnPartialArgumentWithConvertibleToFalse(self): + """Tests getargspec on partial function with args that convert to False.""" + + def func(m, n): + return 2 * m + n + + partial_func = functools.partial(func, m=0) + + exception_message = (r"Some arguments \['n'\] do not have default value, " + "but they are positioned after those with default " + "values. This can not be expressed with ArgSpec.") + with self.assertRaisesRegexp(ValueError, exception_message): + tf_inspect.getargspec(partial_func) + def testGetArgSpecOnPartialInvalidArgspec(self): """Tests getargspec on partial function that doesn't have valid argspec.""" diff --git a/tensorflow/stream_executor/cuda/cuda_dnn.cc b/tensorflow/stream_executor/cuda/cuda_dnn.cc index a143af6538b..c0cc00c7208 100644 --- a/tensorflow/stream_executor/cuda/cuda_dnn.cc +++ b/tensorflow/stream_executor/cuda/cuda_dnn.cc @@ -161,7 +161,7 @@ class CudnnAccess { explicit CudnnAccess(cudnnHandle_t handle) : handle_(handle) {} ~CudnnAccess() { - mutex_lock lock(*mutex_); + mutex_lock lock(mutex_); cudnnDestroy(handle_); } @@ -182,7 +182,7 @@ class CudnnAccess { // therefore a bad idea (performance wise) to call any cuDNN APIs that // enqueue work in the stream. CudnnHandle GetHandle(GpuExecutor* executor, Stream* stream) { - mutex_lock lock(*mutex_); + mutex_lock lock(mutex_); gpu::ScopedActivateExecutorContext context(executor); CUstream cu_stream = stream ? AsGpuStreamValue(stream) : cudaStreamLegacy; const auto status = cudnnSetStream(handle_, cu_stream); @@ -192,19 +192,12 @@ class CudnnAccess { private: // Guards the enqueueing of cuDNN operations via the handle_ below. - // - // The mutex is static to work around b/124313574: calling cuDNN concurrently - // with different handles is not thread safe, even though the documentation - // suggests it is: - // https://docs.nvidia.com/deeplearning/sdk/cudnn-developer-guide/index.html#thread-safety. - static mutex* mutex_; + mutex mutex_; // cuDNN library handle. - cudnnHandle_t handle_ GUARDED_BY(*mutex_); // Owned. + cudnnHandle_t handle_ GUARDED_BY(mutex_); // Owned. }; -mutex* CudnnAccess::mutex_ = new mutex; - namespace { // A helper function to return the internal compute type for diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl index 2bcc1d755db..77bceaa3e73 100644 --- a/tensorflow/tensorflow.bzl +++ b/tensorflow/tensorflow.bzl @@ -211,6 +211,12 @@ def if_windows(a, otherwise = []): "//conditions:default": otherwise, }) +def if_windows_cuda(a, otherwise = []): + return select({ + clean_dep("//tensorflow:with_cuda_support_windows_override"): a, + "//conditions:default": otherwise, + }) + def if_not_windows_cuda(a): return select({ clean_dep("//tensorflow:with_cuda_support_windows_override"): [], @@ -1233,7 +1239,6 @@ def tf_gpu_library(deps = None, cuda_deps = None, copts = tf_copts(), **kwargs): clean_dep("//tensorflow/stream_executor/cuda:cudart_stub"), "@local_config_cuda//cuda:cuda_headers", ]) + if_rocm_is_configured(cuda_deps + [ - # rocm_header placeholder "@local_config_rocm//rocm:rocm_headers", ]), copts = (copts + if_cuda(["-DGOOGLE_CUDA=1"]) + if_rocm(["-DTENSORFLOW_USE_ROCM=1"]) + if_mkl(["-DINTEL_MKL=1"]) + if_mkl_open_source_only(["-DINTEL_MKL_DNN_ONLY"]) + if_enable_mkl(["-DENABLE_MKL"]) + if_tensorrt(["-DGOOGLE_TENSORRT=1"])), @@ -2177,7 +2182,16 @@ def tf_py_build_info_genrule(): name = "py_build_info_gen", outs = ["platform/build_info.py"], cmd = - "$(location //tensorflow/tools/build_info:gen_build_info) --raw_generate \"$@\" --build_config " + if_cuda("cuda", "cpu") + if_windows(" --key_value msvcp_dll_name=msvcp140.dll", ""), + "$(location //tensorflow/tools/build_info:gen_build_info) --raw_generate \"$@\" --build_config " + + if_cuda("cuda", "cpu") + + " --key_value " + + if_cuda(" cuda_version_number=$${TF_CUDA_VERSION} cudnn_version_number=$${TF_CUDNN_VERSION} ", "") + + if_windows(" msvcp_dll_name=msvcp140.dll ", "") + + if_windows_cuda(" ".join([ + "nvcuda_dll_name=nvcuda.dll", + "cudart_dll_name=cudart64_$${TF_CUDA_VERSION/\\./}.dll", + "cudnn_dll_name=cudnn64_$${TF_CUDNN_VERSION}.dll", + ]), ""), local = 1, tools = [clean_dep("//tensorflow/tools/build_info:gen_build_info")], ) diff --git a/tensorflow/tools/api/golden/v1/tensorflow.autograph.experimental.-verbosity.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.autograph.experimental.-verbosity.pbtxt deleted file mode 100644 index c4d5b77c073..00000000000 --- a/tensorflow/tools/api/golden/v1/tensorflow.autograph.experimental.-verbosity.pbtxt +++ /dev/null @@ -1,12 +0,0 @@ -path: "tensorflow.autograph.experimental.Verbosity" -tf_class { - is_instance: "" - member { - name: "BRIEF" - mtype: "" - } - member { - name: "VERBOSE" - mtype: "" - } -} diff --git a/tensorflow/tools/api/golden/v1/tensorflow.autograph.experimental.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.autograph.experimental.pbtxt index 5747dac7ab2..cd8f0716d48 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.autograph.experimental.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.autograph.experimental.pbtxt @@ -4,8 +4,4 @@ tf_module { name: "Feature" mtype: "" } - member { - name: "Verbosity" - mtype: "" - } } diff --git a/tensorflow/tools/api/golden/v1/tensorflow.autograph.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.autograph.pbtxt index 0baf6e03552..8880ed4f0cb 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.autograph.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.autograph.pbtxt @@ -10,11 +10,11 @@ tf_module { } member_method { name: "to_code" - argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'indentation\', \'experimental_optional_features\', \'experimental_partial_types\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \' \', \'Feature.ALL\', \'None\'], " + argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'indentation\', \'experimental_optional_features\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \' \', \'Feature.ALL\'], " } member_method { name: "to_graph" - argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'experimental_optional_features\', \'experimental_strip_decorators\', \'experimental_verbose\', \'experimental_partial_types\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \'Feature.ALL\', \'None\', \'Verbosity.BRIEF\', \'None\'], " + argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'experimental_optional_features\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \'Feature.ALL\'], " } member_method { name: "trace" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.distribute.-mirrored-strategy.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.distribute.-mirrored-strategy.pbtxt index 14da8618ceb..fbac8c087f1 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.distribute.-mirrored-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.distribute.-mirrored-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v1/tensorflow.distribute.-one-device-strategy.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.distribute.-one-device-strategy.pbtxt index a87a2cf7431..184ff96e632 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.distribute.-one-device-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.distribute.-one-device-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v1/tensorflow.distribute.-strategy.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.distribute.-strategy.pbtxt index 5099dc4f818..b6be122b7ac 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.distribute.-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.distribute.-strategy.pbtxt @@ -22,6 +22,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt index 78ce6675b8f..1726e74534a 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt index 29191b79428..8c6ee288f28 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt index 887df7fef4a..927f1a8f505 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt @@ -27,6 +27,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v1/tensorflow.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.pbtxt index f0416fc5520..462ae112882 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.pbtxt @@ -2210,7 +2210,7 @@ tf_module { } member_method { name: "string_split" - argspec: "args=[\'source\', \'delimiter\', \'skip_empty\'], varargs=None, keywords=None, defaults=[\' \', \'True\'], " + argspec: "args=[\'source\', \'sep\', \'skip_empty\', \'delimiter\'], varargs=None, keywords=None, defaults=[\'None\', \'True\', \'None\'], " } member_method { name: "string_strip" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.raw_ops.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.raw_ops.pbtxt index b02bce23789..489771285c7 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.raw_ops.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.raw_ops.pbtxt @@ -2,4350 +2,4350 @@ path: "tensorflow.raw_ops" tf_module { member_method { name: "Abort" - argspec: "args=[\'error_msg\', \'exit_without_error\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'error_msg\', \'exit_without_error\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'False\', \'None\'], " } member_method { name: "Abs" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulateNV2" - argspec: "args=[\'inputs\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorApplyGradient" - argspec: "args=[\'handle\', \'local_step\', \'gradient\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'local_step\', \'gradient\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorNumAccumulated" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorSetGlobalStep" - argspec: "args=[\'handle\', \'new_global_step\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'new_global_step\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorTakeGradient" - argspec: "args=[\'handle\', \'num_required\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'num_required\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Acos" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Acosh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Add" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AddManySparseToTensorsMap" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "AddN" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AddSparseToTensorsMap" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "AddV2" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustContrast" - argspec: "args=[\'images\', \'contrast_factor\', \'min_value\', \'max_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'contrast_factor\', \'min_value\', \'max_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustContrastv2" - argspec: "args=[\'images\', \'contrast_factor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'contrast_factor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustHue" - argspec: "args=[\'images\', \'delta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'delta\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustSaturation" - argspec: "args=[\'images\', \'scale\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'scale\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "All" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AllCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "AllToAll" - argspec: "args=[\'input\', \'group_assignment\', \'concat_dimension\', \'split_dimension\', \'split_count\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_assignment\', \'concat_dimension\', \'split_dimension\', \'split_count\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Angle" - argspec: "args=[\'input\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "AnonymousIterator" - argspec: "args=[\'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Any" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdaMax" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "ApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdam" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ApplyAddSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ApplyPowerSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApproximateEqual" - argspec: "args=[\'x\', \'y\', \'tolerance\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'tolerance\', \'name\'], varargs=None, keywords=None, defaults=[\'1e-05\', \'None\'], " } member_method { name: "ArgMax" - argspec: "args=[\'input\', \'dimension\', \'output_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'dimension\', \'output_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ArgMin" - argspec: "args=[\'input\', \'dimension\', \'output_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'dimension\', \'output_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "AsString" - argspec: "args=[\'input\', \'precision\', \'scientific\', \'shortest\', \'width\', \'fill\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'precision\', \'scientific\', \'shortest\', \'width\', \'fill\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'False\', \'False\', \'-1\', \'\', \'None\'], " } member_method { name: "Asin" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Asinh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Assert" - argspec: "args=[\'condition\', \'data\', \'summarize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'condition\', \'data\', \'summarize\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "Assign" - argspec: "args=[\'ref\', \'value\', \'validate_shape\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'value\', \'validate_shape\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'True\', \'None\'], " } member_method { name: "AssignAdd" - argspec: "args=[\'ref\', \'value\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'value\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AssignAddVariableOp" - argspec: "args=[\'resource\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AssignSub" - argspec: "args=[\'ref\', \'value\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'value\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AssignSubVariableOp" - argspec: "args=[\'resource\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AssignVariableOp" - argspec: "args=[\'resource\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Atan" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Atan2" - argspec: "args=[\'y\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Atanh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AudioSpectrogram" - argspec: "args=[\'input\', \'window_size\', \'stride\', \'magnitude_squared\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'window_size\', \'stride\', \'magnitude_squared\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AudioSummary" - argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "AudioSummaryV2" - argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "AvgPool" - argspec: "args=[\'value\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "AvgPool3D" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "AvgPool3DGrad" - argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "AvgPoolGrad" - argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "Barrier" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "BarrierClose" - argspec: "args=[\'handle\', \'cancel_pending_enqueues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'cancel_pending_enqueues\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BarrierIncompleteSize" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BarrierInsertMany" - argspec: "args=[\'handle\', \'keys\', \'values\', \'component_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'keys\', \'values\', \'component_index\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BarrierReadySize" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BarrierTakeMany" - argspec: "args=[\'handle\', \'num_elements\', \'component_types\', \'allow_small_batch\', \'wait_for_incomplete\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'num_elements\', \'component_types\', \'allow_small_batch\', \'wait_for_incomplete\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'-1\', \'None\'], " } member_method { name: "BatchCholesky" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchCholeskyGrad" - argspec: "args=[\'l\', \'grad\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'l\', \'grad\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchDataset" - argspec: "args=[\'input_dataset\', \'batch_size\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchDatasetV2" - argspec: "args=[\'input_dataset\', \'batch_size\', \'drop_remainder\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'drop_remainder\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchFFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchFFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchFFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchIFFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchIFFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchIFFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatMul" - argspec: "args=[\'x\', \'y\', \'adj_x\', \'adj_y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'adj_x\', \'adj_y\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "BatchMatrixBandPart" - argspec: "args=[\'input\', \'num_lower\', \'num_upper\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_lower\', \'num_upper\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixDeterminant" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixDiag" - argspec: "args=[\'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixDiagPart" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixInverse" - argspec: "args=[\'input\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BatchMatrixSetDiag" - argspec: "args=[\'input\', \'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixSolve" - argspec: "args=[\'matrix\', \'rhs\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BatchMatrixSolveLs" - argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "BatchMatrixTriangularSolve" - argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "BatchNormWithGlobalNormalization" - argspec: "args=[\'t\', \'m\', \'v\', \'beta\', \'gamma\', \'variance_epsilon\', \'scale_after_normalization\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'m\', \'v\', \'beta\', \'gamma\', \'variance_epsilon\', \'scale_after_normalization\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchNormWithGlobalNormalizationGrad" - argspec: "args=[\'t\', \'m\', \'v\', \'gamma\', \'backprop\', \'variance_epsilon\', \'scale_after_normalization\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'m\', \'v\', \'gamma\', \'backprop\', \'variance_epsilon\', \'scale_after_normalization\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchSelfAdjointEig" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchSelfAdjointEigV2" - argspec: "args=[\'input\', \'compute_v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_v\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "BatchSvd" - argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "BatchToSpace" - argspec: "args=[\'input\', \'crops\', \'block_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'crops\', \'block_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchToSpaceND" - argspec: "args=[\'input\', \'block_shape\', \'crops\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_shape\', \'crops\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BesselI0e" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BesselI1e" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Betainc" - argspec: "args=[\'a\', \'b\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BiasAdd" - argspec: "args=[\'value\', \'bias\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'bias\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "BiasAddGrad" - argspec: "args=[\'out_backprop\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'out_backprop\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "BiasAddV1" - argspec: "args=[\'value\', \'bias\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'bias\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Bincount" - argspec: "args=[\'arr\', \'size\', \'weights\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'arr\', \'size\', \'weights\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Bitcast" - argspec: "args=[\'input\', \'type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BitwiseAnd" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BitwiseOr" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BitwiseXor" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesBucketize" - argspec: "args=[\'float_values\', \'bucket_boundaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'float_values\', \'bucket_boundaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCalculateBestGainsPerFeature" - argspec: "args=[\'node_id_range\', \'stats_summary_list\', \'l1\', \'l2\', \'tree_complexity\', \'min_node_weight\', \'max_splits\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'node_id_range\', \'stats_summary_list\', \'l1\', \'l2\', \'tree_complexity\', \'min_node_weight\', \'max_splits\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCenterBias" - argspec: "args=[\'tree_ensemble_handle\', \'mean_gradients\', \'mean_hessians\', \'l1\', \'l2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'mean_gradients\', \'mean_hessians\', \'l1\', \'l2\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCreateEnsemble" - argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCreateQuantileStreamResource" - argspec: "args=[\'quantile_stream_resource_handle\', \'epsilon\', \'num_streams\', \'max_elements\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'epsilon\', \'num_streams\', \'max_elements\', \'name\'], varargs=None, keywords=None, defaults=[\'1099511627776\', \'None\'], " } member_method { name: "BoostedTreesDeserializeEnsemble" - argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesEnsembleResourceHandleOp" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "BoostedTreesExampleDebugOutputs" - argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesGetEnsembleStates" - argspec: "args=[\'tree_ensemble_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesMakeQuantileSummaries" - argspec: "args=[\'float_values\', \'example_weights\', \'epsilon\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'float_values\', \'example_weights\', \'epsilon\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesMakeStatsSummary" - argspec: "args=[\'node_ids\', \'gradients\', \'hessians\', \'bucketized_features_list\', \'max_splits\', \'num_buckets\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'node_ids\', \'gradients\', \'hessians\', \'bucketized_features_list\', \'max_splits\', \'num_buckets\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesPredict" - argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceAddSummaries" - argspec: "args=[\'quantile_stream_resource_handle\', \'summaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'summaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceDeserialize" - argspec: "args=[\'quantile_stream_resource_handle\', \'bucket_boundaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'bucket_boundaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceFlush" - argspec: "args=[\'quantile_stream_resource_handle\', \'num_buckets\', \'generate_quantiles\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'num_buckets\', \'generate_quantiles\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceGetBucketBoundaries" - argspec: "args=[\'quantile_stream_resource_handle\', \'num_features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'num_features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceHandleOp" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "BoostedTreesSerializeEnsemble" - argspec: "args=[\'tree_ensemble_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesTrainingPredict" - argspec: "args=[\'tree_ensemble_handle\', \'cached_tree_ids\', \'cached_node_ids\', \'bucketized_features\', \'logits_dimension\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'cached_tree_ids\', \'cached_node_ids\', \'bucketized_features\', \'logits_dimension\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesUpdateEnsemble" - argspec: "args=[\'tree_ensemble_handle\', \'feature_ids\', \'node_ids\', \'gains\', \'thresholds\', \'left_node_contribs\', \'right_node_contribs\', \'max_depth\', \'learning_rate\', \'pruning_mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'feature_ids\', \'node_ids\', \'gains\', \'thresholds\', \'left_node_contribs\', \'right_node_contribs\', \'max_depth\', \'learning_rate\', \'pruning_mode\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BroadcastArgs" - argspec: "args=[\'s0\', \'s1\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'s0\', \'s1\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BroadcastGradientArgs" - argspec: "args=[\'s0\', \'s1\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'s0\', \'s1\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BroadcastTo" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Bucketize" - argspec: "args=[\'input\', \'boundaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'boundaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CTCBeamSearchDecoder" - argspec: "args=[\'inputs\', \'sequence_length\', \'beam_width\', \'top_paths\', \'merge_repeated\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'sequence_length\', \'beam_width\', \'top_paths\', \'merge_repeated\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "CTCGreedyDecoder" - argspec: "args=[\'inputs\', \'sequence_length\', \'merge_repeated\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'sequence_length\', \'merge_repeated\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "CTCLoss" - argspec: "args=[\'inputs\', \'labels_indices\', \'labels_values\', \'sequence_length\', \'preprocess_collapse_repeated\', \'ctc_merge_repeated\', \'ignore_longer_outputs_than_inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'labels_indices\', \'labels_values\', \'sequence_length\', \'preprocess_collapse_repeated\', \'ctc_merge_repeated\', \'ignore_longer_outputs_than_inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'False\', \'None\'], " } member_method { name: "CacheDataset" - argspec: "args=[\'input_dataset\', \'filename\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'filename\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Case" - argspec: "args=[\'branch_index\', \'input\', \'Tout\', \'branches\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'branch_index\', \'input\', \'Tout\', \'branches\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "Cast" - argspec: "args=[\'x\', \'DstT\', \'Truncate\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'DstT\', \'Truncate\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Ceil" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CheckNumerics" - argspec: "args=[\'tensor\', \'message\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'message\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Cholesky" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CholeskyGrad" - argspec: "args=[\'l\', \'grad\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'l\', \'grad\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ChooseFastestBranchDataset" - argspec: "args=[\'input_dataset\', \'ratio_numerator\', \'ratio_denominator\', \'other_arguments\', \'num_elements_per_branch\', \'branches\', \'other_arguments_lengths\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'ratio_numerator\', \'ratio_denominator\', \'other_arguments\', \'num_elements_per_branch\', \'branches\', \'other_arguments_lengths\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ClipByValue" - argspec: "args=[\'t\', \'clip_value_min\', \'clip_value_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'clip_value_min\', \'clip_value_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CloseSummaryWriter" - argspec: "args=[\'writer\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveBcastRecv" - argspec: "args=[\'T\', \'group_size\', \'group_key\', \'instance_key\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'T\', \'group_size\', \'group_key\', \'instance_key\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveBcastSend" - argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveGather" - argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectivePermute" - argspec: "args=[\'input\', \'source_target_pairs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'source_target_pairs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveReduce" - argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'merge_op\', \'final_op\', \'subdiv_offsets\', \'wait_for\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'merge_op\', \'final_op\', \'subdiv_offsets\', \'wait_for\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "CombinedNonMaxSuppression" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size_per_class\', \'max_total_size\', \'iou_threshold\', \'score_threshold\', \'pad_per_class\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size_per_class\', \'max_total_size\', \'iou_threshold\', \'score_threshold\', \'pad_per_class\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "CompareAndBitpack" - argspec: "args=[\'input\', \'threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Complex" - argspec: "args=[\'real\', \'imag\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'real\', \'imag\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ComplexAbs" - argspec: "args=[\'x\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ComputeAccidentalHits" - argspec: "args=[\'true_classes\', \'sampled_candidates\', \'num_true\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'sampled_candidates\', \'num_true\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Concat" - argspec: "args=[\'concat_dim\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'concat_dim\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConcatOffset" - argspec: "args=[\'concat_dim\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'concat_dim\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConcatV2" - argspec: "args=[\'values\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConcatenateDataset" - argspec: "args=[\'input_dataset\', \'another_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'another_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConditionalAccumulator" - argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'MEAN\', \'None\'], " } member_method { name: "ConfigureDistributedTPU" - argspec: "args=[\'embedding_config\', \'tpu_embedding_config\', \'is_global_init\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'embedding_config\', \'tpu_embedding_config\', \'is_global_init\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "Conj" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConjugateTranspose" - argspec: "args=[\'x\', \'perm\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'perm\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Const" - argspec: "args=[\'value\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConsumeMutexLock" - argspec: "args=[\'mutex_lock\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'mutex_lock\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ControlTrigger" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Conv2D" - argspec: "args=[\'input\', \'filter\', \'strides\', \'use_cudnn_on_gpu\', \'padding\', \'explicit_paddings\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'use_cudnn_on_gpu\', \'explicit_paddings\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'[]\', \'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv2DBackpropFilter" - argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'use_cudnn_on_gpu\', \'padding\', \'explicit_paddings\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'use_cudnn_on_gpu\', \'explicit_paddings\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'[]\', \'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv2DBackpropInput" - argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'use_cudnn_on_gpu\', \'padding\', \'explicit_paddings\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'use_cudnn_on_gpu\', \'explicit_paddings\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'[]\', \'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3D" - argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropFilter" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropFilterV2" - argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropInput" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropInputV2" - argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Cos" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Cosh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CountUpTo" - argspec: "args=[\'ref\', \'limit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'limit\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CreateSummaryDbWriter" - argspec: "args=[\'writer\', \'db_uri\', \'experiment_name\', \'run_name\', \'user_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'db_uri\', \'experiment_name\', \'run_name\', \'user_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CreateSummaryFileWriter" - argspec: "args=[\'writer\', \'logdir\', \'max_queue\', \'flush_millis\', \'filename_suffix\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'logdir\', \'max_queue\', \'flush_millis\', \'filename_suffix\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CropAndResize" - argspec: "args=[\'image\', \'boxes\', \'box_ind\', \'crop_size\', \'method\', \'extrapolation_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'boxes\', \'box_ind\', \'crop_size\', \'method\', \'extrapolation_value\', \'name\'], varargs=None, keywords=None, defaults=[\'bilinear\', \'0\', \'None\'], " } member_method { name: "CropAndResizeGradBoxes" - argspec: "args=[\'grads\', \'image\', \'boxes\', \'box_ind\', \'method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'image\', \'boxes\', \'box_ind\', \'method\', \'name\'], varargs=None, keywords=None, defaults=[\'bilinear\', \'None\'], " } member_method { name: "CropAndResizeGradImage" - argspec: "args=[\'grads\', \'boxes\', \'box_ind\', \'image_size\', \'T\', \'method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'boxes\', \'box_ind\', \'image_size\', \'T\', \'method\', \'name\'], varargs=None, keywords=None, defaults=[\'bilinear\', \'None\'], " } member_method { name: "Cross" - argspec: "args=[\'a\', \'b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CrossReplicaSum" - argspec: "args=[\'input\', \'group_assignment\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_assignment\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CudnnRNN" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'None\'], " } member_method { name: "CudnnRNNBackprop" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNBackpropV2" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNBackpropV3" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'time_major\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'time_major\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'None\'], " } member_method { name: "CudnnRNNCanonicalToParams" - argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'weights\', \'biases\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'weights\', \'biases\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNParamsSize" - argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'T\', \'S\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'T\', \'S\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNParamsToCanonical" - argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'params\', \'num_params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'params\', \'num_params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNV2" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'None\'], " } member_method { name: "CudnnRNNV3" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'time_major\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'time_major\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'True\', \'None\'], " } member_method { name: "Cumprod" - argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "Cumsum" - argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "DataFormatDimMap" - argspec: "args=[\'x\', \'src_format\', \'dst_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'src_format\', \'dst_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'NCHW\', \'None\'], " } member_method { name: "DataFormatVecPermute" - argspec: "args=[\'x\', \'src_format\', \'dst_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'src_format\', \'dst_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'NCHW\', \'None\'], " } member_method { name: "DatasetToGraph" - argspec: "args=[\'input_dataset\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DatasetToSingleElement" - argspec: "args=[\'dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DebugGradientIdentity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DebugGradientRefIdentity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeAndCropJpeg" - argspec: "args=[\'contents\', \'crop_window\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'crop_window\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'1\', \'True\', \'False\', \'1\', \'\', \'None\'], " } member_method { name: "DecodeBase64" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeBmp" - argspec: "args=[\'contents\', \'channels\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'channels\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "DecodeCSV" - argspec: "args=[\'records\', \'record_defaults\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'records\', \'record_defaults\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\', \'name\'], varargs=None, keywords=None, defaults=[\',\', \'True\', \'\', \'[]\', \'None\'], " } member_method { name: "DecodeCompressed" - argspec: "args=[\'bytes\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'bytes\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "DecodeGif" - argspec: "args=[\'contents\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeJSONExample" - argspec: "args=[\'json_examples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'json_examples\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeJpeg" - argspec: "args=[\'contents\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'1\', \'True\', \'False\', \'1\', \'\', \'None\'], " } member_method { name: "DecodePng" - argspec: "args=[\'contents\', \'channels\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'channels\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \"\", \'None\'], " } member_method { name: "DecodeRaw" - argspec: "args=[\'bytes\', \'out_type\', \'little_endian\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'bytes\', \'out_type\', \'little_endian\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DecodeWav" - argspec: "args=[\'contents\', \'desired_channels\', \'desired_samples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'desired_channels\', \'desired_samples\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'-1\', \'None\'], " } member_method { name: "DeepCopy" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DeleteSessionTensor" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DenseToDenseSetOperation" - argspec: "args=[\'set1\', \'set2\', \'set_operation\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set1\', \'set2\', \'set_operation\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DenseToSparseSetOperation" - argspec: "args=[\'set1\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set1\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DepthToSpace" - argspec: "args=[\'input\', \'block_size\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_size\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "DepthwiseConv2dNative" - argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "DepthwiseConv2dNativeBackpropFilter" - argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "DepthwiseConv2dNativeBackpropInput" - argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Dequantize" - argspec: "args=[\'input\', \'min_range\', \'max_range\', \'mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_range\', \'max_range\', \'mode\', \'name\'], varargs=None, keywords=None, defaults=[\'MIN_COMBINED\', \'None\'], " } member_method { name: "DeserializeIterator" - argspec: "args=[\'resource_handle\', \'serialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource_handle\', \'serialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DeserializeManySparse" - argspec: "args=[\'serialized_sparse\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized_sparse\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DeserializeSparse" - argspec: "args=[\'serialized_sparse\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized_sparse\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DestroyResourceOp" - argspec: "args=[\'resource\', \'ignore_lookup_error\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'ignore_lookup_error\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DestroyTemporaryVariable" - argspec: "args=[\'ref\', \'var_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'var_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Diag" - argspec: "args=[\'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DiagPart" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Digamma" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Dilation2D" - argspec: "args=[\'input\', \'filter\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Dilation2DBackpropFilter" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Dilation2DBackpropInput" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Div" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DivNoNan" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DrawBoundingBoxes" - argspec: "args=[\'images\', \'boxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'boxes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DynamicPartition" - argspec: "args=[\'data\', \'partitions\', \'num_partitions\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'partitions\', \'num_partitions\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DynamicStitch" - argspec: "args=[\'indices\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EagerPyFunc" - argspec: "args=[\'input\', \'token\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'token\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EditDistance" - argspec: "args=[\'hypothesis_indices\', \'hypothesis_values\', \'hypothesis_shape\', \'truth_indices\', \'truth_values\', \'truth_shape\', \'normalize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'hypothesis_indices\', \'hypothesis_values\', \'hypothesis_shape\', \'truth_indices\', \'truth_values\', \'truth_shape\', \'normalize\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Elu" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EluGrad" - argspec: "args=[\'gradients\', \'outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Empty" - argspec: "args=[\'shape\', \'dtype\', \'init\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'init\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "EmptyTensorList" - argspec: "args=[\'element_shape\', \'max_num_elements\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'element_shape\', \'max_num_elements\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EncodeBase64" - argspec: "args=[\'input\', \'pad\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pad\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "EncodeJpeg" - argspec: "args=[\'image\', \'format\', \'quality\', \'progressive\', \'optimize_size\', \'chroma_downsampling\', \'density_unit\', \'x_density\', \'y_density\', \'xmp_metadata\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'format\', \'quality\', \'progressive\', \'optimize_size\', \'chroma_downsampling\', \'density_unit\', \'x_density\', \'y_density\', \'xmp_metadata\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'95\', \'False\', \'False\', \'True\', \'in\', \'300\', \'300\', \'\', \'None\'], " } member_method { name: "EncodePng" - argspec: "args=[\'image\', \'compression\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'compression\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "EncodeWav" - argspec: "args=[\'audio\', \'sample_rate\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'audio\', \'sample_rate\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EnqueueTPUEmbeddingIntegerBatch" - argspec: "args=[\'batch\', \'mode_override\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'batch\', \'mode_override\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "EnqueueTPUEmbeddingSparseBatch" - argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'device_ordinal\', \'combiners\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'device_ordinal\', \'combiners\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'[]\', \'None\'], " } member_method { name: "EnqueueTPUEmbeddingSparseTensorBatch" - argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'device_ordinal\', \'combiners\', \'table_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'table_ids\', \'device_ordinal\', \'combiners\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'[]\', \'None\'], " } member_method { name: "EnsureShape" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Enter" - argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'10\', \'None\'], " } member_method { name: "Equal" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Erf" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Erfc" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EuclideanNorm" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Exit" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Exp" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExpandDims" - argspec: "args=[\'input\', \'dim\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalAssertNextDataset" - argspec: "args=[\'input_dataset\', \'transformations\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'transformations\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalAutoShardDataset" - argspec: "args=[\'input_dataset\', \'num_workers\', \'index\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_workers\', \'index\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalBytesProducedStatsDataset" - argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalCSVDataset" - argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'header\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\', \'record_defaults\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'header\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\', \'record_defaults\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalChooseFastestDataset" - argspec: "args=[\'input_datasets\', \'num_experiments\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_datasets\', \'num_experiments\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDatasetCardinality" - argspec: "args=[\'input_dataset\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDatasetToTFRecord" - argspec: "args=[\'input_dataset\', \'filename\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'filename\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDenseToSparseBatchDataset" - argspec: "args=[\'input_dataset\', \'batch_size\', \'row_shape\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'row_shape\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDirectedInterleaveDataset" - argspec: "args=[\'selector_input_dataset\', \'data_input_datasets\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'selector_input_dataset\', \'data_input_datasets\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalGroupByReducerDataset" - argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'init_func_other_arguments\', \'reduce_func_other_arguments\', \'finalize_func_other_arguments\', \'key_func\', \'init_func\', \'reduce_func\', \'finalize_func\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'init_func_other_arguments\', \'reduce_func_other_arguments\', \'finalize_func_other_arguments\', \'key_func\', \'init_func\', \'reduce_func\', \'finalize_func\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalGroupByWindowDataset" - argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'reduce_func_other_arguments\', \'window_size_func_other_arguments\', \'key_func\', \'reduce_func\', \'window_size_func\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'reduce_func_other_arguments\', \'window_size_func_other_arguments\', \'key_func\', \'reduce_func\', \'window_size_func\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIdentityIndexedDataset" - argspec: "args=[\'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIgnoreErrorsDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIndexedDatasetGet" - argspec: "args=[\'materialized\', \'index\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'materialized\', \'index\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIndexedDatasetMaterialize" - argspec: "args=[\'dataset\', \'materialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'materialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIteratorGetDevice" - argspec: "args=[\'resource\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalLMDBDataset" - argspec: "args=[\'filenames\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalLatencyStatsDataset" - argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalMapAndBatchDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalMapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "ExperimentalMatchingFilesDataset" - argspec: "args=[\'patterns\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'patterns\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalMaterializedIndexDatasetHandle" - argspec: "args=[\'container\', \'shared_name\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalMaxIntraOpParallelismDataset" - argspec: "args=[\'input_dataset\', \'max_intra_op_parallelism\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'max_intra_op_parallelism\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalNonSerializableDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalNumaMapAndBatchDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalParallelInterleaveDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'sloppy\', \'buffer_output_elements\', \'prefetch_input_elements\', \'f\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'sloppy\', \'buffer_output_elements\', \'prefetch_input_elements\', \'f\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalParseExampleDataset" - argspec: "args=[\'input_dataset\', \'num_parallel_calls\', \'dense_defaults\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\', \'output_types\', \'output_shapes\', \'sloppy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_parallel_calls\', \'dense_defaults\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\', \'output_types\', \'output_shapes\', \'sloppy\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalPrivateThreadPoolDataset" - argspec: "args=[\'input_dataset\', \'num_threads\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_threads\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalRandomDataset" - argspec: "args=[\'seed\', \'seed2\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'seed\', \'seed2\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalRebatchDataset" - argspec: "args=[\'input_dataset\', \'num_workers\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_workers\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalScanDataset" - argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalSetStatsAggregatorDataset" - argspec: "args=[\'input_dataset\', \'stats_aggregator\', \'tag\', \'counter_prefix\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'stats_aggregator\', \'tag\', \'counter_prefix\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalSleepDataset" - argspec: "args=[\'input_dataset\', \'sleep_microseconds\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'sleep_microseconds\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalSlidingWindowDataset" - argspec: "args=[\'input_dataset\', \'window_size\', \'window_shift\', \'window_stride\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'window_size\', \'window_shift\', \'window_stride\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalSqlDataset" - argspec: "args=[\'driver_name\', \'data_source_name\', \'query\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'driver_name\', \'data_source_name\', \'query\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalStatsAggregatorHandle" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "ExperimentalStatsAggregatorSummary" - argspec: "args=[\'iterator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalTakeWhileDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalThreadPoolDataset" - argspec: "args=[\'input_dataset\', \'thread_pool\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'thread_pool\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalThreadPoolHandle" - argspec: "args=[\'num_threads\', \'max_intra_op_parallelism\', \'display_name\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_threads\', \'display_name\', \'max_intra_op_parallelism\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'\', \'\', \'None\'], " } member_method { name: "ExperimentalUnbatchDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalUniqueDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Expm1" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExtractGlimpse" - argspec: "args=[\'input\', \'size\', \'offsets\', \'centered\', \'normalized\', \'uniform_noise\', \'noise\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'size\', \'offsets\', \'centered\', \'normalized\', \'uniform_noise\', \'noise\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'True\', \'True\', \'uniform\', \'None\'], " } member_method { name: "ExtractImagePatches" - argspec: "args=[\'images\', \'ksizes\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'ksizes\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExtractJpegShape" - argspec: "args=[\'contents\', \'output_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'output_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ExtractVolumePatches" - argspec: "args=[\'input\', \'ksizes\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksizes\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FIFOQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "FIFOQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "Fact" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FakeParam" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FakeQuantWithMinMaxArgs" - argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'-6\', \'6\', \'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxArgsGradient" - argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'-6\', \'6\', \'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVars" - argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVarsGradient" - argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVarsPerChannel" - argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVarsPerChannelGradient" - argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQueue" - argspec: "args=[\'resource\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Fill" - argspec: "args=[\'dims\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dims\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FilterByLastComponentDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FilterDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FixedLengthRecordDataset" - argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FixedLengthRecordDatasetV2" - argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FixedLengthRecordReader" - argspec: "args=[\'header_bytes\', \'record_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'record_bytes\', \'header_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "FixedLengthRecordReaderV2" - argspec: "args=[\'header_bytes\', \'record_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\', \'encoding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'record_bytes\', \'header_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\', \'encoding\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'\', \'\', \'\', \'None\'], " } member_method { name: "FixedUnigramCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'vocab_file\', \'distortion\', \'num_reserved_ids\', \'num_shards\', \'shard\', \'unigrams\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'vocab_file\', \'distortion\', \'num_reserved_ids\', \'num_shards\', \'shard\', \'unigrams\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'1\', \'0\', \'1\', \'0\', \'[]\', \'0\', \'0\', \'None\'], " } member_method { name: "FlatMapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Floor" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FloorDiv" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FloorMod" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FlushSummaryWriter" - argspec: "args=[\'writer\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "For" - argspec: "args=[\'start\', \'limit\', \'delta\', \'input\', \'body\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'limit\', \'delta\', \'input\', \'body\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FractionalAvgPool" - argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'False\', \'0\', \'0\', \'None\'], " } member_method { name: "FractionalAvgPoolGrad" - argspec: "args=[\'orig_input_tensor_shape\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input_tensor_shape\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "FractionalMaxPool" - argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'False\', \'0\', \'0\', \'None\'], " } member_method { name: "FractionalMaxPoolGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "FusedBatchNorm" - argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedBatchNormGrad" - argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedBatchNormGradV2" - argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedBatchNormV2" - argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedPadConv2D" - argspec: "args=[\'input\', \'paddings\', \'filter\', \'mode\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'filter\', \'mode\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FusedResizeAndPadConv2D" - argspec: "args=[\'input\', \'size\', \'paddings\', \'filter\', \'resize_align_corners\', \'mode\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'size\', \'paddings\', \'filter\', \'mode\', \'strides\', \'padding\', \'resize_align_corners\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Gather" - argspec: "args=[\'params\', \'indices\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params\', \'indices\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "GatherNd" - argspec: "args=[\'params\', \'indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params\', \'indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GatherV2" - argspec: "args=[\'params\', \'indices\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params\', \'indices\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GenerateVocabRemapping" - argspec: "args=[\'new_vocab_file\', \'old_vocab_file\', \'new_vocab_offset\', \'num_new_vocab\', \'old_vocab_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'new_vocab_file\', \'old_vocab_file\', \'new_vocab_offset\', \'num_new_vocab\', \'old_vocab_size\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "GeneratorDataset" - argspec: "args=[\'init_func_other_args\', \'next_func_other_args\', \'finalize_func_other_args\', \'init_func\', \'next_func\', \'finalize_func\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'init_func_other_args\', \'next_func_other_args\', \'finalize_func_other_args\', \'init_func\', \'next_func\', \'finalize_func\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GetSessionHandle" - argspec: "args=[\'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GetSessionHandleV2" - argspec: "args=[\'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GetSessionTensor" - argspec: "args=[\'handle\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Greater" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GreaterEqual" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GuaranteeConst" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "HSVToRGB" - argspec: "args=[\'images\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "HashTable" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "HashTableV2" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "HistogramFixedWidth" - argspec: "args=[\'values\', \'value_range\', \'nbins\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'value_range\', \'nbins\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "HistogramSummary" - argspec: "args=[\'tag\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IFFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IFFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IFFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IRFFT" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IRFFT2D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IRFFT3D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Identity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IdentityN" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IdentityReader" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "IdentityReaderV2" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "If" - argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "Igamma" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IgammaGradA" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Igammac" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Imag" - argspec: "args=[\'input\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ImageSummary" - argspec: "args=[\'tag\', \'tensor\', \'max_images\', \'bad_color\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'max_images\', \'bad_color\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'dtype: DT_UINT8\\ntensor_shape {\\n dim {\\n size: 4\\n }\\n}\\nint_val: 255\\nint_val: 0\\nint_val: 0\\nint_val: 255\\n\', \'None\'], " } member_method { name: "ImmutableConst" - argspec: "args=[\'dtype\', \'shape\', \'memory_region_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'memory_region_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ImportEvent" - argspec: "args=[\'writer\', \'event\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'event\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InTopK" - argspec: "args=[\'predictions\', \'targets\', \'k\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'predictions\', \'targets\', \'k\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InTopKV2" - argspec: "args=[\'predictions\', \'targets\', \'k\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'predictions\', \'targets\', \'k\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InfeedDequeue" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InfeedDequeueTuple" - argspec: "args=[\'dtypes\', \'shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InfeedEnqueue" - argspec: "args=[\'input\', \'shape\', \'layout\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'layout\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'-1\', \'None\'], " } member_method { name: "InfeedEnqueuePrelinearizedBuffer" - argspec: "args=[\'input\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "InfeedEnqueueTuple" - argspec: "args=[\'inputs\', \'shapes\', \'layouts\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'shapes\', \'layouts\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'None\'], " } member_method { name: "InitializeTable" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InitializeTableFromTextFile" - argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\\t\', \'None\'], " } member_method { name: "InitializeTableFromTextFileV2" - argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\\t\', \'None\'], " } member_method { name: "InitializeTableV2" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InplaceAdd" - argspec: "args=[\'x\', \'i\', \'v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'i\', \'v\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InplaceSub" - argspec: "args=[\'x\', \'i\', \'v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'i\', \'v\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InplaceUpdate" - argspec: "args=[\'x\', \'i\', \'v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'i\', \'v\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InterleaveDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'f\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'f\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Inv" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InvGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Invert" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InvertPermutation" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsBoostedTreesEnsembleInitialized" - argspec: "args=[\'tree_ensemble_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsBoostedTreesQuantileStreamResourceInitialized" - argspec: "args=[\'quantile_stream_resource_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsFinite" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsInf" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsNan" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsVariableInitialized" - argspec: "args=[\'ref\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Iterator" - argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorFromStringHandle" - argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "IteratorFromStringHandleV2" - argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "IteratorGetNext" - argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorGetNextAsOptional" - argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorGetNextSync" - argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorToStringHandle" - argspec: "args=[\'resource_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorV2" - argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "L2Loss" - argspec: "args=[\'t\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LMDBReader" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "LRN" - argspec: "args=[\'input\', \'depth_radius\', \'bias\', \'alpha\', \'beta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'depth_radius\', \'bias\', \'alpha\', \'beta\', \'name\'], varargs=None, keywords=None, defaults=[\'5\', \'1\', \'1\', \'0.5\', \'None\'], " } member_method { name: "LRNGrad" - argspec: "args=[\'input_grads\', \'input_image\', \'output_image\', \'depth_radius\', \'bias\', \'alpha\', \'beta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_grads\', \'input_image\', \'output_image\', \'depth_radius\', \'bias\', \'alpha\', \'beta\', \'name\'], varargs=None, keywords=None, defaults=[\'5\', \'1\', \'1\', \'0.5\', \'None\'], " } member_method { name: "LeakyRelu" - argspec: "args=[\'features\', \'alpha\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'alpha\', \'name\'], varargs=None, keywords=None, defaults=[\'0.2\', \'None\'], " } member_method { name: "LeakyReluGrad" - argspec: "args=[\'gradients\', \'features\', \'alpha\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'alpha\', \'name\'], varargs=None, keywords=None, defaults=[\'0.2\', \'None\'], " } member_method { name: "LearnedUnigramCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "LeftShift" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Less" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LessEqual" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Lgamma" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LinSpace" - argspec: "args=[\'start\', \'stop\', \'num\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'stop\', \'num\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ListDiff" - argspec: "args=[\'x\', \'y\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "LoadAndRemapMatrix" - argspec: "args=[\'ckpt_path\', \'old_tensor_name\', \'row_remapping\', \'col_remapping\', \'initializing_values\', \'num_rows\', \'num_cols\', \'max_rows_in_memory\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ckpt_path\', \'old_tensor_name\', \'row_remapping\', \'col_remapping\', \'initializing_values\', \'num_rows\', \'num_cols\', \'max_rows_in_memory\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "LoadTPUEmbeddingADAMParameters" - argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingADAMParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdadeltaParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdadeltaParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdagradParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdagradParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingCenteredRMSPropParameters" - argspec: "args=[\'parameters\', \'ms\', \'mom\', \'mg\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'ms\', \'mom\', \'mg\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingFTRLParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingFTRLParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingMDLAdagradLightParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'weights\', \'benefits\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'weights\', \'benefits\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingMomentumParameters" - argspec: "args=[\'parameters\', \'momenta\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingMomentumParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'momenta\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingProximalAdagradParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingRMSPropParameters" - argspec: "args=[\'parameters\', \'ms\', \'mom\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'ms\', \'mom\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingRMSPropParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'ms\', \'mom\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'ms\', \'mom\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingStochasticGradientDescentParameters" - argspec: "args=[\'parameters\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "Log" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Log1p" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogMatrixDeterminant" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogSoftmax" - argspec: "args=[\'logits\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogUniformCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "LogicalAnd" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogicalNot" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogicalOr" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableExport" - argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableExportV2" - argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableFind" - argspec: "args=[\'table_handle\', \'keys\', \'default_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'default_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableFindV2" - argspec: "args=[\'table_handle\', \'keys\', \'default_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'default_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableImport" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableImportV2" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableInsert" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableInsertV2" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableRemoveV2" - argspec: "args=[\'table_handle\', \'keys\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableSize" - argspec: "args=[\'table_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableSizeV2" - argspec: "args=[\'table_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LoopCond" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LowerBound" - argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Lu" - argspec: "args=[\'input\', \'output_idx_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'output_idx_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "MakeIterator" - argspec: "args=[\'dataset\', \'iterator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'iterator\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MapClear" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "MapDefun" - argspec: "args=[\'arguments\', \'captured_inputs\', \'output_types\', \'output_shapes\', \'f\', \'max_intra_op_parallelism\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'arguments\', \'captured_inputs\', \'output_types\', \'output_shapes\', \'f\', \'max_intra_op_parallelism\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'None\'], " } member_method { name: "MapIncompleteSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapPeek" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapStage" - argspec: "args=[\'key\', \'indices\', \'values\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'values\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapUnstage" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapUnstageNoKey" - argspec: "args=[\'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MatMul" - argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "MatchingFiles" - argspec: "args=[\'pattern\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'pattern\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixBandPart" - argspec: "args=[\'input\', \'num_lower\', \'num_upper\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_lower\', \'num_upper\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixDeterminant" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixDiag" - argspec: "args=[\'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixDiagPart" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixExponential" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixInverse" - argspec: "args=[\'input\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MatrixLogarithm" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixSetDiag" - argspec: "args=[\'input\', \'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixSolve" - argspec: "args=[\'matrix\', \'rhs\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MatrixSolveLs" - argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "MatrixSquareRoot" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixTriangularSolve" - argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "Max" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MaxPool" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPool3D" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "MaxPool3DGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "MaxPool3DGradGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "MaxPoolGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradGradV2" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradGradWithArgmax" - argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MaxPoolGradV2" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradWithArgmax" - argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MaxPoolV2" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolWithArgmax" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'Targmax\', \'padding\', \'include_batch_in_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'Targmax\', \'include_batch_in_index\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'False\', \'None\'], " } member_method { name: "Maximum" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Mean" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Merge" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MergeSummary" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MergeV2Checkpoints" - argspec: "args=[\'checkpoint_prefixes\', \'destination_prefix\', \'delete_old_dirs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'checkpoint_prefixes\', \'destination_prefix\', \'delete_old_dirs\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Mfcc" - argspec: "args=[\'spectrogram\', \'sample_rate\', \'upper_frequency_limit\', \'lower_frequency_limit\', \'filterbank_channel_count\', \'dct_coefficient_count\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'spectrogram\', \'sample_rate\', \'upper_frequency_limit\', \'lower_frequency_limit\', \'filterbank_channel_count\', \'dct_coefficient_count\', \'name\'], varargs=None, keywords=None, defaults=[\'4000\', \'20\', \'40\', \'13\', \'None\'], " } member_method { name: "Min" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Minimum" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MirrorPad" - argspec: "args=[\'input\', \'paddings\', \'mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'mode\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MirrorPadGrad" - argspec: "args=[\'input\', \'paddings\', \'mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'mode\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Mod" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ModelDataset" - argspec: "args=[\'input_dataset\', \'cpu_budget\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'cpu_budget\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "Mul" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MulNoNan" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIterator" - argspec: "args=[\'devices\', \'shared_name\', \'container\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'devices\', \'shared_name\', \'container\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIteratorFromStringHandle" - argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "MultiDeviceIteratorGetNextFromShard" - argspec: "args=[\'multi_device_iterator\', \'shard_num\', \'incarnation_id\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'multi_device_iterator\', \'shard_num\', \'incarnation_id\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIteratorInit" - argspec: "args=[\'dataset\', \'multi_device_iterator\', \'max_buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'multi_device_iterator\', \'max_buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIteratorToStringHandle" - argspec: "args=[\'multi_device_iterator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'multi_device_iterator\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Multinomial" - argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'seed2\', \'output_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'seed2\', \'output_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \"\", \'None\'], " } member_method { name: "MutableDenseHashTable" - argspec: "args=[\'empty_key\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_dtype\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'empty_key\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'131072\', \'0.8\', \'None\'], " } member_method { name: "MutableDenseHashTableV2" - argspec: "args=[\'empty_key\', \'deleted_key\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_dtype\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'empty_key\', \'deleted_key\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'131072\', \'0.8\', \'None\'], " } member_method { name: "MutableHashTable" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "MutableHashTableOfTensors" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\', \'value_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'None\'], " } member_method { name: "MutableHashTableOfTensorsV2" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\', \'value_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'None\'], " } member_method { name: "MutableHashTableV2" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "MutexLock" - argspec: "args=[\'mutex\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'mutex\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MutexV2" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "NcclAllReduce" - argspec: "args=[\'input\', \'reduction\', \'num_devices\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'reduction\', \'num_devices\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NcclBroadcast" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NcclReduce" - argspec: "args=[\'input\', \'reduction\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'reduction\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Neg" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NextAfter" - argspec: "args=[\'x1\', \'x2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x1\', \'x2\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NextIteration" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NoOp" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NonDeterministicInts" - argspec: "args=[\'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "NonMaxSuppression" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'0.5\', \'None\'], " } member_method { name: "NonMaxSuppressionV2" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NonMaxSuppressionV3" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NonMaxSuppressionV4" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\', \'pad_to_max_output_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\', \'pad_to_max_output_size\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "NonMaxSuppressionWithOverlaps" - argspec: "args=[\'overlaps\', \'scores\', \'max_output_size\', \'overlap_threshold\', \'score_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'overlaps\', \'scores\', \'max_output_size\', \'overlap_threshold\', \'score_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NotEqual" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NthElement" - argspec: "args=[\'input\', \'n\', \'reverse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'n\', \'reverse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "OneHot" - argspec: "args=[\'indices\', \'depth\', \'on_value\', \'off_value\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'depth\', \'on_value\', \'off_value\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "OneShotIterator" - argspec: "args=[\'dataset_factory\', \'output_types\', \'output_shapes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset_factory\', \'output_types\', \'output_shapes\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "OnesLike" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptimizeDataset" - argspec: "args=[\'input_dataset\', \'optimizations\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'optimizations\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalFromValue" - argspec: "args=[\'components\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'components\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalGetValue" - argspec: "args=[\'optional\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'optional\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalHasValue" - argspec: "args=[\'optional\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'optional\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalNone" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OrderedMapClear" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapIncompleteSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapPeek" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapStage" - argspec: "args=[\'key\', \'indices\', \'values\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'values\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapUnstage" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapUnstageNoKey" - argspec: "args=[\'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OutfeedDequeue" - argspec: "args=[\'dtype\', \'shape\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "OutfeedDequeueTuple" - argspec: "args=[\'dtypes\', \'shapes\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'shapes\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "OutfeedEnqueue" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OutfeedEnqueueTuple" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Pack" - argspec: "args=[\'values\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "Pad" - argspec: "args=[\'input\', \'paddings\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PadV2" - argspec: "args=[\'input\', \'paddings\', \'constant_values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'constant_values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PaddedBatchDataset" - argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PaddedBatchDatasetV2" - argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'drop_remainder\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'drop_remainder\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PaddingFIFOQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "PaddingFIFOQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "ParallelConcat" - argspec: "args=[\'values\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParallelDynamicStitch" - argspec: "args=[\'indices\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParallelInterleaveDatasetV2" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'sloppy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'sloppy\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ParallelMapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'sloppy\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'sloppy\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'False\', \'None\'], " } member_method { name: "ParameterizedTruncatedNormal" - argspec: "args=[\'shape\', \'means\', \'stdevs\', \'minvals\', \'maxvals\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'means\', \'stdevs\', \'minvals\', \'maxvals\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "ParseExample" - argspec: "args=[\'serialized\', \'names\', \'sparse_keys\', \'dense_keys\', \'dense_defaults\', \'sparse_types\', \'dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'names\', \'sparse_keys\', \'dense_keys\', \'dense_defaults\', \'sparse_types\', \'dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParseSequenceExample" - argspec: "args=[\'serialized\', \'debug_name\', \'context_dense_defaults\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'Ncontext_sparse\', \'Ncontext_dense\', \'Nfeature_list_sparse\', \'Nfeature_list_dense\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'debug_name\', \'context_dense_defaults\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'Ncontext_sparse\', \'Ncontext_dense\', \'Nfeature_list_sparse\', \'Nfeature_list_dense\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'[]\', \'[]\', \'[]\', \'[]\', \'[]\', \'None\'], " } member_method { name: "ParseSingleExample" - argspec: "args=[\'serialized\', \'dense_defaults\', \'num_sparse\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'dense_defaults\', \'num_sparse\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParseSingleSequenceExample" - argspec: "args=[\'serialized\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'context_dense_defaults\', \'debug_name\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'context_dense_defaults\', \'debug_name\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'[]\', \'[]\', \'[]\', \'None\'], " } member_method { name: "ParseTensor" - argspec: "args=[\'serialized\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PartitionedCall" - argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "Placeholder" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "PlaceholderV2" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PlaceholderWithDefault" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Polygamma" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PopulationCount" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Pow" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PrefetchDataset" - argspec: "args=[\'input_dataset\', \'buffer_size\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'buffer_size\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Prelinearize" - argspec: "args=[\'input\', \'shape\', \'layout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'layout\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "PrelinearizeTuple" - argspec: "args=[\'inputs\', \'shapes\', \'layouts\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'shapes\', \'layouts\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "PreventGradient" - argspec: "args=[\'input\', \'message\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'message\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "Print" - argspec: "args=[\'input\', \'data\', \'message\', \'first_n\', \'summarize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'data\', \'message\', \'first_n\', \'summarize\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'-1\', \'3\', \'None\'], " } member_method { name: "PrintV2" - argspec: "args=[\'input\', \'output_stream\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'output_stream\', \'name\'], varargs=None, keywords=None, defaults=[\'stderr\', \'None\'], " } member_method { name: "PriorityQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shapes\', \'component_types\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "PriorityQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shapes\', \'component_types\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "Prod" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "PyFunc" - argspec: "args=[\'input\', \'token\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'token\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PyFuncStateless" - argspec: "args=[\'input\', \'token\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'token\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Qr" - argspec: "args=[\'input\', \'full_matrices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'full_matrices\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "QuantizeAndDequantize" - argspec: "args=[\'input\', \'signed_input\', \'num_bits\', \'range_given\', \'input_min\', \'input_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'signed_input\', \'num_bits\', \'range_given\', \'input_min\', \'input_max\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'8\', \'False\', \'0\', \'0\', \'None\'], " } member_method { name: "QuantizeAndDequantizeV2" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'signed_input\', \'num_bits\', \'range_given\', \'round_mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'signed_input\', \'num_bits\', \'range_given\', \'round_mode\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'8\', \'False\', \'HALF_TO_EVEN\', \'None\'], " } member_method { name: "QuantizeAndDequantizeV3" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'num_bits\', \'signed_input\', \'range_given\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'num_bits\', \'signed_input\', \'range_given\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'True\', \'None\'], " } member_method { name: "QuantizeDownAndShrinkRange" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizeV2" - argspec: "args=[\'input\', \'min_range\', \'max_range\', \'T\', \'mode\', \'round_mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_range\', \'max_range\', \'T\', \'mode\', \'round_mode\', \'name\'], varargs=None, keywords=None, defaults=[\'MIN_COMBINED\', \'HALF_AWAY_FROM_ZERO\', \'None\'], " } member_method { name: "QuantizedAdd" - argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedAvgPool" - argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedBatchNormWithGlobalNormalization" - argspec: "args=[\'t\', \'t_min\', \'t_max\', \'m\', \'m_min\', \'m_max\', \'v\', \'v_min\', \'v_max\', \'beta\', \'beta_min\', \'beta_max\', \'gamma\', \'gamma_min\', \'gamma_max\', \'out_type\', \'variance_epsilon\', \'scale_after_normalization\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'t_min\', \'t_max\', \'m\', \'m_min\', \'m_max\', \'v\', \'v_min\', \'v_max\', \'beta\', \'beta_min\', \'beta_max\', \'gamma\', \'gamma_min\', \'gamma_max\', \'out_type\', \'variance_epsilon\', \'scale_after_normalization\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedBiasAdd" - argspec: "args=[\'input\', \'bias\', \'min_input\', \'max_input\', \'min_bias\', \'max_bias\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'bias\', \'min_input\', \'max_input\', \'min_bias\', \'max_bias\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedConcat" - argspec: "args=[\'concat_dim\', \'values\', \'input_mins\', \'input_maxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'concat_dim\', \'values\', \'input_mins\', \'input_maxes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedConv2D" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "QuantizedConv2DAndRelu" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DAndRequantize" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBias" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasAndRelu" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasSignedSumAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasSumAndRelu" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'summand\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'summand\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasSumAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedInstanceNorm" - argspec: "args=[\'x\', \'x_min\', \'x_max\', \'output_range_given\', \'given_y_min\', \'given_y_max\', \'variance_epsilon\', \'min_separation\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'x_min\', \'x_max\', \'output_range_given\', \'given_y_min\', \'given_y_max\', \'variance_epsilon\', \'min_separation\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'0\', \'0\', \'1e-05\', \'0.001\', \'None\'], " } member_method { name: "QuantizedMatMul" - argspec: "args=[\'a\', \'b\', \'min_a\', \'max_a\', \'min_b\', \'max_b\', \'Toutput\', \'transpose_a\', \'transpose_b\', \'Tactivation\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'min_a\', \'max_a\', \'min_b\', \'max_b\', \'Toutput\', \'transpose_a\', \'transpose_b\', \'Tactivation\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'False\', \'False\', \"\", \'None\'], " } member_method { name: "QuantizedMaxPool" - argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedMul" - argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedRelu" - argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedRelu6" - argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedReluX" - argspec: "args=[\'features\', \'max_value\', \'min_features\', \'max_features\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'max_value\', \'min_features\', \'max_features\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedReshape" - argspec: "args=[\'tensor\', \'shape\', \'input_min\', \'input_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'shape\', \'input_min\', \'input_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedResizeBilinear" - argspec: "args=[\'images\', \'size\', \'min\', \'max\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'min\', \'max\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "QueueClose" - argspec: "args=[\'handle\', \'cancel_pending_enqueues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'cancel_pending_enqueues\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "QueueCloseV2" - argspec: "args=[\'handle\', \'cancel_pending_enqueues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'cancel_pending_enqueues\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "QueueDequeue" - argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueMany" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueManyV2" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueUpTo" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueUpToV2" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueV2" - argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueue" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueueMany" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueueManyV2" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueueV2" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueIsClosed" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QueueIsClosedV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QueueSize" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QueueSizeV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RFFT" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RFFT2D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RFFT3D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RGBToHSV" - argspec: "args=[\'images\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RaggedGather" - argspec: "args=[\'params_nested_splits\', \'params_dense_values\', \'indices\', \'OUTPUT_RAGGED_RANK\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params_nested_splits\', \'params_dense_values\', \'indices\', \'OUTPUT_RAGGED_RANK\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RaggedRange" - argspec: "args=[\'starts\', \'limits\', \'deltas\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'starts\', \'limits\', \'deltas\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RaggedTensorToSparse" - argspec: "args=[\'rt_nested_splits\', \'rt_dense_values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'rt_nested_splits\', \'rt_dense_values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RandomCrop" - argspec: "args=[\'image\', \'size\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'size\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomGamma" - argspec: "args=[\'shape\', \'alpha\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'alpha\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomGammaGrad" - argspec: "args=[\'alpha\', \'sample\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'alpha\', \'sample\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RandomPoisson" - argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomPoissonV2" - argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \"\", \'None\'], " } member_method { name: "RandomShuffle" - argspec: "args=[\'value\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomShuffleQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'0\', \'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "RandomShuffleQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'0\', \'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "RandomStandardNormal" - argspec: "args=[\'shape\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomUniform" - argspec: "args=[\'shape\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomUniformInt" - argspec: "args=[\'shape\', \'minval\', \'maxval\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'minval\', \'maxval\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Range" - argspec: "args=[\'start\', \'limit\', \'delta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'limit\', \'delta\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RangeDataset" - argspec: "args=[\'start\', \'stop\', \'step\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'stop\', \'step\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Rank" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReadFile" - argspec: "args=[\'filename\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReadVariableOp" - argspec: "args=[\'resource\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumRecordsProduced" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumRecordsProducedV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumWorkUnitsCompleted" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumWorkUnitsCompletedV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderRead" - argspec: "args=[\'reader_handle\', \'queue_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReadUpTo" - argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReadUpToV2" - argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReadV2" - argspec: "args=[\'reader_handle\', \'queue_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReset" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderResetV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderRestoreState" - argspec: "args=[\'reader_handle\', \'state\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'state\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderRestoreStateV2" - argspec: "args=[\'reader_handle\', \'state\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'state\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderSerializeState" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderSerializeStateV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Real" - argspec: "args=[\'input\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "RealDiv" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Reciprocal" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReciprocalGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RecordInput" - argspec: "args=[\'file_pattern\', \'file_random_seed\', \'file_shuffle_shift_ratio\', \'file_buffer_size\', \'file_parallelism\', \'batch_size\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'file_pattern\', \'file_random_seed\', \'file_shuffle_shift_ratio\', \'file_buffer_size\', \'file_parallelism\', \'batch_size\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'301\', \'0\', \'10000\', \'16\', \'32\', \'\', \'None\'], " } member_method { name: "RecvTPUEmbeddingActivations" - argspec: "args=[\'num_outputs\', \'config\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_outputs\', \'config\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReduceDataset" - argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ReduceJoin" - argspec: "args=[\'inputs\', \'reduction_indices\', \'keep_dims\', \'separator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'reduction_indices\', \'keep_dims\', \'separator\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'\', \'None\'], " } member_method { name: "RefEnter" - argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'10\', \'None\'], " } member_method { name: "RefExit" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefIdentity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefMerge" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefNextIteration" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefSelect" - argspec: "args=[\'index\', \'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'index\', \'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefSwitch" - argspec: "args=[\'data\', \'pred\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'pred\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RegexFullMatch" - argspec: "args=[\'input\', \'pattern\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RegexReplace" - argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Relu" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Relu6" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Relu6Grad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReluGrad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RemoteCall" - argspec: "args=[\'target\', \'args\', \'Tout\', \'f\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'target\', \'args\', \'Tout\', \'f\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RepeatDataset" - argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RequantizationRange" - argspec: "args=[\'input\', \'input_min\', \'input_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RequantizationRangePerChannel" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'clip_value_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'clip_value_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Requantize" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RequantizePerChannel" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Reshape" - argspec: "args=[\'tensor\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResizeArea" - argspec: "args=[\'images\', \'size\', \'align_corners\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResizeBicubic" - argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeBicubicGrad" - argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeBilinear" - argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeBilinearGrad" - argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeNearestNeighbor" - argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeNearestNeighborGrad" - argspec: "args=[\'grads\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyAdaMax" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "ResourceApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAdam" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyAdamWithAmsgrad" - argspec: "args=[\'var\', \'m\', \'v\', \'vhat\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'vhat\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAddSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyKerasMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyPowerSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceCountUpTo" - argspec: "args=[\'resource\', \'limit\', \'T\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'limit\', \'T\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceGather" - argspec: "args=[\'resource\', \'indices\', \'batch_dims\', \'validate_indices\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'dtype\', \'batch_dims\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'True\', \'None\'], " } member_method { name: "ResourceScatterAdd" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterDiv" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterMax" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterMin" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterMul" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterNdAdd" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ResourceScatterNdSub" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ResourceScatterNdUpdate" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ResourceScatterSub" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterUpdate" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceSparseApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "ResourceSparseApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyKerasMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceSparseApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceSparseApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceStridedSliceAssign" - argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "Restore" - argspec: "args=[\'file_pattern\', \'tensor_name\', \'dt\', \'preferred_shard\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'file_pattern\', \'tensor_name\', \'dt\', \'preferred_shard\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "RestoreSlice" - argspec: "args=[\'file_pattern\', \'tensor_name\', \'shape_and_slice\', \'dt\', \'preferred_shard\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'file_pattern\', \'tensor_name\', \'shape_and_slice\', \'dt\', \'preferred_shard\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "RestoreV2" - argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'dtypes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'dtypes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RetrieveTPUEmbeddingADAMParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingADAMParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdadeltaParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdagradParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdagradParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingCenteredRMSPropParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingFTRLParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingFTRLParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingMDLAdagradLightParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingMomentumParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingMomentumParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingProximalAdagradParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingRMSPropParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingStochasticGradientDescentParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "Reverse" - argspec: "args=[\'tensor\', \'dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'dims\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReverseSequence" - argspec: "args=[\'input\', \'seq_lengths\', \'seq_dim\', \'batch_dim\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'seq_lengths\', \'seq_dim\', \'batch_dim\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "ReverseV2" - argspec: "args=[\'tensor\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RightShift" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Rint" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Roll" - argspec: "args=[\'input\', \'shift\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shift\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Round" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Rsqrt" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RsqrtGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SampleDistortedBoundingBox" - argspec: "args=[\'image_size\', \'bounding_boxes\', \'seed\', \'seed2\', \'min_object_covered\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image_size\', \'bounding_boxes\', \'seed\', \'seed2\', \'min_object_covered\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0.1\', \'[0.75, 1.33]\', \'[0.05, 1]\', \'100\', \'False\', \'None\'], " } member_method { name: "SampleDistortedBoundingBoxV2" - argspec: "args=[\'image_size\', \'bounding_boxes\', \'min_object_covered\', \'seed\', \'seed2\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image_size\', \'bounding_boxes\', \'min_object_covered\', \'seed\', \'seed2\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'[0.75, 1.33]\', \'[0.05, 1]\', \'100\', \'False\', \'None\'], " } member_method { name: "Save" - argspec: "args=[\'filename\', \'tensor_names\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'tensor_names\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SaveSlices" - argspec: "args=[\'filename\', \'tensor_names\', \'shapes_and_slices\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'tensor_names\', \'shapes_and_slices\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SaveV2" - argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'tensors\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'tensors\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScalarSummary" - argspec: "args=[\'tags\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tags\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScaleAndTranslate" - argspec: "args=[\'images\', \'size\', \'scale\', \'translation\', \'kernel_type\', \'antialias\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'scale\', \'translation\', \'kernel_type\', \'antialias\', \'name\'], varargs=None, keywords=None, defaults=[\'lanczos3\', \'True\', \'None\'], " } member_method { name: "ScaleAndTranslateGrad" - argspec: "args=[\'grads\', \'original_image\', \'scale\', \'translation\', \'kernel_type\', \'antialias\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'original_image\', \'scale\', \'translation\', \'kernel_type\', \'antialias\', \'name\'], varargs=None, keywords=None, defaults=[\'lanczos3\', \'True\', \'None\'], " } member_method { name: "ScatterAdd" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterDiv" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterMax" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterMin" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterMul" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterNd" - argspec: "args=[\'indices\', \'updates\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'updates\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScatterNdAdd" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterNdNonAliasingAdd" - argspec: "args=[\'input\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScatterNdSub" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterNdUpdate" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ScatterSub" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterUpdate" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SdcaFprint" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SdcaOptimizer" - argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'adaptative\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\', \'adaptative\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SdcaOptimizerV2" - argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'adaptive\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\', \'adaptive\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SdcaShrinkL1" - argspec: "args=[\'weights\', \'l1\', \'l2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'weights\', \'l1\', \'l2\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentMax" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentMean" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentMin" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentProd" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentSum" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Select" - argspec: "args=[\'condition\', \'t\', \'e\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'condition\', \'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SelfAdjointEig" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SelfAdjointEigV2" - argspec: "args=[\'input\', \'compute_v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_v\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Selu" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SeluGrad" - argspec: "args=[\'gradients\', \'outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SendTPUEmbeddingGradients" - argspec: "args=[\'inputs\', \'learning_rates\', \'config\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'learning_rates\', \'config\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SerializeIterator" - argspec: "args=[\'resource_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SerializeManySparse" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "SerializeSparse" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "SerializeTensor" - argspec: "args=[\'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SetSize" - argspec: "args=[\'set_indices\', \'set_values\', \'set_shape\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set_indices\', \'set_values\', \'set_shape\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Shape" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ShapeN" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ShardDataset" - argspec: "args=[\'input_dataset\', \'num_shards\', \'index\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_shards\', \'index\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShardedFilename" - argspec: "args=[\'basename\', \'shard\', \'num_shards\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'basename\', \'shard\', \'num_shards\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShardedFilespec" - argspec: "args=[\'basename\', \'num_shards\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'basename\', \'num_shards\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShuffleAndRepeatDataset" - argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShuffleDataset" - argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'reshuffle_each_iteration\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'output_types\', \'output_shapes\', \'reshuffle_each_iteration\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ShutdownDistributedTPU" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sigmoid" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SigmoidGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sign" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sin" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sinh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Size" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "SkipDataset" - argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Slice" - argspec: "args=[\'input\', \'begin\', \'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'begin\', \'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Snapshot" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Softmax" - argspec: "args=[\'logits\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SoftmaxCrossEntropyWithLogits" - argspec: "args=[\'features\', \'labels\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'labels\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Softplus" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SoftplusGrad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Softsign" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SoftsignGrad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SpaceToBatch" - argspec: "args=[\'input\', \'paddings\', \'block_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'block_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SpaceToBatchND" - argspec: "args=[\'input\', \'block_shape\', \'paddings\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_shape\', \'paddings\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SpaceToDepth" - argspec: "args=[\'input\', \'block_size\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_size\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "SparseAccumulatorApplyGradient" - argspec: "args=[\'handle\', \'local_step\', \'gradient_indices\', \'gradient_values\', \'gradient_shape\', \'has_known_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'local_step\', \'gradient_indices\', \'gradient_values\', \'gradient_shape\', \'has_known_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseAccumulatorTakeGradient" - argspec: "args=[\'handle\', \'num_required\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'num_required\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseAdd" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'thresh\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'thresh\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseAddGrad" - argspec: "args=[\'backprop_val_grad\', \'a_indices\', \'b_indices\', \'sum_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'backprop_val_grad\', \'a_indices\', \'b_indices\', \'sum_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "SparseApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "SparseApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseConcat" - argspec: "args=[\'indices\', \'values\', \'shapes\', \'concat_dim\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'shapes\', \'concat_dim\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseConditionalAccumulator" - argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'MEAN\', \'None\'], " } member_method { name: "SparseCross" - argspec: "args=[\'indices\', \'values\', \'shapes\', \'dense_inputs\', \'hashed_output\', \'num_buckets\', \'hash_key\', \'out_type\', \'internal_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'shapes\', \'dense_inputs\', \'hashed_output\', \'num_buckets\', \'hash_key\', \'out_type\', \'internal_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseDenseCwiseAdd" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseDenseCwiseDiv" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseDenseCwiseMul" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseFillEmptyRows" - argspec: "args=[\'indices\', \'values\', \'dense_shape\', \'default_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'dense_shape\', \'default_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseFillEmptyRowsGrad" - argspec: "args=[\'reverse_index_map\', \'grad_values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reverse_index_map\', \'grad_values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseMatMul" - argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\', \'a_is_sparse\', \'b_is_sparse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\', \'a_is_sparse\', \'b_is_sparse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'False\', \'False\', \'None\'], " } member_method { name: "SparseReduceMax" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReduceMaxSparse" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReduceSum" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReduceSumSparse" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReorder" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseReshape" - argspec: "args=[\'input_indices\', \'input_shape\', \'new_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_shape\', \'new_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentMean" - argspec: "args=[\'data\', \'indices\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentMeanGrad" - argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentMeanWithNumSegments" - argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSqrtN" - argspec: "args=[\'data\', \'indices\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSqrtNGrad" - argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSqrtNWithNumSegments" - argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSum" - argspec: "args=[\'data\', \'indices\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSumWithNumSegments" - argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSlice" - argspec: "args=[\'indices\', \'values\', \'shape\', \'start\', \'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'shape\', \'start\', \'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSliceGrad" - argspec: "args=[\'backprop_val_grad\', \'input_indices\', \'input_start\', \'output_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'backprop_val_grad\', \'input_indices\', \'input_start\', \'output_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSoftmax" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSoftmaxCrossEntropyWithLogits" - argspec: "args=[\'features\', \'labels\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'labels\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSparseMaximum" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSparseMinimum" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSplit" - argspec: "args=[\'split_dim\', \'indices\', \'values\', \'shape\', \'num_split\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'split_dim\', \'indices\', \'values\', \'shape\', \'num_split\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseTensorDenseAdd" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseTensorDenseMatMul" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\', \'adjoint_a\', \'adjoint_b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\', \'adjoint_a\', \'adjoint_b\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "SparseTensorSliceDataset" - argspec: "args=[\'indices\', \'values\', \'dense_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'dense_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseToDense" - argspec: "args=[\'sparse_indices\', \'output_shape\', \'sparse_values\', \'default_value\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'output_shape\', \'sparse_values\', \'default_value\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SparseToSparseSetOperation" - argspec: "args=[\'set1_indices\', \'set1_values\', \'set1_shape\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set1_indices\', \'set1_values\', \'set1_shape\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Split" - argspec: "args=[\'split_dim\', \'value\', \'num_split\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'axis\', \'value\', \'num_split\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SplitV" - argspec: "args=[\'value\', \'size_splits\', \'split_dim\', \'num_split\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'size_splits\', \'axis\', \'num_split\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sqrt" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SqrtGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Square" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SquaredDifference" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Squeeze" - argspec: "args=[\'input\', \'squeeze_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "Stack" - argspec: "args=[\'elem_type\', \'stack_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'elem_type\', \'stack_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "StackClose" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackCloseV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackPop" - argspec: "args=[\'handle\', \'elem_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackPopV2" - argspec: "args=[\'handle\', \'elem_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackPush" - argspec: "args=[\'handle\', \'elem\', \'swap_memory\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem\', \'swap_memory\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "StackPushV2" - argspec: "args=[\'handle\', \'elem\', \'swap_memory\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem\', \'swap_memory\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "StackV2" - argspec: "args=[\'max_size\', \'elem_type\', \'stack_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'max_size\', \'elem_type\', \'stack_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "Stage" - argspec: "args=[\'values\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StageClear" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StagePeek" - argspec: "args=[\'index\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'index\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StageSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StatefulPartitionedCall" - argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "StatefulStandardNormal" - argspec: "args=[\'resource\', \'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatefulStandardNormalV2" - argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatefulUniformFullInt" - argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatefulUniformInt" - argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'minval\', \'maxval\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'minval\', \'maxval\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StatelessIf" - argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StatelessMultinomial" - argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'output_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'output_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessRandomNormal" - argspec: "args=[\'shape\', \'seed\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessRandomUniform" - argspec: "args=[\'shape\', \'seed\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessRandomUniformInt" - argspec: "args=[\'shape\', \'seed\', \'minval\', \'maxval\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'minval\', \'maxval\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StatelessTruncatedNormal" - argspec: "args=[\'shape\', \'seed\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessWhile" - argspec: "args=[\'input\', \'cond\', \'body\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'cond\', \'body\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StaticRegexFullMatch" - argspec: "args=[\'input\', \'pattern\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StaticRegexReplace" - argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "StopGradient" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StridedSlice" - argspec: "args=[\'input\', \'begin\', \'end\', \'strides\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'begin\', \'end\', \'strides\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "StridedSliceAssign" - argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "StridedSliceGrad" - argspec: "args=[\'shape\', \'begin\', \'end\', \'strides\', \'dy\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'begin\', \'end\', \'strides\', \'dy\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "StringFormat" - argspec: "args=[\'inputs\', \'template\', \'placeholder\', \'summarize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'template\', \'placeholder\', \'summarize\', \'name\'], varargs=None, keywords=None, defaults=[\'%s\', \'%s\', \'3\', \'None\'], " } member_method { name: "StringJoin" - argspec: "args=[\'inputs\', \'separator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'separator\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "StringLength" - argspec: "args=[\'input\', \'unit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'unit\', \'name\'], varargs=None, keywords=None, defaults=[\'BYTE\', \'None\'], " } member_method { name: "StringSplit" - argspec: "args=[\'input\', \'delimiter\', \'skip_empty\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'delimiter\', \'skip_empty\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "StringSplitV2" - argspec: "args=[\'input\', \'sep\', \'maxsplit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'sep\', \'maxsplit\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "StringStrip" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToHashBucket" - argspec: "args=[\'string_tensor\', \'num_buckets\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_tensor\', \'num_buckets\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToHashBucketFast" - argspec: "args=[\'input\', \'num_buckets\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_buckets\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToHashBucketStrong" - argspec: "args=[\'input\', \'num_buckets\', \'key\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_buckets\', \'key\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToNumber" - argspec: "args=[\'string_tensor\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_tensor\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Sub" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Substr" - argspec: "args=[\'input\', \'pos\', \'len\', \'unit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pos\', \'len\', \'unit\', \'name\'], varargs=None, keywords=None, defaults=[\'BYTE\', \'None\'], " } member_method { name: "Sum" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SummaryWriter" - argspec: "args=[\'shared_name\', \'container\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shared_name\', \'container\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "Svd" - argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "Switch" - argspec: "args=[\'data\', \'pred\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'pred\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SymbolicGradient" - argspec: "args=[\'input\', \'Tout\', \'f\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'f\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TFRecordDataset" - argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TFRecordReader" - argspec: "args=[\'container\', \'shared_name\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "TFRecordReaderV2" - argspec: "args=[\'container\', \'shared_name\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "TPUCompilationResult" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUEmbeddingActivations" - argspec: "args=[\'embedding_variable\', \'sliced_activations\', \'table_id\', \'lookup_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'embedding_variable\', \'sliced_activations\', \'table_id\', \'lookup_id\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUOrdinalSelector" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUPartitionedCall" - argspec: "args=[\'args\', \'device_ordinal\', \'Tout\', \'f\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'args\', \'device_ordinal\', \'Tout\', \'f\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUReplicate" - argspec: "args=[\'inputs\', \'broadcast_inputs\', \'variables\', \'guaranteed_constants\', \'computation\', \'num_replicas\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'host_compute_core\', \'output_types\', \'padding_map\', \'step_marker_location\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'broadcast_inputs\', \'variables\', \'guaranteed_constants\', \'computation\', \'num_replicas\', \'output_types\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'host_compute_core\', \'padding_map\', \'step_marker_location\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'\', \'True\', \'[]\', \'[]\', \'[]\', \'STEP_MARK_AT_ENTRY\', \'None\'], " } member_method { name: "TPUReplicateMetadata" - argspec: "args=[\'num_replicas\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'computation_shape\', \'host_compute_core\', \'padding_map\', \'step_marker_location\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_replicas\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'computation_shape\', \'host_compute_core\', \'padding_map\', \'step_marker_location\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'\', \'True\', \'[]\', \'[]\', \'[]\', \'[]\', \'STEP_MARK_AT_ENTRY\', \'None\'], " } member_method { name: "TPUReplicatedInput" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUReplicatedOutput" - argspec: "args=[\'input\', \'num_replicas\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_replicas\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TakeDataset" - argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TakeManySparseFromTensorsMap" - argspec: "args=[\'sparse_handles\', \'dtype\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_handles\', \'dtype\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "Tan" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Tanh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TanhGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TemporaryVariable" - argspec: "args=[\'shape\', \'dtype\', \'var_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'var_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "TensorArray" - argspec: "args=[\'size\', \'dtype\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'dtype\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'\', \'None\', \'None\'], " } member_method { name: "TensorArrayClose" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayCloseV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayCloseV3" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayConcat" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayConcatV2" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayConcatV3" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGather" - argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGatherV2" - argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGatherV3" - argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGrad" - argspec: "args=[\'handle\', \'flow_in\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayGradV2" - argspec: "args=[\'handle\', \'flow_in\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayGradV3" - argspec: "args=[\'handle\', \'flow_in\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayGradWithShape" - argspec: "args=[\'handle\', \'flow_in\', \'shape_to_prepend\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'shape_to_prepend\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayPack" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayRead" - argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayReadV2" - argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayReadV3" - argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayScatter" - argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayScatterV2" - argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayScatterV3" - argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySize" - argspec: "args=[\'handle\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySizeV2" - argspec: "args=[\'handle\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySizeV3" - argspec: "args=[\'handle\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySplit" - argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySplitV2" - argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySplitV3" - argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayUnpack" - argspec: "args=[\'handle\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayV2" - argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'False\', \'True\', \'\', \'None\'], " } member_method { name: "TensorArrayV3" - argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'identical_element_shapes\', \'tensor_array_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'identical_element_shapes\', \'tensor_array_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'False\', \'True\', \'False\', \'\', \'None\'], " } member_method { name: "TensorArrayWrite" - argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayWriteV2" - argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayWriteV3" - argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorDataset" - argspec: "args=[\'components\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'components\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListConcat" - argspec: "args=[\'input_handle\', \'element_dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorListConcatLists" - argspec: "args=[\'input_a\', \'input_b\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_a\', \'input_b\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListConcatV2" - argspec: "args=[\'input_handle\', \'element_shape\', \'leading_dims\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_shape\', \'leading_dims\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListElementShape" - argspec: "args=[\'input_handle\', \'shape_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'shape_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListFromTensor" - argspec: "args=[\'tensor\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListGather" - argspec: "args=[\'input_handle\', \'indices\', \'element_shape\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'indices\', \'element_shape\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListGetItem" - argspec: "args=[\'input_handle\', \'index\', \'element_shape\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'index\', \'element_shape\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListLength" - argspec: "args=[\'input_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListPopBack" - argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListPushBack" - argspec: "args=[\'input_handle\', \'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListPushBackBatch" - argspec: "args=[\'input_handles\', \'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handles\', \'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListReserve" - argspec: "args=[\'element_shape\', \'num_elements\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'element_shape\', \'num_elements\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListResize" - argspec: "args=[\'input_handle\', \'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListScatter" - argspec: "args=[\'tensor\', \'indices\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListScatterIntoExistingList" - argspec: "args=[\'input_handle\', \'tensor\', \'indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'tensor\', \'indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListScatterV2" - argspec: "args=[\'tensor\', \'indices\', \'element_shape\', \'num_elements\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'element_shape\', \'num_elements\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListSetItem" - argspec: "args=[\'input_handle\', \'index\', \'item\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'index\', \'item\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListSplit" - argspec: "args=[\'tensor\', \'element_shape\', \'lengths\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'element_shape\', \'lengths\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListStack" - argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\', \'num_elements\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\', \'num_elements\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "TensorScatterAdd" - argspec: "args=[\'tensor\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorScatterSub" - argspec: "args=[\'tensor\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorScatterUpdate" - argspec: "args=[\'tensor\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorSliceDataset" - argspec: "args=[\'components\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'components\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorSummary" - argspec: "args=[\'tensor\', \'description\', \'labels\', \'display_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'description\', \'labels\', \'display_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'[]\', \'\', \'None\'], " } member_method { name: "TensorSummaryV2" - argspec: "args=[\'tag\', \'tensor\', \'serialized_summary_metadata\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'serialized_summary_metadata\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TextLineDataset" - argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TextLineReader" - argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'\', \'\', \'None\'], " } member_method { name: "TextLineReaderV2" - argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'\', \'\', \'None\'], " } member_method { name: "ThreadUnsafeUnigramCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Tile" - argspec: "args=[\'input\', \'multiples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'multiples\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TileGrad" - argspec: "args=[\'input\', \'multiples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'multiples\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Timestamp" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TopK" - argspec: "args=[\'input\', \'k\', \'sorted\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'k\', \'sorted\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "TopKV2" - argspec: "args=[\'input\', \'k\', \'sorted\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'k\', \'sorted\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Transpose" - argspec: "args=[\'x\', \'perm\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'perm\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TridiagonalSolve" - argspec: "args=[\'diagonals\', \'rhs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonals\', \'rhs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TruncateDiv" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TruncateMod" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TruncatedNormal" - argspec: "args=[\'shape\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "UnicodeDecode" - argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'False\', \'None\'], " } member_method { name: "UnicodeDecodeWithOffsets" - argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'False\', \'None\'], " } member_method { name: "UnicodeEncode" - argspec: "args=[\'input_values\', \'input_splits\', \'errors\', \'output_encoding\', \'replacement_char\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_values\', \'input_splits\', \'output_encoding\', \'errors\', \'replacement_char\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'None\'], " } member_method { name: "UnicodeScript" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnicodeTranscode" - argspec: "args=[\'input\', \'input_encoding\', \'output_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_encoding\', \'output_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'False\', \'None\'], " } member_method { name: "UniformCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Unique" - argspec: "args=[\'x\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "UniqueV2" - argspec: "args=[\'x\', \'axis\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "UniqueWithCounts" - argspec: "args=[\'x\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "UniqueWithCountsV2" - argspec: "args=[\'x\', \'axis\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Unpack" - argspec: "args=[\'value\', \'num\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'num\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "UnravelIndex" - argspec: "args=[\'indices\', \'dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'dims\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentMax" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentMin" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentProd" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentSum" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Unstage" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "UnwrapDatasetVariant" - argspec: "args=[\'input_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UpperBound" - argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "VarHandleOp" - argspec: "args=[\'container\', \'shared_name\', \'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "VarIsInitializedOp" - argspec: "args=[\'resource\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Variable" - argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "VariableShape" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "VariableV2" - argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "Where" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'condition\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "While" - argspec: "args=[\'input\', \'cond\', \'body\', \'output_shapes\', \'parallel_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'cond\', \'body\', \'output_shapes\', \'parallel_iterations\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'10\', \'None\'], " } member_method { name: "WholeFileReader" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "WholeFileReaderV2" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "WindowDataset" - argspec: "args=[\'input_dataset\', \'size\', \'shift\', \'stride\', \'drop_remainder\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'size\', \'shift\', \'stride\', \'drop_remainder\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WorkerHeartbeat" - argspec: "args=[\'request\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'request\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WrapDatasetVariant" - argspec: "args=[\'input_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteAudioSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'sample_rate\', \'max_outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'sample_rate\', \'max_outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "WriteFile" - argspec: "args=[\'filename\', \'contents\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'contents\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteGraphSummary" - argspec: "args=[\'writer\', \'step\', \'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteHistogramSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteImageSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'bad_color\', \'max_images\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'bad_color\', \'max_images\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "WriteScalarSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteSummary" - argspec: "args=[\'writer\', \'step\', \'tensor\', \'tag\', \'summary_metadata\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tensor\', \'tag\', \'summary_metadata\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Xdivy" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Xlogy" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ZerosLike" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Zeta" - argspec: "args=[\'x\', \'q\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'q\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ZipDataset" - argspec: "args=[\'input_datasets\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_datasets\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } } diff --git a/tensorflow/tools/api/golden/v2/tensorflow.autograph.experimental.-verbosity.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.autograph.experimental.-verbosity.pbtxt deleted file mode 100644 index c4d5b77c073..00000000000 --- a/tensorflow/tools/api/golden/v2/tensorflow.autograph.experimental.-verbosity.pbtxt +++ /dev/null @@ -1,12 +0,0 @@ -path: "tensorflow.autograph.experimental.Verbosity" -tf_class { - is_instance: "" - member { - name: "BRIEF" - mtype: "" - } - member { - name: "VERBOSE" - mtype: "" - } -} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.autograph.experimental.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.autograph.experimental.pbtxt index 5747dac7ab2..cd8f0716d48 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.autograph.experimental.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.autograph.experimental.pbtxt @@ -4,8 +4,4 @@ tf_module { name: "Feature" mtype: "" } - member { - name: "Verbosity" - mtype: "" - } } diff --git a/tensorflow/tools/api/golden/v2/tensorflow.autograph.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.autograph.pbtxt index 0baf6e03552..8880ed4f0cb 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.autograph.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.autograph.pbtxt @@ -10,11 +10,11 @@ tf_module { } member_method { name: "to_code" - argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'indentation\', \'experimental_optional_features\', \'experimental_partial_types\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \' \', \'Feature.ALL\', \'None\'], " + argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'indentation\', \'experimental_optional_features\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \' \', \'Feature.ALL\'], " } member_method { name: "to_graph" - argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'experimental_optional_features\', \'experimental_strip_decorators\', \'experimental_verbose\', \'experimental_partial_types\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \'Feature.ALL\', \'None\', \'Verbosity.BRIEF\', \'None\'], " + argspec: "args=[\'entity\', \'recursive\', \'arg_values\', \'arg_types\', \'experimental_optional_features\'], varargs=None, keywords=None, defaults=[\'True\', \'None\', \'None\', \'Feature.ALL\'], " } member_method { name: "trace" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.distribute.-mirrored-strategy.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.distribute.-mirrored-strategy.pbtxt index 14da8618ceb..fbac8c087f1 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.distribute.-mirrored-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.distribute.-mirrored-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v2/tensorflow.distribute.-one-device-strategy.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.distribute.-one-device-strategy.pbtxt index a87a2cf7431..184ff96e632 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.distribute.-one-device-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.distribute.-one-device-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v2/tensorflow.distribute.-strategy.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.distribute.-strategy.pbtxt index 5099dc4f818..b6be122b7ac 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.distribute.-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.distribute.-strategy.pbtxt @@ -22,6 +22,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt index 78ce6675b8f..1726e74534a 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-multi-worker-mirrored-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt index 29191b79428..8c6ee288f28 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-parameter-server-strategy.pbtxt @@ -23,6 +23,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt index 887df7fef4a..927f1a8f505 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.distribute.experimental.-t-p-u-strategy.pbtxt @@ -27,6 +27,10 @@ tf_class { name: "configure" argspec: "args=[\'self\', \'session_config\', \'cluster_spec\', \'task_type\', \'task_id\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], " } + member_method { + name: "experimental_local_results" + argspec: "args=[\'self\', \'value\'], varargs=None, keywords=None, defaults=None" + } member_method { name: "experimental_make_numpy_iterator" argspec: "args=[\'self\', \'numpy_input\', \'batch_size\', \'num_epochs\', \'shuffle\', \'session\'], varargs=None, keywords=None, defaults=[\'1\', \'1024\', \'None\'], " diff --git a/tensorflow/tools/api/golden/v2/tensorflow.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.pbtxt index 0cc3514ac01..b6efded31c3 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.pbtxt @@ -988,10 +988,6 @@ tf_module { name: "strided_slice" argspec: "args=[\'input_\', \'begin\', \'end\', \'strides\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'var\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'0\', \'0\', \'0\', \'0\', \'0\', \'None\', \'None\'], " } - member_method { - name: "string_split" - argspec: "args=[\'source\', \'delimiter\', \'skip_empty\'], varargs=None, keywords=None, defaults=[\' \', \'True\'], " - } member_method { name: "subtract" argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " diff --git a/tensorflow/tools/api/golden/v2/tensorflow.raw_ops.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.raw_ops.pbtxt index b02bce23789..489771285c7 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.raw_ops.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.raw_ops.pbtxt @@ -2,4350 +2,4350 @@ path: "tensorflow.raw_ops" tf_module { member_method { name: "Abort" - argspec: "args=[\'error_msg\', \'exit_without_error\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'error_msg\', \'exit_without_error\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'False\', \'None\'], " } member_method { name: "Abs" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulateNV2" - argspec: "args=[\'inputs\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorApplyGradient" - argspec: "args=[\'handle\', \'local_step\', \'gradient\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'local_step\', \'gradient\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorNumAccumulated" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorSetGlobalStep" - argspec: "args=[\'handle\', \'new_global_step\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'new_global_step\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AccumulatorTakeGradient" - argspec: "args=[\'handle\', \'num_required\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'num_required\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Acos" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Acosh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Add" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AddManySparseToTensorsMap" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "AddN" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AddSparseToTensorsMap" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "AddV2" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustContrast" - argspec: "args=[\'images\', \'contrast_factor\', \'min_value\', \'max_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'contrast_factor\', \'min_value\', \'max_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustContrastv2" - argspec: "args=[\'images\', \'contrast_factor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'contrast_factor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustHue" - argspec: "args=[\'images\', \'delta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'delta\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AdjustSaturation" - argspec: "args=[\'images\', \'scale\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'scale\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "All" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AllCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "AllToAll" - argspec: "args=[\'input\', \'group_assignment\', \'concat_dimension\', \'split_dimension\', \'split_count\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_assignment\', \'concat_dimension\', \'split_dimension\', \'split_count\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Angle" - argspec: "args=[\'input\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "AnonymousIterator" - argspec: "args=[\'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Any" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdaMax" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "ApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyAdam" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ApplyAddSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ApplyPowerSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ApproximateEqual" - argspec: "args=[\'x\', \'y\', \'tolerance\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'tolerance\', \'name\'], varargs=None, keywords=None, defaults=[\'1e-05\', \'None\'], " } member_method { name: "ArgMax" - argspec: "args=[\'input\', \'dimension\', \'output_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'dimension\', \'output_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ArgMin" - argspec: "args=[\'input\', \'dimension\', \'output_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'dimension\', \'output_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "AsString" - argspec: "args=[\'input\', \'precision\', \'scientific\', \'shortest\', \'width\', \'fill\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'precision\', \'scientific\', \'shortest\', \'width\', \'fill\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'False\', \'False\', \'-1\', \'\', \'None\'], " } member_method { name: "Asin" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Asinh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Assert" - argspec: "args=[\'condition\', \'data\', \'summarize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'condition\', \'data\', \'summarize\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "Assign" - argspec: "args=[\'ref\', \'value\', \'validate_shape\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'value\', \'validate_shape\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'True\', \'None\'], " } member_method { name: "AssignAdd" - argspec: "args=[\'ref\', \'value\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'value\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AssignAddVariableOp" - argspec: "args=[\'resource\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AssignSub" - argspec: "args=[\'ref\', \'value\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'value\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AssignSubVariableOp" - argspec: "args=[\'resource\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AssignVariableOp" - argspec: "args=[\'resource\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Atan" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Atan2" - argspec: "args=[\'y\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Atanh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "AudioSpectrogram" - argspec: "args=[\'input\', \'window_size\', \'stride\', \'magnitude_squared\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'window_size\', \'stride\', \'magnitude_squared\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "AudioSummary" - argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "AudioSummaryV2" - argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'sample_rate\', \'max_outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "AvgPool" - argspec: "args=[\'value\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "AvgPool3D" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "AvgPool3DGrad" - argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "AvgPoolGrad" - argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input_shape\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "Barrier" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "BarrierClose" - argspec: "args=[\'handle\', \'cancel_pending_enqueues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'cancel_pending_enqueues\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BarrierIncompleteSize" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BarrierInsertMany" - argspec: "args=[\'handle\', \'keys\', \'values\', \'component_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'keys\', \'values\', \'component_index\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BarrierReadySize" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BarrierTakeMany" - argspec: "args=[\'handle\', \'num_elements\', \'component_types\', \'allow_small_batch\', \'wait_for_incomplete\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'num_elements\', \'component_types\', \'allow_small_batch\', \'wait_for_incomplete\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'-1\', \'None\'], " } member_method { name: "BatchCholesky" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchCholeskyGrad" - argspec: "args=[\'l\', \'grad\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'l\', \'grad\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchDataset" - argspec: "args=[\'input_dataset\', \'batch_size\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchDatasetV2" - argspec: "args=[\'input_dataset\', \'batch_size\', \'drop_remainder\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'drop_remainder\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchFFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchFFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchFFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchIFFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchIFFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchIFFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatMul" - argspec: "args=[\'x\', \'y\', \'adj_x\', \'adj_y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'adj_x\', \'adj_y\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "BatchMatrixBandPart" - argspec: "args=[\'input\', \'num_lower\', \'num_upper\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_lower\', \'num_upper\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixDeterminant" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixDiag" - argspec: "args=[\'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixDiagPart" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixInverse" - argspec: "args=[\'input\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BatchMatrixSetDiag" - argspec: "args=[\'input\', \'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchMatrixSolve" - argspec: "args=[\'matrix\', \'rhs\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BatchMatrixSolveLs" - argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "BatchMatrixTriangularSolve" - argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "BatchNormWithGlobalNormalization" - argspec: "args=[\'t\', \'m\', \'v\', \'beta\', \'gamma\', \'variance_epsilon\', \'scale_after_normalization\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'m\', \'v\', \'beta\', \'gamma\', \'variance_epsilon\', \'scale_after_normalization\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchNormWithGlobalNormalizationGrad" - argspec: "args=[\'t\', \'m\', \'v\', \'gamma\', \'backprop\', \'variance_epsilon\', \'scale_after_normalization\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'m\', \'v\', \'gamma\', \'backprop\', \'variance_epsilon\', \'scale_after_normalization\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchSelfAdjointEig" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchSelfAdjointEigV2" - argspec: "args=[\'input\', \'compute_v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_v\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "BatchSvd" - argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "BatchToSpace" - argspec: "args=[\'input\', \'crops\', \'block_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'crops\', \'block_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BatchToSpaceND" - argspec: "args=[\'input\', \'block_shape\', \'crops\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_shape\', \'crops\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BesselI0e" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BesselI1e" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Betainc" - argspec: "args=[\'a\', \'b\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BiasAdd" - argspec: "args=[\'value\', \'bias\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'bias\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "BiasAddGrad" - argspec: "args=[\'out_backprop\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'out_backprop\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "BiasAddV1" - argspec: "args=[\'value\', \'bias\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'bias\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Bincount" - argspec: "args=[\'arr\', \'size\', \'weights\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'arr\', \'size\', \'weights\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Bitcast" - argspec: "args=[\'input\', \'type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BitwiseAnd" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BitwiseOr" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BitwiseXor" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesBucketize" - argspec: "args=[\'float_values\', \'bucket_boundaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'float_values\', \'bucket_boundaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCalculateBestGainsPerFeature" - argspec: "args=[\'node_id_range\', \'stats_summary_list\', \'l1\', \'l2\', \'tree_complexity\', \'min_node_weight\', \'max_splits\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'node_id_range\', \'stats_summary_list\', \'l1\', \'l2\', \'tree_complexity\', \'min_node_weight\', \'max_splits\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCenterBias" - argspec: "args=[\'tree_ensemble_handle\', \'mean_gradients\', \'mean_hessians\', \'l1\', \'l2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'mean_gradients\', \'mean_hessians\', \'l1\', \'l2\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCreateEnsemble" - argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesCreateQuantileStreamResource" - argspec: "args=[\'quantile_stream_resource_handle\', \'epsilon\', \'num_streams\', \'max_elements\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'epsilon\', \'num_streams\', \'max_elements\', \'name\'], varargs=None, keywords=None, defaults=[\'1099511627776\', \'None\'], " } member_method { name: "BoostedTreesDeserializeEnsemble" - argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'stamp_token\', \'tree_ensemble_serialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesEnsembleResourceHandleOp" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "BoostedTreesExampleDebugOutputs" - argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesGetEnsembleStates" - argspec: "args=[\'tree_ensemble_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesMakeQuantileSummaries" - argspec: "args=[\'float_values\', \'example_weights\', \'epsilon\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'float_values\', \'example_weights\', \'epsilon\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesMakeStatsSummary" - argspec: "args=[\'node_ids\', \'gradients\', \'hessians\', \'bucketized_features_list\', \'max_splits\', \'num_buckets\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'node_ids\', \'gradients\', \'hessians\', \'bucketized_features_list\', \'max_splits\', \'num_buckets\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesPredict" - argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'bucketized_features\', \'logits_dimension\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceAddSummaries" - argspec: "args=[\'quantile_stream_resource_handle\', \'summaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'summaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceDeserialize" - argspec: "args=[\'quantile_stream_resource_handle\', \'bucket_boundaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'bucket_boundaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceFlush" - argspec: "args=[\'quantile_stream_resource_handle\', \'num_buckets\', \'generate_quantiles\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'num_buckets\', \'generate_quantiles\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceGetBucketBoundaries" - argspec: "args=[\'quantile_stream_resource_handle\', \'num_features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'num_features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesQuantileStreamResourceHandleOp" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "BoostedTreesSerializeEnsemble" - argspec: "args=[\'tree_ensemble_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesTrainingPredict" - argspec: "args=[\'tree_ensemble_handle\', \'cached_tree_ids\', \'cached_node_ids\', \'bucketized_features\', \'logits_dimension\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'cached_tree_ids\', \'cached_node_ids\', \'bucketized_features\', \'logits_dimension\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BoostedTreesUpdateEnsemble" - argspec: "args=[\'tree_ensemble_handle\', \'feature_ids\', \'node_ids\', \'gains\', \'thresholds\', \'left_node_contribs\', \'right_node_contribs\', \'max_depth\', \'learning_rate\', \'pruning_mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'feature_ids\', \'node_ids\', \'gains\', \'thresholds\', \'left_node_contribs\', \'right_node_contribs\', \'max_depth\', \'learning_rate\', \'pruning_mode\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BroadcastArgs" - argspec: "args=[\'s0\', \'s1\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'s0\', \'s1\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BroadcastGradientArgs" - argspec: "args=[\'s0\', \'s1\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'s0\', \'s1\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "BroadcastTo" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Bucketize" - argspec: "args=[\'input\', \'boundaries\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'boundaries\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CTCBeamSearchDecoder" - argspec: "args=[\'inputs\', \'sequence_length\', \'beam_width\', \'top_paths\', \'merge_repeated\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'sequence_length\', \'beam_width\', \'top_paths\', \'merge_repeated\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "CTCGreedyDecoder" - argspec: "args=[\'inputs\', \'sequence_length\', \'merge_repeated\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'sequence_length\', \'merge_repeated\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "CTCLoss" - argspec: "args=[\'inputs\', \'labels_indices\', \'labels_values\', \'sequence_length\', \'preprocess_collapse_repeated\', \'ctc_merge_repeated\', \'ignore_longer_outputs_than_inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'labels_indices\', \'labels_values\', \'sequence_length\', \'preprocess_collapse_repeated\', \'ctc_merge_repeated\', \'ignore_longer_outputs_than_inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'False\', \'None\'], " } member_method { name: "CacheDataset" - argspec: "args=[\'input_dataset\', \'filename\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'filename\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Case" - argspec: "args=[\'branch_index\', \'input\', \'Tout\', \'branches\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'branch_index\', \'input\', \'Tout\', \'branches\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "Cast" - argspec: "args=[\'x\', \'DstT\', \'Truncate\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'DstT\', \'Truncate\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Ceil" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CheckNumerics" - argspec: "args=[\'tensor\', \'message\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'message\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Cholesky" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CholeskyGrad" - argspec: "args=[\'l\', \'grad\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'l\', \'grad\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ChooseFastestBranchDataset" - argspec: "args=[\'input_dataset\', \'ratio_numerator\', \'ratio_denominator\', \'other_arguments\', \'num_elements_per_branch\', \'branches\', \'other_arguments_lengths\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'ratio_numerator\', \'ratio_denominator\', \'other_arguments\', \'num_elements_per_branch\', \'branches\', \'other_arguments_lengths\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ClipByValue" - argspec: "args=[\'t\', \'clip_value_min\', \'clip_value_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'clip_value_min\', \'clip_value_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CloseSummaryWriter" - argspec: "args=[\'writer\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveBcastRecv" - argspec: "args=[\'T\', \'group_size\', \'group_key\', \'instance_key\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'T\', \'group_size\', \'group_key\', \'instance_key\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveBcastSend" - argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveGather" - argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectivePermute" - argspec: "args=[\'input\', \'source_target_pairs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'source_target_pairs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CollectiveReduce" - argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'merge_op\', \'final_op\', \'subdiv_offsets\', \'wait_for\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_size\', \'group_key\', \'instance_key\', \'merge_op\', \'final_op\', \'subdiv_offsets\', \'wait_for\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "CombinedNonMaxSuppression" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size_per_class\', \'max_total_size\', \'iou_threshold\', \'score_threshold\', \'pad_per_class\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size_per_class\', \'max_total_size\', \'iou_threshold\', \'score_threshold\', \'pad_per_class\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "CompareAndBitpack" - argspec: "args=[\'input\', \'threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Complex" - argspec: "args=[\'real\', \'imag\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'real\', \'imag\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ComplexAbs" - argspec: "args=[\'x\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ComputeAccidentalHits" - argspec: "args=[\'true_classes\', \'sampled_candidates\', \'num_true\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'sampled_candidates\', \'num_true\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Concat" - argspec: "args=[\'concat_dim\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'concat_dim\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConcatOffset" - argspec: "args=[\'concat_dim\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'concat_dim\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConcatV2" - argspec: "args=[\'values\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConcatenateDataset" - argspec: "args=[\'input_dataset\', \'another_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'another_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConditionalAccumulator" - argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'MEAN\', \'None\'], " } member_method { name: "ConfigureDistributedTPU" - argspec: "args=[\'embedding_config\', \'tpu_embedding_config\', \'is_global_init\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'embedding_config\', \'tpu_embedding_config\', \'is_global_init\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "Conj" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConjugateTranspose" - argspec: "args=[\'x\', \'perm\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'perm\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Const" - argspec: "args=[\'value\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ConsumeMutexLock" - argspec: "args=[\'mutex_lock\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'mutex_lock\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ControlTrigger" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Conv2D" - argspec: "args=[\'input\', \'filter\', \'strides\', \'use_cudnn_on_gpu\', \'padding\', \'explicit_paddings\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'use_cudnn_on_gpu\', \'explicit_paddings\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'[]\', \'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv2DBackpropFilter" - argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'use_cudnn_on_gpu\', \'padding\', \'explicit_paddings\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'use_cudnn_on_gpu\', \'explicit_paddings\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'[]\', \'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv2DBackpropInput" - argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'use_cudnn_on_gpu\', \'padding\', \'explicit_paddings\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'use_cudnn_on_gpu\', \'explicit_paddings\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'[]\', \'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3D" - argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropFilter" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropFilterV2" - argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropInput" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Conv3DBackpropInputV2" - argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'[1, 1, 1, 1, 1]\', \'None\'], " } member_method { name: "Cos" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Cosh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CountUpTo" - argspec: "args=[\'ref\', \'limit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'limit\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CreateSummaryDbWriter" - argspec: "args=[\'writer\', \'db_uri\', \'experiment_name\', \'run_name\', \'user_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'db_uri\', \'experiment_name\', \'run_name\', \'user_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CreateSummaryFileWriter" - argspec: "args=[\'writer\', \'logdir\', \'max_queue\', \'flush_millis\', \'filename_suffix\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'logdir\', \'max_queue\', \'flush_millis\', \'filename_suffix\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CropAndResize" - argspec: "args=[\'image\', \'boxes\', \'box_ind\', \'crop_size\', \'method\', \'extrapolation_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'boxes\', \'box_ind\', \'crop_size\', \'method\', \'extrapolation_value\', \'name\'], varargs=None, keywords=None, defaults=[\'bilinear\', \'0\', \'None\'], " } member_method { name: "CropAndResizeGradBoxes" - argspec: "args=[\'grads\', \'image\', \'boxes\', \'box_ind\', \'method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'image\', \'boxes\', \'box_ind\', \'method\', \'name\'], varargs=None, keywords=None, defaults=[\'bilinear\', \'None\'], " } member_method { name: "CropAndResizeGradImage" - argspec: "args=[\'grads\', \'boxes\', \'box_ind\', \'image_size\', \'T\', \'method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'boxes\', \'box_ind\', \'image_size\', \'T\', \'method\', \'name\'], varargs=None, keywords=None, defaults=[\'bilinear\', \'None\'], " } member_method { name: "Cross" - argspec: "args=[\'a\', \'b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CrossReplicaSum" - argspec: "args=[\'input\', \'group_assignment\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'group_assignment\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "CudnnRNN" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'None\'], " } member_method { name: "CudnnRNNBackprop" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNBackpropV2" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNBackpropV3" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'time_major\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'output\', \'output_h\', \'output_c\', \'output_backprop\', \'output_h_backprop\', \'output_c_backprop\', \'reserve_space\', \'host_reserved\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'time_major\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'None\'], " } member_method { name: "CudnnRNNCanonicalToParams" - argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'weights\', \'biases\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'weights\', \'biases\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNParamsSize" - argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'T\', \'S\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'T\', \'S\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNParamsToCanonical" - argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'params\', \'num_params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_layers\', \'num_units\', \'input_size\', \'params\', \'num_params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "CudnnRNNV2" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'None\'], " } member_method { name: "CudnnRNNV3" - argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'time_major\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_h\', \'input_c\', \'params\', \'sequence_lengths\', \'rnn_mode\', \'input_mode\', \'direction\', \'dropout\', \'seed\', \'seed2\', \'is_training\', \'time_major\', \'name\'], varargs=None, keywords=None, defaults=[\'lstm\', \'linear_input\', \'unidirectional\', \'0\', \'0\', \'0\', \'True\', \'True\', \'None\'], " } member_method { name: "Cumprod" - argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "Cumsum" - argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'exclusive\', \'reverse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "DataFormatDimMap" - argspec: "args=[\'x\', \'src_format\', \'dst_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'src_format\', \'dst_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'NCHW\', \'None\'], " } member_method { name: "DataFormatVecPermute" - argspec: "args=[\'x\', \'src_format\', \'dst_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'src_format\', \'dst_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'NCHW\', \'None\'], " } member_method { name: "DatasetToGraph" - argspec: "args=[\'input_dataset\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DatasetToSingleElement" - argspec: "args=[\'dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DebugGradientIdentity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DebugGradientRefIdentity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeAndCropJpeg" - argspec: "args=[\'contents\', \'crop_window\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'crop_window\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'1\', \'True\', \'False\', \'1\', \'\', \'None\'], " } member_method { name: "DecodeBase64" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeBmp" - argspec: "args=[\'contents\', \'channels\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'channels\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "DecodeCSV" - argspec: "args=[\'records\', \'record_defaults\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'records\', \'record_defaults\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\', \'name\'], varargs=None, keywords=None, defaults=[\',\', \'True\', \'\', \'[]\', \'None\'], " } member_method { name: "DecodeCompressed" - argspec: "args=[\'bytes\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'bytes\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "DecodeGif" - argspec: "args=[\'contents\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeJSONExample" - argspec: "args=[\'json_examples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'json_examples\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DecodeJpeg" - argspec: "args=[\'contents\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'channels\', \'ratio\', \'fancy_upscaling\', \'try_recover_truncated\', \'acceptable_fraction\', \'dct_method\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'1\', \'True\', \'False\', \'1\', \'\', \'None\'], " } member_method { name: "DecodePng" - argspec: "args=[\'contents\', \'channels\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'channels\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \"\", \'None\'], " } member_method { name: "DecodeRaw" - argspec: "args=[\'bytes\', \'out_type\', \'little_endian\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'bytes\', \'out_type\', \'little_endian\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DecodeWav" - argspec: "args=[\'contents\', \'desired_channels\', \'desired_samples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'desired_channels\', \'desired_samples\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'-1\', \'None\'], " } member_method { name: "DeepCopy" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DeleteSessionTensor" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DenseToDenseSetOperation" - argspec: "args=[\'set1\', \'set2\', \'set_operation\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set1\', \'set2\', \'set_operation\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DenseToSparseSetOperation" - argspec: "args=[\'set1\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set1\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DepthToSpace" - argspec: "args=[\'input\', \'block_size\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_size\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "DepthwiseConv2dNative" - argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "DepthwiseConv2dNativeBackpropFilter" - argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter_sizes\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "DepthwiseConv2dNativeBackpropInput" - argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_sizes\', \'filter\', \'out_backprop\', \'strides\', \'padding\', \'data_format\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "Dequantize" - argspec: "args=[\'input\', \'min_range\', \'max_range\', \'mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_range\', \'max_range\', \'mode\', \'name\'], varargs=None, keywords=None, defaults=[\'MIN_COMBINED\', \'None\'], " } member_method { name: "DeserializeIterator" - argspec: "args=[\'resource_handle\', \'serialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource_handle\', \'serialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DeserializeManySparse" - argspec: "args=[\'serialized_sparse\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized_sparse\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DeserializeSparse" - argspec: "args=[\'serialized_sparse\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized_sparse\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DestroyResourceOp" - argspec: "args=[\'resource\', \'ignore_lookup_error\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'ignore_lookup_error\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "DestroyTemporaryVariable" - argspec: "args=[\'ref\', \'var_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'var_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Diag" - argspec: "args=[\'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DiagPart" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Digamma" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Dilation2D" - argspec: "args=[\'input\', \'filter\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Dilation2DBackpropFilter" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Dilation2DBackpropInput" - argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'out_backprop\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Div" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DivNoNan" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DrawBoundingBoxes" - argspec: "args=[\'images\', \'boxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'boxes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DynamicPartition" - argspec: "args=[\'data\', \'partitions\', \'num_partitions\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'partitions\', \'num_partitions\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "DynamicStitch" - argspec: "args=[\'indices\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EagerPyFunc" - argspec: "args=[\'input\', \'token\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'token\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EditDistance" - argspec: "args=[\'hypothesis_indices\', \'hypothesis_values\', \'hypothesis_shape\', \'truth_indices\', \'truth_values\', \'truth_shape\', \'normalize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'hypothesis_indices\', \'hypothesis_values\', \'hypothesis_shape\', \'truth_indices\', \'truth_values\', \'truth_shape\', \'normalize\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Elu" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EluGrad" - argspec: "args=[\'gradients\', \'outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Empty" - argspec: "args=[\'shape\', \'dtype\', \'init\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'init\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "EmptyTensorList" - argspec: "args=[\'element_shape\', \'max_num_elements\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'element_shape\', \'max_num_elements\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EncodeBase64" - argspec: "args=[\'input\', \'pad\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pad\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "EncodeJpeg" - argspec: "args=[\'image\', \'format\', \'quality\', \'progressive\', \'optimize_size\', \'chroma_downsampling\', \'density_unit\', \'x_density\', \'y_density\', \'xmp_metadata\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'format\', \'quality\', \'progressive\', \'optimize_size\', \'chroma_downsampling\', \'density_unit\', \'x_density\', \'y_density\', \'xmp_metadata\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'95\', \'False\', \'False\', \'True\', \'in\', \'300\', \'300\', \'\', \'None\'], " } member_method { name: "EncodePng" - argspec: "args=[\'image\', \'compression\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'compression\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "EncodeWav" - argspec: "args=[\'audio\', \'sample_rate\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'audio\', \'sample_rate\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EnqueueTPUEmbeddingIntegerBatch" - argspec: "args=[\'batch\', \'mode_override\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'batch\', \'mode_override\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "EnqueueTPUEmbeddingSparseBatch" - argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'device_ordinal\', \'combiners\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'device_ordinal\', \'combiners\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'[]\', \'None\'], " } member_method { name: "EnqueueTPUEmbeddingSparseTensorBatch" - argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'device_ordinal\', \'combiners\', \'table_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sample_indices\', \'embedding_indices\', \'aggregation_weights\', \'mode_override\', \'table_ids\', \'device_ordinal\', \'combiners\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'[]\', \'None\'], " } member_method { name: "EnsureShape" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Enter" - argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'10\', \'None\'], " } member_method { name: "Equal" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Erf" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Erfc" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "EuclideanNorm" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Exit" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Exp" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExpandDims" - argspec: "args=[\'input\', \'dim\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalAssertNextDataset" - argspec: "args=[\'input_dataset\', \'transformations\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'transformations\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalAutoShardDataset" - argspec: "args=[\'input_dataset\', \'num_workers\', \'index\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_workers\', \'index\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalBytesProducedStatsDataset" - argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalCSVDataset" - argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'header\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\', \'record_defaults\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'header\', \'field_delim\', \'use_quote_delim\', \'na_value\', \'select_cols\', \'record_defaults\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalChooseFastestDataset" - argspec: "args=[\'input_datasets\', \'num_experiments\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_datasets\', \'num_experiments\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDatasetCardinality" - argspec: "args=[\'input_dataset\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDatasetToTFRecord" - argspec: "args=[\'input_dataset\', \'filename\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'filename\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDenseToSparseBatchDataset" - argspec: "args=[\'input_dataset\', \'batch_size\', \'row_shape\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'row_shape\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalDirectedInterleaveDataset" - argspec: "args=[\'selector_input_dataset\', \'data_input_datasets\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'selector_input_dataset\', \'data_input_datasets\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalGroupByReducerDataset" - argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'init_func_other_arguments\', \'reduce_func_other_arguments\', \'finalize_func_other_arguments\', \'key_func\', \'init_func\', \'reduce_func\', \'finalize_func\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'init_func_other_arguments\', \'reduce_func_other_arguments\', \'finalize_func_other_arguments\', \'key_func\', \'init_func\', \'reduce_func\', \'finalize_func\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalGroupByWindowDataset" - argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'reduce_func_other_arguments\', \'window_size_func_other_arguments\', \'key_func\', \'reduce_func\', \'window_size_func\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'key_func_other_arguments\', \'reduce_func_other_arguments\', \'window_size_func_other_arguments\', \'key_func\', \'reduce_func\', \'window_size_func\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIdentityIndexedDataset" - argspec: "args=[\'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIgnoreErrorsDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIndexedDatasetGet" - argspec: "args=[\'materialized\', \'index\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'materialized\', \'index\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIndexedDatasetMaterialize" - argspec: "args=[\'dataset\', \'materialized\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'materialized\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalIteratorGetDevice" - argspec: "args=[\'resource\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalLMDBDataset" - argspec: "args=[\'filenames\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalLatencyStatsDataset" - argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'tag\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalMapAndBatchDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalMapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "ExperimentalMatchingFilesDataset" - argspec: "args=[\'patterns\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'patterns\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalMaterializedIndexDatasetHandle" - argspec: "args=[\'container\', \'shared_name\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalMaxIntraOpParallelismDataset" - argspec: "args=[\'input_dataset\', \'max_intra_op_parallelism\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'max_intra_op_parallelism\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalNonSerializableDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalNumaMapAndBatchDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'batch_size\', \'num_parallel_calls\', \'drop_remainder\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalParallelInterleaveDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'sloppy\', \'buffer_output_elements\', \'prefetch_input_elements\', \'f\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'sloppy\', \'buffer_output_elements\', \'prefetch_input_elements\', \'f\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalParseExampleDataset" - argspec: "args=[\'input_dataset\', \'num_parallel_calls\', \'dense_defaults\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\', \'output_types\', \'output_shapes\', \'sloppy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_parallel_calls\', \'dense_defaults\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\', \'output_types\', \'output_shapes\', \'sloppy\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalPrivateThreadPoolDataset" - argspec: "args=[\'input_dataset\', \'num_threads\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_threads\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalRandomDataset" - argspec: "args=[\'seed\', \'seed2\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'seed\', \'seed2\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalRebatchDataset" - argspec: "args=[\'input_dataset\', \'num_workers\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_workers\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalScanDataset" - argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ExperimentalSetStatsAggregatorDataset" - argspec: "args=[\'input_dataset\', \'stats_aggregator\', \'tag\', \'counter_prefix\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'stats_aggregator\', \'tag\', \'counter_prefix\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalSleepDataset" - argspec: "args=[\'input_dataset\', \'sleep_microseconds\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'sleep_microseconds\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalSlidingWindowDataset" - argspec: "args=[\'input_dataset\', \'window_size\', \'window_shift\', \'window_stride\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'window_size\', \'window_shift\', \'window_stride\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalSqlDataset" - argspec: "args=[\'driver_name\', \'data_source_name\', \'query\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'driver_name\', \'data_source_name\', \'query\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalStatsAggregatorHandle" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "ExperimentalStatsAggregatorSummary" - argspec: "args=[\'iterator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalTakeWhileDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalThreadPoolDataset" - argspec: "args=[\'input_dataset\', \'thread_pool\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'thread_pool\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalThreadPoolHandle" - argspec: "args=[\'num_threads\', \'max_intra_op_parallelism\', \'display_name\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_threads\', \'display_name\', \'max_intra_op_parallelism\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'\', \'\', \'None\'], " } member_method { name: "ExperimentalUnbatchDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExperimentalUniqueDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Expm1" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExtractGlimpse" - argspec: "args=[\'input\', \'size\', \'offsets\', \'centered\', \'normalized\', \'uniform_noise\', \'noise\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'size\', \'offsets\', \'centered\', \'normalized\', \'uniform_noise\', \'noise\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'True\', \'True\', \'uniform\', \'None\'], " } member_method { name: "ExtractImagePatches" - argspec: "args=[\'images\', \'ksizes\', \'strides\', \'rates\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'ksizes\', \'strides\', \'rates\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ExtractJpegShape" - argspec: "args=[\'contents\', \'output_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'contents\', \'output_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ExtractVolumePatches" - argspec: "args=[\'input\', \'ksizes\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksizes\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FIFOQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "FIFOQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "Fact" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FakeParam" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FakeQuantWithMinMaxArgs" - argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'-6\', \'6\', \'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxArgsGradient" - argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'-6\', \'6\', \'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVars" - argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVarsGradient" - argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVarsPerChannel" - argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQuantWithMinMaxVarsPerChannelGradient" - argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'inputs\', \'min\', \'max\', \'num_bits\', \'narrow_range\', \'name\'], varargs=None, keywords=None, defaults=[\'8\', \'False\', \'None\'], " } member_method { name: "FakeQueue" - argspec: "args=[\'resource\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Fill" - argspec: "args=[\'dims\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dims\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FilterByLastComponentDataset" - argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FilterDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'predicate\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FixedLengthRecordDataset" - argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FixedLengthRecordDatasetV2" - argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'header_bytes\', \'record_bytes\', \'footer_bytes\', \'buffer_size\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FixedLengthRecordReader" - argspec: "args=[\'header_bytes\', \'record_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'record_bytes\', \'header_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "FixedLengthRecordReaderV2" - argspec: "args=[\'header_bytes\', \'record_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\', \'encoding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'record_bytes\', \'header_bytes\', \'footer_bytes\', \'hop_bytes\', \'container\', \'shared_name\', \'encoding\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'\', \'\', \'\', \'None\'], " } member_method { name: "FixedUnigramCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'vocab_file\', \'distortion\', \'num_reserved_ids\', \'num_shards\', \'shard\', \'unigrams\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'vocab_file\', \'distortion\', \'num_reserved_ids\', \'num_shards\', \'shard\', \'unigrams\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'1\', \'0\', \'1\', \'0\', \'[]\', \'0\', \'0\', \'None\'], " } member_method { name: "FlatMapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Floor" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FloorDiv" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FloorMod" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FlushSummaryWriter" - argspec: "args=[\'writer\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "For" - argspec: "args=[\'start\', \'limit\', \'delta\', \'input\', \'body\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'limit\', \'delta\', \'input\', \'body\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FractionalAvgPool" - argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'False\', \'0\', \'0\', \'None\'], " } member_method { name: "FractionalAvgPoolGrad" - argspec: "args=[\'orig_input_tensor_shape\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input_tensor_shape\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "FractionalMaxPool" - argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'pooling_ratio\', \'pseudo_random\', \'overlapping\', \'deterministic\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'False\', \'0\', \'0\', \'None\'], " } member_method { name: "FractionalMaxPoolGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'out_backprop\', \'row_pooling_sequence\', \'col_pooling_sequence\', \'overlapping\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "FusedBatchNorm" - argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedBatchNormGrad" - argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedBatchNormGradV2" - argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y_backprop\', \'x\', \'scale\', \'reserve_space_1\', \'reserve_space_2\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedBatchNormV2" - argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'scale\', \'offset\', \'mean\', \'variance\', \'epsilon\', \'data_format\', \'is_training\', \'name\'], varargs=None, keywords=None, defaults=[\'0.0001\', \'NHWC\', \'True\', \'None\'], " } member_method { name: "FusedPadConv2D" - argspec: "args=[\'input\', \'paddings\', \'filter\', \'mode\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'filter\', \'mode\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "FusedResizeAndPadConv2D" - argspec: "args=[\'input\', \'size\', \'paddings\', \'filter\', \'resize_align_corners\', \'mode\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'size\', \'paddings\', \'filter\', \'mode\', \'strides\', \'padding\', \'resize_align_corners\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Gather" - argspec: "args=[\'params\', \'indices\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params\', \'indices\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "GatherNd" - argspec: "args=[\'params\', \'indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params\', \'indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GatherV2" - argspec: "args=[\'params\', \'indices\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params\', \'indices\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GenerateVocabRemapping" - argspec: "args=[\'new_vocab_file\', \'old_vocab_file\', \'new_vocab_offset\', \'num_new_vocab\', \'old_vocab_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'new_vocab_file\', \'old_vocab_file\', \'new_vocab_offset\', \'num_new_vocab\', \'old_vocab_size\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "GeneratorDataset" - argspec: "args=[\'init_func_other_args\', \'next_func_other_args\', \'finalize_func_other_args\', \'init_func\', \'next_func\', \'finalize_func\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'init_func_other_args\', \'next_func_other_args\', \'finalize_func_other_args\', \'init_func\', \'next_func\', \'finalize_func\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GetSessionHandle" - argspec: "args=[\'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GetSessionHandleV2" - argspec: "args=[\'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GetSessionTensor" - argspec: "args=[\'handle\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Greater" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GreaterEqual" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "GuaranteeConst" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "HSVToRGB" - argspec: "args=[\'images\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "HashTable" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "HashTableV2" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "HistogramFixedWidth" - argspec: "args=[\'values\', \'value_range\', \'nbins\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'value_range\', \'nbins\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "HistogramSummary" - argspec: "args=[\'tag\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IFFT" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IFFT2D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IFFT3D" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IRFFT" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IRFFT2D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IRFFT3D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Identity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IdentityN" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IdentityReader" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "IdentityReaderV2" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "If" - argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "Igamma" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IgammaGradA" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Igammac" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Imag" - argspec: "args=[\'input\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ImageSummary" - argspec: "args=[\'tag\', \'tensor\', \'max_images\', \'bad_color\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'max_images\', \'bad_color\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'dtype: DT_UINT8\\ntensor_shape {\\n dim {\\n size: 4\\n }\\n}\\nint_val: 255\\nint_val: 0\\nint_val: 0\\nint_val: 255\\n\', \'None\'], " } member_method { name: "ImmutableConst" - argspec: "args=[\'dtype\', \'shape\', \'memory_region_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'memory_region_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ImportEvent" - argspec: "args=[\'writer\', \'event\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'event\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InTopK" - argspec: "args=[\'predictions\', \'targets\', \'k\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'predictions\', \'targets\', \'k\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InTopKV2" - argspec: "args=[\'predictions\', \'targets\', \'k\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'predictions\', \'targets\', \'k\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InfeedDequeue" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InfeedDequeueTuple" - argspec: "args=[\'dtypes\', \'shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InfeedEnqueue" - argspec: "args=[\'input\', \'shape\', \'layout\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'layout\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'-1\', \'None\'], " } member_method { name: "InfeedEnqueuePrelinearizedBuffer" - argspec: "args=[\'input\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "InfeedEnqueueTuple" - argspec: "args=[\'inputs\', \'shapes\', \'layouts\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'shapes\', \'layouts\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'None\'], " } member_method { name: "InitializeTable" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InitializeTableFromTextFile" - argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\\t\', \'None\'], " } member_method { name: "InitializeTableFromTextFileV2" - argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'filename\', \'key_index\', \'value_index\', \'vocab_size\', \'delimiter\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\\t\', \'None\'], " } member_method { name: "InitializeTableV2" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InplaceAdd" - argspec: "args=[\'x\', \'i\', \'v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'i\', \'v\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InplaceSub" - argspec: "args=[\'x\', \'i\', \'v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'i\', \'v\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InplaceUpdate" - argspec: "args=[\'x\', \'i\', \'v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'i\', \'v\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InterleaveDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'f\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'f\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Inv" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InvGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Invert" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "InvertPermutation" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsBoostedTreesEnsembleInitialized" - argspec: "args=[\'tree_ensemble_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tree_ensemble_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsBoostedTreesQuantileStreamResourceInitialized" - argspec: "args=[\'quantile_stream_resource_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'quantile_stream_resource_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsFinite" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsInf" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsNan" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IsVariableInitialized" - argspec: "args=[\'ref\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Iterator" - argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorFromStringHandle" - argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "IteratorFromStringHandleV2" - argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "IteratorGetNext" - argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorGetNextAsOptional" - argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorGetNextSync" - argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'iterator\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorToStringHandle" - argspec: "args=[\'resource_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "IteratorV2" - argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shared_name\', \'container\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "L2Loss" - argspec: "args=[\'t\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LMDBReader" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "LRN" - argspec: "args=[\'input\', \'depth_radius\', \'bias\', \'alpha\', \'beta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'depth_radius\', \'bias\', \'alpha\', \'beta\', \'name\'], varargs=None, keywords=None, defaults=[\'5\', \'1\', \'1\', \'0.5\', \'None\'], " } member_method { name: "LRNGrad" - argspec: "args=[\'input_grads\', \'input_image\', \'output_image\', \'depth_radius\', \'bias\', \'alpha\', \'beta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_grads\', \'input_image\', \'output_image\', \'depth_radius\', \'bias\', \'alpha\', \'beta\', \'name\'], varargs=None, keywords=None, defaults=[\'5\', \'1\', \'1\', \'0.5\', \'None\'], " } member_method { name: "LeakyRelu" - argspec: "args=[\'features\', \'alpha\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'alpha\', \'name\'], varargs=None, keywords=None, defaults=[\'0.2\', \'None\'], " } member_method { name: "LeakyReluGrad" - argspec: "args=[\'gradients\', \'features\', \'alpha\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'alpha\', \'name\'], varargs=None, keywords=None, defaults=[\'0.2\', \'None\'], " } member_method { name: "LearnedUnigramCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "LeftShift" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Less" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LessEqual" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Lgamma" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LinSpace" - argspec: "args=[\'start\', \'stop\', \'num\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'stop\', \'num\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ListDiff" - argspec: "args=[\'x\', \'y\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "LoadAndRemapMatrix" - argspec: "args=[\'ckpt_path\', \'old_tensor_name\', \'row_remapping\', \'col_remapping\', \'initializing_values\', \'num_rows\', \'num_cols\', \'max_rows_in_memory\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ckpt_path\', \'old_tensor_name\', \'row_remapping\', \'col_remapping\', \'initializing_values\', \'num_rows\', \'num_cols\', \'max_rows_in_memory\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "LoadTPUEmbeddingADAMParameters" - argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingADAMParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'velocities\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdadeltaParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdadeltaParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'updates\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdagradParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingAdagradParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingCenteredRMSPropParameters" - argspec: "args=[\'parameters\', \'ms\', \'mom\', \'mg\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'ms\', \'mom\', \'mg\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingFTRLParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingFTRLParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'linears\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingMDLAdagradLightParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'weights\', \'benefits\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'weights\', \'benefits\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingMomentumParameters" - argspec: "args=[\'parameters\', \'momenta\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingMomentumParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'momenta\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'momenta\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingProximalAdagradParameters" - argspec: "args=[\'parameters\', \'accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'accumulators\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingRMSPropParameters" - argspec: "args=[\'parameters\', \'ms\', \'mom\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'ms\', \'mom\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingRMSPropParametersGradAccumDebug" - argspec: "args=[\'parameters\', \'ms\', \'mom\', \'gradient_accumulators\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'ms\', \'mom\', \'gradient_accumulators\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "LoadTPUEmbeddingStochasticGradientDescentParameters" - argspec: "args=[\'parameters\', \'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'parameters\', \'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "Log" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Log1p" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogMatrixDeterminant" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogSoftmax" - argspec: "args=[\'logits\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogUniformCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "LogicalAnd" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogicalNot" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LogicalOr" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableExport" - argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableExportV2" - argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'Tkeys\', \'Tvalues\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableFind" - argspec: "args=[\'table_handle\', \'keys\', \'default_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'default_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableFindV2" - argspec: "args=[\'table_handle\', \'keys\', \'default_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'default_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableImport" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableImportV2" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableInsert" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableInsertV2" - argspec: "args=[\'table_handle\', \'keys\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableRemoveV2" - argspec: "args=[\'table_handle\', \'keys\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'keys\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableSize" - argspec: "args=[\'table_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LookupTableSizeV2" - argspec: "args=[\'table_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'table_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LoopCond" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "LowerBound" - argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Lu" - argspec: "args=[\'input\', \'output_idx_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'output_idx_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "MakeIterator" - argspec: "args=[\'dataset\', \'iterator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'iterator\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MapClear" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "MapDefun" - argspec: "args=[\'arguments\', \'captured_inputs\', \'output_types\', \'output_shapes\', \'f\', \'max_intra_op_parallelism\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'arguments\', \'captured_inputs\', \'output_types\', \'output_shapes\', \'f\', \'max_intra_op_parallelism\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'None\'], " } member_method { name: "MapIncompleteSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapPeek" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapStage" - argspec: "args=[\'key\', \'indices\', \'values\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'values\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapUnstage" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MapUnstageNoKey" - argspec: "args=[\'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "MatMul" - argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "MatchingFiles" - argspec: "args=[\'pattern\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'pattern\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixBandPart" - argspec: "args=[\'input\', \'num_lower\', \'num_upper\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_lower\', \'num_upper\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixDeterminant" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixDiag" - argspec: "args=[\'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixDiagPart" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixExponential" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixInverse" - argspec: "args=[\'input\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MatrixLogarithm" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixSetDiag" - argspec: "args=[\'input\', \'diagonal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'diagonal\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixSolve" - argspec: "args=[\'matrix\', \'rhs\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MatrixSolveLs" - argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'l2_regularizer\', \'fast\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "MatrixSquareRoot" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MatrixTriangularSolve" - argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'matrix\', \'rhs\', \'lower\', \'adjoint\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "Max" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MaxPool" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPool3D" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "MaxPool3DGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "MaxPool3DGradGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NDHWC\', \'None\'], " } member_method { name: "MaxPoolGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradGrad" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradGradV2" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradGradWithArgmax" - argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MaxPoolGradV2" - argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'orig_input\', \'orig_output\', \'grad\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolGradWithArgmax" - argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'grad\', \'argmax\', \'ksize\', \'strides\', \'padding\', \'include_batch_in_index\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "MaxPoolV2" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "MaxPoolWithArgmax" - argspec: "args=[\'input\', \'ksize\', \'strides\', \'Targmax\', \'padding\', \'include_batch_in_index\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'ksize\', \'strides\', \'padding\', \'Targmax\', \'include_batch_in_index\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'False\', \'None\'], " } member_method { name: "Maximum" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Mean" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Merge" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MergeSummary" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MergeV2Checkpoints" - argspec: "args=[\'checkpoint_prefixes\', \'destination_prefix\', \'delete_old_dirs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'checkpoint_prefixes\', \'destination_prefix\', \'delete_old_dirs\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Mfcc" - argspec: "args=[\'spectrogram\', \'sample_rate\', \'upper_frequency_limit\', \'lower_frequency_limit\', \'filterbank_channel_count\', \'dct_coefficient_count\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'spectrogram\', \'sample_rate\', \'upper_frequency_limit\', \'lower_frequency_limit\', \'filterbank_channel_count\', \'dct_coefficient_count\', \'name\'], varargs=None, keywords=None, defaults=[\'4000\', \'20\', \'40\', \'13\', \'None\'], " } member_method { name: "Min" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "Minimum" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MirrorPad" - argspec: "args=[\'input\', \'paddings\', \'mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'mode\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MirrorPadGrad" - argspec: "args=[\'input\', \'paddings\', \'mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'mode\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Mod" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ModelDataset" - argspec: "args=[\'input_dataset\', \'cpu_budget\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'output_types\', \'output_shapes\', \'cpu_budget\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "Mul" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MulNoNan" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIterator" - argspec: "args=[\'devices\', \'shared_name\', \'container\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'devices\', \'shared_name\', \'container\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIteratorFromStringHandle" - argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_handle\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "MultiDeviceIteratorGetNextFromShard" - argspec: "args=[\'multi_device_iterator\', \'shard_num\', \'incarnation_id\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'multi_device_iterator\', \'shard_num\', \'incarnation_id\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIteratorInit" - argspec: "args=[\'dataset\', \'multi_device_iterator\', \'max_buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset\', \'multi_device_iterator\', \'max_buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MultiDeviceIteratorToStringHandle" - argspec: "args=[\'multi_device_iterator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'multi_device_iterator\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Multinomial" - argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'seed2\', \'output_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'seed2\', \'output_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \"\", \'None\'], " } member_method { name: "MutableDenseHashTable" - argspec: "args=[\'empty_key\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_dtype\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'empty_key\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'131072\', \'0.8\', \'None\'], " } member_method { name: "MutableDenseHashTableV2" - argspec: "args=[\'empty_key\', \'deleted_key\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_dtype\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'empty_key\', \'deleted_key\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'initial_num_buckets\', \'max_load_factor\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'131072\', \'0.8\', \'None\'], " } member_method { name: "MutableHashTable" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "MutableHashTableOfTensors" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\', \'value_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'None\'], " } member_method { name: "MutableHashTableOfTensorsV2" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\', \'value_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'value_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'[]\', \'None\'], " } member_method { name: "MutableHashTableV2" - argspec: "args=[\'container\', \'shared_name\', \'use_node_name_sharing\', \'key_dtype\', \'value_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key_dtype\', \'value_dtype\', \'container\', \'shared_name\', \'use_node_name_sharing\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'False\', \'None\'], " } member_method { name: "MutexLock" - argspec: "args=[\'mutex\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'mutex\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "MutexV2" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "NcclAllReduce" - argspec: "args=[\'input\', \'reduction\', \'num_devices\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'reduction\', \'num_devices\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NcclBroadcast" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NcclReduce" - argspec: "args=[\'input\', \'reduction\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'reduction\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Neg" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NextAfter" - argspec: "args=[\'x1\', \'x2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x1\', \'x2\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NextIteration" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NoOp" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NonDeterministicInts" - argspec: "args=[\'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "NonMaxSuppression" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'0.5\', \'None\'], " } member_method { name: "NonMaxSuppressionV2" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NonMaxSuppressionV3" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NonMaxSuppressionV4" - argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\', \'pad_to_max_output_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'boxes\', \'scores\', \'max_output_size\', \'iou_threshold\', \'score_threshold\', \'pad_to_max_output_size\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "NonMaxSuppressionWithOverlaps" - argspec: "args=[\'overlaps\', \'scores\', \'max_output_size\', \'overlap_threshold\', \'score_threshold\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'overlaps\', \'scores\', \'max_output_size\', \'overlap_threshold\', \'score_threshold\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NotEqual" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "NthElement" - argspec: "args=[\'input\', \'n\', \'reverse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'n\', \'reverse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "OneHot" - argspec: "args=[\'indices\', \'depth\', \'on_value\', \'off_value\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'depth\', \'on_value\', \'off_value\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "OneShotIterator" - argspec: "args=[\'dataset_factory\', \'output_types\', \'output_shapes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dataset_factory\', \'output_types\', \'output_shapes\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "OnesLike" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptimizeDataset" - argspec: "args=[\'input_dataset\', \'optimizations\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'optimizations\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalFromValue" - argspec: "args=[\'components\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'components\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalGetValue" - argspec: "args=[\'optional\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'optional\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalHasValue" - argspec: "args=[\'optional\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'optional\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OptionalNone" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OrderedMapClear" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapIncompleteSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapPeek" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapStage" - argspec: "args=[\'key\', \'indices\', \'values\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'values\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapUnstage" - argspec: "args=[\'key\', \'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'key\', \'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OrderedMapUnstageNoKey" - argspec: "args=[\'indices\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "OutfeedDequeue" - argspec: "args=[\'dtype\', \'shape\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "OutfeedDequeueTuple" - argspec: "args=[\'dtypes\', \'shapes\', \'device_ordinal\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'shapes\', \'device_ordinal\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "OutfeedEnqueue" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "OutfeedEnqueueTuple" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Pack" - argspec: "args=[\'values\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "Pad" - argspec: "args=[\'input\', \'paddings\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PadV2" - argspec: "args=[\'input\', \'paddings\', \'constant_values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'constant_values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PaddedBatchDataset" - argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PaddedBatchDatasetV2" - argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'drop_remainder\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'batch_size\', \'padded_shapes\', \'padding_values\', \'drop_remainder\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PaddingFIFOQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "PaddingFIFOQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "ParallelConcat" - argspec: "args=[\'values\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParallelDynamicStitch" - argspec: "args=[\'indices\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParallelInterleaveDatasetV2" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'sloppy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'cycle_length\', \'block_length\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'sloppy\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ParallelMapDataset" - argspec: "args=[\'input_dataset\', \'other_arguments\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'sloppy\', \'preserve_cardinality\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'other_arguments\', \'num_parallel_calls\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'sloppy\', \'preserve_cardinality\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'False\', \'None\'], " } member_method { name: "ParameterizedTruncatedNormal" - argspec: "args=[\'shape\', \'means\', \'stdevs\', \'minvals\', \'maxvals\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'means\', \'stdevs\', \'minvals\', \'maxvals\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "ParseExample" - argspec: "args=[\'serialized\', \'names\', \'sparse_keys\', \'dense_keys\', \'dense_defaults\', \'sparse_types\', \'dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'names\', \'sparse_keys\', \'dense_keys\', \'dense_defaults\', \'sparse_types\', \'dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParseSequenceExample" - argspec: "args=[\'serialized\', \'debug_name\', \'context_dense_defaults\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'Ncontext_sparse\', \'Ncontext_dense\', \'Nfeature_list_sparse\', \'Nfeature_list_dense\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'debug_name\', \'context_dense_defaults\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'Ncontext_sparse\', \'Ncontext_dense\', \'Nfeature_list_sparse\', \'Nfeature_list_dense\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'[]\', \'[]\', \'[]\', \'[]\', \'[]\', \'None\'], " } member_method { name: "ParseSingleExample" - argspec: "args=[\'serialized\', \'dense_defaults\', \'num_sparse\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'dense_defaults\', \'num_sparse\', \'sparse_keys\', \'dense_keys\', \'sparse_types\', \'dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ParseSingleSequenceExample" - argspec: "args=[\'serialized\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'context_dense_defaults\', \'debug_name\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'feature_list_dense_missing_assumed_empty\', \'context_sparse_keys\', \'context_dense_keys\', \'feature_list_sparse_keys\', \'feature_list_dense_keys\', \'context_dense_defaults\', \'debug_name\', \'context_sparse_types\', \'feature_list_dense_types\', \'context_dense_shapes\', \'feature_list_sparse_types\', \'feature_list_dense_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'[]\', \'[]\', \'[]\', \'None\'], " } member_method { name: "ParseTensor" - argspec: "args=[\'serialized\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'serialized\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PartitionedCall" - argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "Placeholder" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "PlaceholderV2" - argspec: "args=[\'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PlaceholderWithDefault" - argspec: "args=[\'input\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Polygamma" - argspec: "args=[\'a\', \'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PopulationCount" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Pow" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PrefetchDataset" - argspec: "args=[\'input_dataset\', \'buffer_size\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'buffer_size\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Prelinearize" - argspec: "args=[\'input\', \'shape\', \'layout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shape\', \'layout\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'[]\', \'None\'], " } member_method { name: "PrelinearizeTuple" - argspec: "args=[\'inputs\', \'shapes\', \'layouts\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'shapes\', \'layouts\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "PreventGradient" - argspec: "args=[\'input\', \'message\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'message\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "Print" - argspec: "args=[\'input\', \'data\', \'message\', \'first_n\', \'summarize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'data\', \'message\', \'first_n\', \'summarize\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'-1\', \'3\', \'None\'], " } member_method { name: "PrintV2" - argspec: "args=[\'input\', \'output_stream\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'output_stream\', \'name\'], varargs=None, keywords=None, defaults=[\'stderr\', \'None\'], " } member_method { name: "PriorityQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shapes\', \'component_types\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "PriorityQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shapes\', \'component_types\', \'capacity\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'\', \'\', \'None\'], " } member_method { name: "Prod" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "PyFunc" - argspec: "args=[\'input\', \'token\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'token\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "PyFuncStateless" - argspec: "args=[\'input\', \'token\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'token\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Qr" - argspec: "args=[\'input\', \'full_matrices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'full_matrices\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "QuantizeAndDequantize" - argspec: "args=[\'input\', \'signed_input\', \'num_bits\', \'range_given\', \'input_min\', \'input_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'signed_input\', \'num_bits\', \'range_given\', \'input_min\', \'input_max\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'8\', \'False\', \'0\', \'0\', \'None\'], " } member_method { name: "QuantizeAndDequantizeV2" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'signed_input\', \'num_bits\', \'range_given\', \'round_mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'signed_input\', \'num_bits\', \'range_given\', \'round_mode\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'8\', \'False\', \'HALF_TO_EVEN\', \'None\'], " } member_method { name: "QuantizeAndDequantizeV3" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'num_bits\', \'signed_input\', \'range_given\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'num_bits\', \'signed_input\', \'range_given\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'True\', \'None\'], " } member_method { name: "QuantizeDownAndShrinkRange" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizeV2" - argspec: "args=[\'input\', \'min_range\', \'max_range\', \'T\', \'mode\', \'round_mode\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_range\', \'max_range\', \'T\', \'mode\', \'round_mode\', \'name\'], varargs=None, keywords=None, defaults=[\'MIN_COMBINED\', \'HALF_AWAY_FROM_ZERO\', \'None\'], " } member_method { name: "QuantizedAdd" - argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedAvgPool" - argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedBatchNormWithGlobalNormalization" - argspec: "args=[\'t\', \'t_min\', \'t_max\', \'m\', \'m_min\', \'m_max\', \'v\', \'v_min\', \'v_max\', \'beta\', \'beta_min\', \'beta_max\', \'gamma\', \'gamma_min\', \'gamma_max\', \'out_type\', \'variance_epsilon\', \'scale_after_normalization\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'t\', \'t_min\', \'t_max\', \'m\', \'m_min\', \'m_max\', \'v\', \'v_min\', \'v_max\', \'beta\', \'beta_min\', \'beta_max\', \'gamma\', \'gamma_min\', \'gamma_max\', \'out_type\', \'variance_epsilon\', \'scale_after_normalization\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedBiasAdd" - argspec: "args=[\'input\', \'bias\', \'min_input\', \'max_input\', \'min_bias\', \'max_bias\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'bias\', \'min_input\', \'max_input\', \'min_bias\', \'max_bias\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedConcat" - argspec: "args=[\'concat_dim\', \'values\', \'input_mins\', \'input_maxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'concat_dim\', \'values\', \'input_mins\', \'input_maxes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedConv2D" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'None\'], " } member_method { name: "QuantizedConv2DAndRelu" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DAndRequantize" - argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBias" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasAndRelu" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasSignedSumAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasSumAndRelu" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'summand\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'summand\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedConv2DWithBiasSumAndReluAndRequantize" - argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'out_type\', \'strides\', \'padding\', \'dilations\', \'padding_list\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'filter\', \'bias\', \'min_input\', \'max_input\', \'min_filter\', \'max_filter\', \'min_freezed_output\', \'max_freezed_output\', \'summand\', \'min_summand\', \'max_summand\', \'strides\', \'padding\', \'out_type\', \'dilations\', \'padding_list\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'[1, 1, 1, 1]\', \'[]\', \'None\'], " } member_method { name: "QuantizedInstanceNorm" - argspec: "args=[\'x\', \'x_min\', \'x_max\', \'output_range_given\', \'given_y_min\', \'given_y_max\', \'variance_epsilon\', \'min_separation\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'x_min\', \'x_max\', \'output_range_given\', \'given_y_min\', \'given_y_max\', \'variance_epsilon\', \'min_separation\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'0\', \'0\', \'1e-05\', \'0.001\', \'None\'], " } member_method { name: "QuantizedMatMul" - argspec: "args=[\'a\', \'b\', \'min_a\', \'max_a\', \'min_b\', \'max_b\', \'Toutput\', \'transpose_a\', \'transpose_b\', \'Tactivation\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'min_a\', \'max_a\', \'min_b\', \'max_b\', \'Toutput\', \'transpose_a\', \'transpose_b\', \'Tactivation\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'False\', \'False\', \"\", \'None\'], " } member_method { name: "QuantizedMaxPool" - argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'min_input\', \'max_input\', \'ksize\', \'strides\', \'padding\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedMul" - argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'min_x\', \'max_x\', \'min_y\', \'max_y\', \'Toutput\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedRelu" - argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedRelu6" - argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'min_features\', \'max_features\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedReluX" - argspec: "args=[\'features\', \'max_value\', \'min_features\', \'max_features\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'max_value\', \'min_features\', \'max_features\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "QuantizedReshape" - argspec: "args=[\'tensor\', \'shape\', \'input_min\', \'input_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'shape\', \'input_min\', \'input_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QuantizedResizeBilinear" - argspec: "args=[\'images\', \'size\', \'min\', \'max\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'min\', \'max\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "QueueClose" - argspec: "args=[\'handle\', \'cancel_pending_enqueues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'cancel_pending_enqueues\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "QueueCloseV2" - argspec: "args=[\'handle\', \'cancel_pending_enqueues\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'cancel_pending_enqueues\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "QueueDequeue" - argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueMany" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueManyV2" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueUpTo" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueUpToV2" - argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'n\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueDequeueV2" - argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'component_types\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueue" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueueMany" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueueManyV2" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueEnqueueV2" - argspec: "args=[\'handle\', \'components\', \'timeout_ms\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'components\', \'timeout_ms\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "QueueIsClosed" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QueueIsClosedV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QueueSize" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "QueueSizeV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RFFT" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RFFT2D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RFFT3D" - argspec: "args=[\'input\', \'fft_length\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'fft_length\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RGBToHSV" - argspec: "args=[\'images\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RaggedGather" - argspec: "args=[\'params_nested_splits\', \'params_dense_values\', \'indices\', \'OUTPUT_RAGGED_RANK\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'params_nested_splits\', \'params_dense_values\', \'indices\', \'OUTPUT_RAGGED_RANK\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RaggedRange" - argspec: "args=[\'starts\', \'limits\', \'deltas\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'starts\', \'limits\', \'deltas\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RaggedTensorToSparse" - argspec: "args=[\'rt_nested_splits\', \'rt_dense_values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'rt_nested_splits\', \'rt_dense_values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RandomCrop" - argspec: "args=[\'image\', \'size\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image\', \'size\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomGamma" - argspec: "args=[\'shape\', \'alpha\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'alpha\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomGammaGrad" - argspec: "args=[\'alpha\', \'sample\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'alpha\', \'sample\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RandomPoisson" - argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomPoissonV2" - argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'rate\', \'seed\', \'seed2\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \"\", \'None\'], " } member_method { name: "RandomShuffle" - argspec: "args=[\'value\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomShuffleQueue" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'0\', \'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "RandomShuffleQueueV2" - argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'component_types\', \'shapes\', \'capacity\', \'min_after_dequeue\', \'seed\', \'seed2\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'-1\', \'0\', \'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "RandomStandardNormal" - argspec: "args=[\'shape\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomUniform" - argspec: "args=[\'shape\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "RandomUniformInt" - argspec: "args=[\'shape\', \'minval\', \'maxval\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'minval\', \'maxval\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Range" - argspec: "args=[\'start\', \'limit\', \'delta\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'limit\', \'delta\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RangeDataset" - argspec: "args=[\'start\', \'stop\', \'step\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'start\', \'stop\', \'step\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Rank" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReadFile" - argspec: "args=[\'filename\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReadVariableOp" - argspec: "args=[\'resource\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumRecordsProduced" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumRecordsProducedV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumWorkUnitsCompleted" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderNumWorkUnitsCompletedV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderRead" - argspec: "args=[\'reader_handle\', \'queue_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReadUpTo" - argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReadUpToV2" - argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'num_records\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReadV2" - argspec: "args=[\'reader_handle\', \'queue_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'queue_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderReset" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderResetV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderRestoreState" - argspec: "args=[\'reader_handle\', \'state\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'state\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderRestoreStateV2" - argspec: "args=[\'reader_handle\', \'state\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'state\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderSerializeState" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReaderSerializeStateV2" - argspec: "args=[\'reader_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reader_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Real" - argspec: "args=[\'input\', \'Tout\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "RealDiv" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Reciprocal" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReciprocalGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RecordInput" - argspec: "args=[\'file_pattern\', \'file_random_seed\', \'file_shuffle_shift_ratio\', \'file_buffer_size\', \'file_parallelism\', \'batch_size\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'file_pattern\', \'file_random_seed\', \'file_shuffle_shift_ratio\', \'file_buffer_size\', \'file_parallelism\', \'batch_size\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'301\', \'0\', \'10000\', \'16\', \'32\', \'\', \'None\'], " } member_method { name: "RecvTPUEmbeddingActivations" - argspec: "args=[\'num_outputs\', \'config\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_outputs\', \'config\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReduceDataset" - argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'initial_state\', \'other_arguments\', \'f\', \'output_types\', \'output_shapes\', \'use_inter_op_parallelism\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ReduceJoin" - argspec: "args=[\'inputs\', \'reduction_indices\', \'keep_dims\', \'separator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'reduction_indices\', \'keep_dims\', \'separator\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'\', \'None\'], " } member_method { name: "RefEnter" - argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'frame_name\', \'is_constant\', \'parallel_iterations\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'10\', \'None\'], " } member_method { name: "RefExit" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefIdentity" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefMerge" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefNextIteration" - argspec: "args=[\'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefSelect" - argspec: "args=[\'index\', \'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'index\', \'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RefSwitch" - argspec: "args=[\'data\', \'pred\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'pred\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RegexFullMatch" - argspec: "args=[\'input\', \'pattern\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RegexReplace" - argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Relu" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Relu6" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Relu6Grad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReluGrad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RemoteCall" - argspec: "args=[\'target\', \'args\', \'Tout\', \'f\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'target\', \'args\', \'Tout\', \'f\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RepeatDataset" - argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RequantizationRange" - argspec: "args=[\'input\', \'input_min\', \'input_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RequantizationRangePerChannel" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'clip_value_max\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'clip_value_max\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Requantize" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RequantizePerChannel" - argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_min\', \'input_max\', \'requested_output_min\', \'requested_output_max\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Reshape" - argspec: "args=[\'tensor\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResizeArea" - argspec: "args=[\'images\', \'size\', \'align_corners\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResizeBicubic" - argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeBicubicGrad" - argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeBilinear" - argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeBilinearGrad" - argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'original_image\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeNearestNeighbor" - argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResizeNearestNeighborGrad" - argspec: "args=[\'grads\', \'size\', \'align_corners\', \'half_pixel_centers\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'size\', \'align_corners\', \'half_pixel_centers\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyAdaMax" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "ResourceApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAdam" - argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyAdamWithAmsgrad" - argspec: "args=[\'var\', \'m\', \'v\', \'vhat\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'v\', \'vhat\', \'beta1_power\', \'beta2_power\', \'lr\', \'beta1\', \'beta2\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyAddSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'alpha\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyKerasMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceApplyPowerSign" - argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'m\', \'lr\', \'logbase\', \'sign_decay\', \'beta\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'delta\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceCountUpTo" - argspec: "args=[\'resource\', \'limit\', \'T\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'limit\', \'T\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceGather" - argspec: "args=[\'resource\', \'indices\', \'batch_dims\', \'validate_indices\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'dtype\', \'batch_dims\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'True\', \'None\'], " } member_method { name: "ResourceScatterAdd" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterDiv" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterMax" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterMin" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterMul" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterNdAdd" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ResourceScatterNdSub" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ResourceScatterNdUpdate" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ResourceScatterSub" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceScatterUpdate" - argspec: "args=[\'resource\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ResourceSparseApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "ResourceSparseApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyKerasMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceSparseApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "ResourceSparseApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceSparseApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ResourceStridedSliceAssign" - argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "Restore" - argspec: "args=[\'file_pattern\', \'tensor_name\', \'dt\', \'preferred_shard\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'file_pattern\', \'tensor_name\', \'dt\', \'preferred_shard\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "RestoreSlice" - argspec: "args=[\'file_pattern\', \'tensor_name\', \'shape_and_slice\', \'dt\', \'preferred_shard\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'file_pattern\', \'tensor_name\', \'shape_and_slice\', \'dt\', \'preferred_shard\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "RestoreV2" - argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'dtypes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'dtypes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RetrieveTPUEmbeddingADAMParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingADAMParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdadeltaParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdagradParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingAdagradParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingCenteredRMSPropParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingFTRLParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingFTRLParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingMDLAdagradLightParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingMomentumParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingMomentumParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingProximalAdagradParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingRMSPropParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "RetrieveTPUEmbeddingStochasticGradientDescentParameters" - argspec: "args=[\'table_id\', \'table_name\', \'num_shards\', \'shard_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_shards\', \'shard_id\', \'table_id\', \'table_name\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'\', \'None\'], " } member_method { name: "Reverse" - argspec: "args=[\'tensor\', \'dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'dims\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ReverseSequence" - argspec: "args=[\'input\', \'seq_lengths\', \'seq_dim\', \'batch_dim\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'seq_lengths\', \'seq_dim\', \'batch_dim\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "ReverseV2" - argspec: "args=[\'tensor\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RightShift" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Rint" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Roll" - argspec: "args=[\'input\', \'shift\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'shift\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Round" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Rsqrt" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "RsqrtGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SampleDistortedBoundingBox" - argspec: "args=[\'image_size\', \'bounding_boxes\', \'seed\', \'seed2\', \'min_object_covered\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image_size\', \'bounding_boxes\', \'seed\', \'seed2\', \'min_object_covered\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0.1\', \'[0.75, 1.33]\', \'[0.05, 1]\', \'100\', \'False\', \'None\'], " } member_method { name: "SampleDistortedBoundingBoxV2" - argspec: "args=[\'image_size\', \'bounding_boxes\', \'min_object_covered\', \'seed\', \'seed2\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'image_size\', \'bounding_boxes\', \'min_object_covered\', \'seed\', \'seed2\', \'aspect_ratio_range\', \'area_range\', \'max_attempts\', \'use_image_if_no_bounding_boxes\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'[0.75, 1.33]\', \'[0.05, 1]\', \'100\', \'False\', \'None\'], " } member_method { name: "Save" - argspec: "args=[\'filename\', \'tensor_names\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'tensor_names\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SaveSlices" - argspec: "args=[\'filename\', \'tensor_names\', \'shapes_and_slices\', \'data\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'tensor_names\', \'shapes_and_slices\', \'data\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SaveV2" - argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'tensors\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'prefix\', \'tensor_names\', \'shape_and_slices\', \'tensors\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScalarSummary" - argspec: "args=[\'tags\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tags\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScaleAndTranslate" - argspec: "args=[\'images\', \'size\', \'scale\', \'translation\', \'kernel_type\', \'antialias\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'images\', \'size\', \'scale\', \'translation\', \'kernel_type\', \'antialias\', \'name\'], varargs=None, keywords=None, defaults=[\'lanczos3\', \'True\', \'None\'], " } member_method { name: "ScaleAndTranslateGrad" - argspec: "args=[\'grads\', \'original_image\', \'scale\', \'translation\', \'kernel_type\', \'antialias\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grads\', \'original_image\', \'scale\', \'translation\', \'kernel_type\', \'antialias\', \'name\'], varargs=None, keywords=None, defaults=[\'lanczos3\', \'True\', \'None\'], " } member_method { name: "ScatterAdd" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterDiv" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterMax" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterMin" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterMul" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterNd" - argspec: "args=[\'indices\', \'updates\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'updates\', \'shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScatterNdAdd" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterNdNonAliasingAdd" - argspec: "args=[\'input\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ScatterNdSub" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterNdUpdate" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ScatterSub" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "ScatterUpdate" - argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'indices\', \'updates\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SdcaFprint" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SdcaOptimizer" - argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'adaptative\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\', \'adaptative\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SdcaOptimizerV2" - argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'adaptive\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_example_indices\', \'sparse_feature_indices\', \'sparse_feature_values\', \'dense_features\', \'example_weights\', \'example_labels\', \'sparse_indices\', \'sparse_weights\', \'dense_weights\', \'example_state_data\', \'loss_type\', \'l1\', \'l2\', \'num_loss_partitions\', \'num_inner_iterations\', \'adaptive\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SdcaShrinkL1" - argspec: "args=[\'weights\', \'l1\', \'l2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'weights\', \'l1\', \'l2\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentMax" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentMean" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentMin" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentProd" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SegmentSum" - argspec: "args=[\'data\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Select" - argspec: "args=[\'condition\', \'t\', \'e\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'condition\', \'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SelfAdjointEig" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SelfAdjointEigV2" - argspec: "args=[\'input\', \'compute_v\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_v\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Selu" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SeluGrad" - argspec: "args=[\'gradients\', \'outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SendTPUEmbeddingGradients" - argspec: "args=[\'inputs\', \'learning_rates\', \'config\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'learning_rates\', \'config\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SerializeIterator" - argspec: "args=[\'resource_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SerializeManySparse" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "SerializeSparse" - argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'sparse_values\', \'sparse_shape\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "SerializeTensor" - argspec: "args=[\'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SetSize" - argspec: "args=[\'set_indices\', \'set_values\', \'set_shape\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set_indices\', \'set_values\', \'set_shape\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Shape" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ShapeN" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "ShardDataset" - argspec: "args=[\'input_dataset\', \'num_shards\', \'index\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'num_shards\', \'index\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShardedFilename" - argspec: "args=[\'basename\', \'shard\', \'num_shards\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'basename\', \'shard\', \'num_shards\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShardedFilespec" - argspec: "args=[\'basename\', \'num_shards\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'basename\', \'num_shards\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShuffleAndRepeatDataset" - argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ShuffleDataset" - argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'reshuffle_each_iteration\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'buffer_size\', \'seed\', \'seed2\', \'output_types\', \'output_shapes\', \'reshuffle_each_iteration\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "ShutdownDistributedTPU" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sigmoid" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SigmoidGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sign" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sin" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sinh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Size" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "SkipDataset" - argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Slice" - argspec: "args=[\'input\', \'begin\', \'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'begin\', \'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Snapshot" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Softmax" - argspec: "args=[\'logits\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SoftmaxCrossEntropyWithLogits" - argspec: "args=[\'features\', \'labels\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'labels\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Softplus" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SoftplusGrad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Softsign" - argspec: "args=[\'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SoftsignGrad" - argspec: "args=[\'gradients\', \'features\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'gradients\', \'features\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SpaceToBatch" - argspec: "args=[\'input\', \'paddings\', \'block_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'paddings\', \'block_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SpaceToBatchND" - argspec: "args=[\'input\', \'block_shape\', \'paddings\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_shape\', \'paddings\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SpaceToDepth" - argspec: "args=[\'input\', \'block_size\', \'data_format\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'block_size\', \'data_format\', \'name\'], varargs=None, keywords=None, defaults=[\'NHWC\', \'None\'], " } member_method { name: "SparseAccumulatorApplyGradient" - argspec: "args=[\'handle\', \'local_step\', \'gradient_indices\', \'gradient_values\', \'gradient_shape\', \'has_known_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'local_step\', \'gradient_indices\', \'gradient_values\', \'gradient_shape\', \'has_known_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseAccumulatorTakeGradient" - argspec: "args=[\'handle\', \'num_required\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'num_required\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseAdd" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'thresh\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'thresh\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseAddGrad" - argspec: "args=[\'backprop_val_grad\', \'a_indices\', \'b_indices\', \'sum_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'backprop_val_grad\', \'a_indices\', \'b_indices\', \'sum_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseApplyAdadelta" - argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'accum_update\', \'lr\', \'rho\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'use_locking\', \'update_slots\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'None\'], " } member_method { name: "SparseApplyAdagradDA" - argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'gradient_accumulator\', \'gradient_squared_accumulator\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'global_step\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyCenteredRMSProp" - argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'mg\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyFtrl" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyFtrlV2" - argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'linear\', \'grad\', \'indices\', \'lr\', \'l1\', \'l2\', \'l2_shrinkage\', \'lr_power\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyMomentum" - argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'grad\', \'indices\', \'momentum\', \'use_locking\', \'use_nesterov\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "SparseApplyProximalAdagrad" - argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'accum\', \'lr\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyProximalGradientDescent" - argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'alpha\', \'l1\', \'l2\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseApplyRMSProp" - argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'var\', \'ms\', \'mom\', \'lr\', \'rho\', \'momentum\', \'epsilon\', \'grad\', \'indices\', \'use_locking\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseConcat" - argspec: "args=[\'indices\', \'values\', \'shapes\', \'concat_dim\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'shapes\', \'concat_dim\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseConditionalAccumulator" - argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'reduction_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'MEAN\', \'None\'], " } member_method { name: "SparseCross" - argspec: "args=[\'indices\', \'values\', \'shapes\', \'dense_inputs\', \'hashed_output\', \'num_buckets\', \'hash_key\', \'out_type\', \'internal_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'shapes\', \'dense_inputs\', \'hashed_output\', \'num_buckets\', \'hash_key\', \'out_type\', \'internal_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseDenseCwiseAdd" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseDenseCwiseDiv" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseDenseCwiseMul" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'dense\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseFillEmptyRows" - argspec: "args=[\'indices\', \'values\', \'dense_shape\', \'default_value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'dense_shape\', \'default_value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseFillEmptyRowsGrad" - argspec: "args=[\'reverse_index_map\', \'grad_values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'reverse_index_map\', \'grad_values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseMatMul" - argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\', \'a_is_sparse\', \'b_is_sparse\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a\', \'b\', \'transpose_a\', \'transpose_b\', \'a_is_sparse\', \'b_is_sparse\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'False\', \'False\', \'None\'], " } member_method { name: "SparseReduceMax" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReduceMaxSparse" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReduceSum" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReduceSumSparse" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'reduction_axes\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SparseReorder" - argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_values\', \'input_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseReshape" - argspec: "args=[\'input_indices\', \'input_shape\', \'new_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_indices\', \'input_shape\', \'new_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentMean" - argspec: "args=[\'data\', \'indices\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentMeanGrad" - argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentMeanWithNumSegments" - argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSqrtN" - argspec: "args=[\'data\', \'indices\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSqrtNGrad" - argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'grad\', \'indices\', \'segment_ids\', \'output_dim0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSqrtNWithNumSegments" - argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSum" - argspec: "args=[\'data\', \'indices\', \'segment_ids\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSegmentSumWithNumSegments" - argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'indices\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSlice" - argspec: "args=[\'indices\', \'values\', \'shape\', \'start\', \'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'shape\', \'start\', \'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSliceGrad" - argspec: "args=[\'backprop_val_grad\', \'input_indices\', \'input_start\', \'output_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'backprop_val_grad\', \'input_indices\', \'input_start\', \'output_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSoftmax" - argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sp_indices\', \'sp_values\', \'sp_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSoftmaxCrossEntropyWithLogits" - argspec: "args=[\'features\', \'labels\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'features\', \'labels\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSparseMaximum" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSparseMinimum" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b_indices\', \'b_values\', \'b_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseSplit" - argspec: "args=[\'split_dim\', \'indices\', \'values\', \'shape\', \'num_split\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'split_dim\', \'indices\', \'values\', \'shape\', \'num_split\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseTensorDenseAdd" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseTensorDenseMatMul" - argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\', \'adjoint_a\', \'adjoint_b\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'a_indices\', \'a_values\', \'a_shape\', \'b\', \'adjoint_a\', \'adjoint_b\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'False\', \'None\'], " } member_method { name: "SparseTensorSliceDataset" - argspec: "args=[\'indices\', \'values\', \'dense_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'values\', \'dense_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SparseToDense" - argspec: "args=[\'sparse_indices\', \'output_shape\', \'sparse_values\', \'default_value\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_indices\', \'output_shape\', \'sparse_values\', \'default_value\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "SparseToSparseSetOperation" - argspec: "args=[\'set1_indices\', \'set1_values\', \'set1_shape\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'set1_indices\', \'set1_values\', \'set1_shape\', \'set2_indices\', \'set2_values\', \'set2_shape\', \'set_operation\', \'validate_indices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Split" - argspec: "args=[\'split_dim\', \'value\', \'num_split\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'axis\', \'value\', \'num_split\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SplitV" - argspec: "args=[\'value\', \'size_splits\', \'split_dim\', \'num_split\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'size_splits\', \'axis\', \'num_split\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Sqrt" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SqrtGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Square" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SquaredDifference" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Squeeze" - argspec: "args=[\'input\', \'squeeze_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'None\'], " } member_method { name: "Stack" - argspec: "args=[\'elem_type\', \'stack_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'elem_type\', \'stack_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "StackClose" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackCloseV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackPop" - argspec: "args=[\'handle\', \'elem_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackPopV2" - argspec: "args=[\'handle\', \'elem_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StackPush" - argspec: "args=[\'handle\', \'elem\', \'swap_memory\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem\', \'swap_memory\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "StackPushV2" - argspec: "args=[\'handle\', \'elem\', \'swap_memory\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'elem\', \'swap_memory\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "StackV2" - argspec: "args=[\'max_size\', \'elem_type\', \'stack_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'max_size\', \'elem_type\', \'stack_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "Stage" - argspec: "args=[\'values\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'values\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StageClear" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StagePeek" - argspec: "args=[\'index\', \'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'index\', \'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StageSize" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "StatefulPartitionedCall" - argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'args\', \'Tout\', \'f\', \'config\', \'config_proto\', \'executor_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "StatefulStandardNormal" - argspec: "args=[\'resource\', \'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatefulStandardNormalV2" - argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatefulUniformFullInt" - argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatefulUniformInt" - argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'minval\', \'maxval\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'algorithm\', \'shape\', \'minval\', \'maxval\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StatelessIf" - argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'cond\', \'input\', \'Tout\', \'then_branch\', \'else_branch\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StatelessMultinomial" - argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'output_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'logits\', \'num_samples\', \'seed\', \'output_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessRandomNormal" - argspec: "args=[\'shape\', \'seed\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessRandomUniform" - argspec: "args=[\'shape\', \'seed\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessRandomUniformInt" - argspec: "args=[\'shape\', \'seed\', \'minval\', \'maxval\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'minval\', \'maxval\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StatelessTruncatedNormal" - argspec: "args=[\'shape\', \'seed\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'seed\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "StatelessWhile" - argspec: "args=[\'input\', \'cond\', \'body\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'cond\', \'body\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StaticRegexFullMatch" - argspec: "args=[\'input\', \'pattern\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StaticRegexReplace" - argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pattern\', \'rewrite\', \'replace_global\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "StopGradient" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StridedSlice" - argspec: "args=[\'input\', \'begin\', \'end\', \'strides\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'begin\', \'end\', \'strides\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "StridedSliceAssign" - argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'ref\', \'begin\', \'end\', \'strides\', \'value\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "StridedSliceGrad" - argspec: "args=[\'shape\', \'begin\', \'end\', \'strides\', \'dy\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'begin\', \'end\', \'strides\', \'dy\', \'begin_mask\', \'end_mask\', \'ellipsis_mask\', \'new_axis_mask\', \'shrink_axis_mask\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'0\', \'0\', \'0\', \'None\'], " } member_method { name: "StringFormat" - argspec: "args=[\'inputs\', \'template\', \'placeholder\', \'summarize\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'template\', \'placeholder\', \'summarize\', \'name\'], varargs=None, keywords=None, defaults=[\'%s\', \'%s\', \'3\', \'None\'], " } member_method { name: "StringJoin" - argspec: "args=[\'inputs\', \'separator\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'separator\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "StringLength" - argspec: "args=[\'input\', \'unit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'unit\', \'name\'], varargs=None, keywords=None, defaults=[\'BYTE\', \'None\'], " } member_method { name: "StringSplit" - argspec: "args=[\'input\', \'delimiter\', \'skip_empty\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'delimiter\', \'skip_empty\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "StringSplitV2" - argspec: "args=[\'input\', \'sep\', \'maxsplit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'sep\', \'maxsplit\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "StringStrip" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToHashBucket" - argspec: "args=[\'string_tensor\', \'num_buckets\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_tensor\', \'num_buckets\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToHashBucketFast" - argspec: "args=[\'input\', \'num_buckets\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_buckets\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToHashBucketStrong" - argspec: "args=[\'input\', \'num_buckets\', \'key\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_buckets\', \'key\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "StringToNumber" - argspec: "args=[\'string_tensor\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'string_tensor\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Sub" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Substr" - argspec: "args=[\'input\', \'pos\', \'len\', \'unit\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'pos\', \'len\', \'unit\', \'name\'], varargs=None, keywords=None, defaults=[\'BYTE\', \'None\'], " } member_method { name: "Sum" - argspec: "args=[\'input\', \'reduction_indices\', \'keep_dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'axis\', \'keep_dims\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'None\'], " } member_method { name: "SummaryWriter" - argspec: "args=[\'shared_name\', \'container\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shared_name\', \'container\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "Svd" - argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'compute_uv\', \'full_matrices\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'False\', \'None\'], " } member_method { name: "Switch" - argspec: "args=[\'data\', \'pred\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'pred\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "SymbolicGradient" - argspec: "args=[\'input\', \'Tout\', \'f\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'Tout\', \'f\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TFRecordDataset" - argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TFRecordReader" - argspec: "args=[\'container\', \'shared_name\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "TFRecordReaderV2" - argspec: "args=[\'container\', \'shared_name\', \'compression_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'compression_type\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'\', \'None\'], " } member_method { name: "TPUCompilationResult" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUEmbeddingActivations" - argspec: "args=[\'embedding_variable\', \'sliced_activations\', \'table_id\', \'lookup_id\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'embedding_variable\', \'sliced_activations\', \'table_id\', \'lookup_id\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUOrdinalSelector" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUPartitionedCall" - argspec: "args=[\'args\', \'device_ordinal\', \'Tout\', \'f\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'args\', \'device_ordinal\', \'Tout\', \'f\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUReplicate" - argspec: "args=[\'inputs\', \'broadcast_inputs\', \'variables\', \'guaranteed_constants\', \'computation\', \'num_replicas\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'host_compute_core\', \'output_types\', \'padding_map\', \'step_marker_location\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'broadcast_inputs\', \'variables\', \'guaranteed_constants\', \'computation\', \'num_replicas\', \'output_types\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'host_compute_core\', \'padding_map\', \'step_marker_location\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'\', \'True\', \'[]\', \'[]\', \'[]\', \'STEP_MARK_AT_ENTRY\', \'None\'], " } member_method { name: "TPUReplicateMetadata" - argspec: "args=[\'num_replicas\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'computation_shape\', \'host_compute_core\', \'padding_map\', \'step_marker_location\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'num_replicas\', \'num_cores_per_replica\', \'topology\', \'use_tpu\', \'device_assignment\', \'computation_shape\', \'host_compute_core\', \'padding_map\', \'step_marker_location\', \'name\'], varargs=None, keywords=None, defaults=[\'1\', \'\', \'True\', \'[]\', \'[]\', \'[]\', \'[]\', \'STEP_MARK_AT_ENTRY\', \'None\'], " } member_method { name: "TPUReplicatedInput" - argspec: "args=[\'inputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'inputs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TPUReplicatedOutput" - argspec: "args=[\'input\', \'num_replicas\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'num_replicas\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TakeDataset" - argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'count\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TakeManySparseFromTensorsMap" - argspec: "args=[\'sparse_handles\', \'dtype\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sparse_handles\', \'dtype\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "Tan" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Tanh" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TanhGrad" - argspec: "args=[\'y\', \'dy\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'y\', \'dy\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TemporaryVariable" - argspec: "args=[\'shape\', \'dtype\', \'var_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'var_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'None\'], " } member_method { name: "TensorArray" - argspec: "args=[\'size\', \'dtype\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'dtype\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'False\', \'True\', \'\', \'None\', \'None\'], " } member_method { name: "TensorArrayClose" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayCloseV2" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayCloseV3" - argspec: "args=[\'handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayConcat" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayConcatV2" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayConcatV3" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape_except0\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGather" - argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGatherV2" - argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGatherV3" - argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayGrad" - argspec: "args=[\'handle\', \'flow_in\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayGradV2" - argspec: "args=[\'handle\', \'flow_in\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayGradV3" - argspec: "args=[\'handle\', \'flow_in\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayGradWithShape" - argspec: "args=[\'handle\', \'flow_in\', \'shape_to_prepend\', \'source\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'shape_to_prepend\', \'source\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayPack" - argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorArrayRead" - argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayReadV2" - argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayReadV3" - argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'flow_in\', \'dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayScatter" - argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayScatterV2" - argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayScatterV3" - argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'indices\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySize" - argspec: "args=[\'handle\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySizeV2" - argspec: "args=[\'handle\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySizeV3" - argspec: "args=[\'handle\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySplit" - argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySplitV2" - argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArraySplitV3" - argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'lengths\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayUnpack" - argspec: "args=[\'handle\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayV2" - argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'tensor_array_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'False\', \'True\', \'\', \'None\'], " } member_method { name: "TensorArrayV3" - argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'identical_element_shapes\', \'tensor_array_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'size\', \'dtype\', \'element_shape\', \'dynamic_size\', \'clear_after_read\', \'identical_element_shapes\', \'tensor_array_name\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'False\', \'True\', \'False\', \'\', \'None\'], " } member_method { name: "TensorArrayWrite" - argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayWriteV2" - argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorArrayWriteV3" - argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'handle\', \'index\', \'value\', \'flow_in\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorDataset" - argspec: "args=[\'components\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'components\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListConcat" - argspec: "args=[\'input_handle\', \'element_dtype\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_dtype\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\', \'None\'], " } member_method { name: "TensorListConcatLists" - argspec: "args=[\'input_a\', \'input_b\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_a\', \'input_b\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListConcatV2" - argspec: "args=[\'input_handle\', \'element_shape\', \'leading_dims\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_shape\', \'leading_dims\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListElementShape" - argspec: "args=[\'input_handle\', \'shape_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'shape_type\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListFromTensor" - argspec: "args=[\'tensor\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListGather" - argspec: "args=[\'input_handle\', \'indices\', \'element_shape\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'indices\', \'element_shape\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListGetItem" - argspec: "args=[\'input_handle\', \'index\', \'element_shape\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'index\', \'element_shape\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListLength" - argspec: "args=[\'input_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListPopBack" - argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListPushBack" - argspec: "args=[\'input_handle\', \'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListPushBackBatch" - argspec: "args=[\'input_handles\', \'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handles\', \'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListReserve" - argspec: "args=[\'element_shape\', \'num_elements\', \'element_dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'element_shape\', \'num_elements\', \'element_dtype\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListResize" - argspec: "args=[\'input_handle\', \'size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListScatter" - argspec: "args=[\'tensor\', \'indices\', \'element_shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'element_shape\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListScatterIntoExistingList" - argspec: "args=[\'input_handle\', \'tensor\', \'indices\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'tensor\', \'indices\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListScatterV2" - argspec: "args=[\'tensor\', \'indices\', \'element_shape\', \'num_elements\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'element_shape\', \'num_elements\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListSetItem" - argspec: "args=[\'input_handle\', \'index\', \'item\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'index\', \'item\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListSplit" - argspec: "args=[\'tensor\', \'element_shape\', \'lengths\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'element_shape\', \'lengths\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorListStack" - argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\', \'num_elements\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'element_shape\', \'element_dtype\', \'num_elements\', \'name\'], varargs=None, keywords=None, defaults=[\'-1\', \'None\'], " } member_method { name: "TensorScatterAdd" - argspec: "args=[\'tensor\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorScatterSub" - argspec: "args=[\'tensor\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorScatterUpdate" - argspec: "args=[\'tensor\', \'indices\', \'updates\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'indices\', \'updates\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorSliceDataset" - argspec: "args=[\'components\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'components\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TensorSummary" - argspec: "args=[\'tensor\', \'description\', \'labels\', \'display_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tensor\', \'description\', \'labels\', \'display_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'[]\', \'\', \'None\'], " } member_method { name: "TensorSummaryV2" - argspec: "args=[\'tag\', \'tensor\', \'serialized_summary_metadata\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'tag\', \'tensor\', \'serialized_summary_metadata\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TextLineDataset" - argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filenames\', \'compression_type\', \'buffer_size\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TextLineReader" - argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'\', \'\', \'None\'], " } member_method { name: "TextLineReaderV2" - argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'skip_header_lines\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'\', \'\', \'None\'], " } member_method { name: "ThreadUnsafeUnigramCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Tile" - argspec: "args=[\'input\', \'multiples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'multiples\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TileGrad" - argspec: "args=[\'input\', \'multiples\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'multiples\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Timestamp" - argspec: "args=[], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TopK" - argspec: "args=[\'input\', \'k\', \'sorted\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'k\', \'sorted\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "TopKV2" - argspec: "args=[\'input\', \'k\', \'sorted\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'k\', \'sorted\', \'name\'], varargs=None, keywords=None, defaults=[\'True\', \'None\'], " } member_method { name: "Transpose" - argspec: "args=[\'x\', \'perm\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'perm\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TridiagonalSolve" - argspec: "args=[\'diagonals\', \'rhs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'diagonals\', \'rhs\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TruncateDiv" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TruncateMod" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "TruncatedNormal" - argspec: "args=[\'shape\', \'seed\', \'seed2\', \'dtype\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "UnicodeDecode" - argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'False\', \'None\'], " } member_method { name: "UnicodeDecodeWithOffsets" - argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'False\', \'None\'], " } member_method { name: "UnicodeEncode" - argspec: "args=[\'input_values\', \'input_splits\', \'errors\', \'output_encoding\', \'replacement_char\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_values\', \'input_splits\', \'output_encoding\', \'errors\', \'replacement_char\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'None\'], " } member_method { name: "UnicodeScript" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnicodeTranscode" - argspec: "args=[\'input\', \'input_encoding\', \'output_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'input_encoding\', \'output_encoding\', \'errors\', \'replacement_char\', \'replace_control_characters\', \'name\'], varargs=None, keywords=None, defaults=[\'replace\', \'65533\', \'False\', \'None\'], " } member_method { name: "UniformCandidateSampler" - argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'true_classes\', \'num_true\', \'num_sampled\', \'unique\', \'range_max\', \'seed\', \'seed2\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'None\'], " } member_method { name: "Unique" - argspec: "args=[\'x\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "UniqueV2" - argspec: "args=[\'x\', \'axis\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "UniqueWithCounts" - argspec: "args=[\'x\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "UniqueWithCountsV2" - argspec: "args=[\'x\', \'axis\', \'out_idx\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'axis\', \'out_idx\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "Unpack" - argspec: "args=[\'value\', \'num\', \'axis\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'value\', \'num\', \'axis\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'None\'], " } member_method { name: "UnravelIndex" - argspec: "args=[\'indices\', \'dims\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'indices\', \'dims\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentMax" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentMin" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentProd" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UnsortedSegmentSum" - argspec: "args=[\'data\', \'segment_ids\', \'num_segments\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'data\', \'segment_ids\', \'num_segments\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Unstage" - argspec: "args=[\'capacity\', \'memory_limit\', \'dtypes\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtypes\', \'capacity\', \'memory_limit\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'0\', \'0\', \'\', \'\', \'None\'], " } member_method { name: "UnwrapDatasetVariant" - argspec: "args=[\'input_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "UpperBound" - argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'sorted_inputs\', \'values\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "VarHandleOp" - argspec: "args=[\'container\', \'shared_name\', \'dtype\', \'shape\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'dtype\', \'shape\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "VarIsInitializedOp" - argspec: "args=[\'resource\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'resource\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Variable" - argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "VariableShape" - argspec: "args=[\'input\', \'out_type\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'out_type\', \'name\'], varargs=None, keywords=None, defaults=[\"\", \'None\'], " } member_method { name: "VariableV2" - argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'shape\', \'dtype\', \'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "Where" - argspec: "args=[\'input\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'condition\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "While" - argspec: "args=[\'input\', \'cond\', \'body\', \'output_shapes\', \'parallel_iterations\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input\', \'cond\', \'body\', \'output_shapes\', \'parallel_iterations\', \'name\'], varargs=None, keywords=None, defaults=[\'[]\', \'10\', \'None\'], " } member_method { name: "WholeFileReader" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "WholeFileReaderV2" - argspec: "args=[\'container\', \'shared_name\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'container\', \'shared_name\', \'name\'], varargs=None, keywords=None, defaults=[\'\', \'\', \'None\'], " } member_method { name: "WindowDataset" - argspec: "args=[\'input_dataset\', \'size\', \'shift\', \'stride\', \'drop_remainder\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_dataset\', \'size\', \'shift\', \'stride\', \'drop_remainder\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WorkerHeartbeat" - argspec: "args=[\'request\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'request\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WrapDatasetVariant" - argspec: "args=[\'input_handle\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_handle\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteAudioSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'sample_rate\', \'max_outputs\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'sample_rate\', \'max_outputs\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "WriteFile" - argspec: "args=[\'filename\', \'contents\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'filename\', \'contents\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteGraphSummary" - argspec: "args=[\'writer\', \'step\', \'tensor\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tensor\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteHistogramSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'values\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'values\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteImageSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'bad_color\', \'max_images\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'tensor\', \'bad_color\', \'max_images\', \'name\'], varargs=None, keywords=None, defaults=[\'3\', \'None\'], " } member_method { name: "WriteScalarSummary" - argspec: "args=[\'writer\', \'step\', \'tag\', \'value\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tag\', \'value\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "WriteSummary" - argspec: "args=[\'writer\', \'step\', \'tensor\', \'tag\', \'summary_metadata\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'writer\', \'step\', \'tensor\', \'tag\', \'summary_metadata\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Xdivy" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Xlogy" - argspec: "args=[\'x\', \'y\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'y\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ZerosLike" - argspec: "args=[\'x\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "Zeta" - argspec: "args=[\'x\', \'q\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'x\', \'q\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } member_method { name: "ZipDataset" - argspec: "args=[\'input_datasets\', \'output_types\', \'output_shapes\'], varargs=None, keywords=None, defaults=None" + argspec: "args=[\'input_datasets\', \'output_types\', \'output_shapes\', \'name\'], varargs=None, keywords=None, defaults=[\'None\'], " } } diff --git a/tensorflow/tools/ci_build/Dockerfile.custom_op_gpu b/tensorflow/tools/ci_build/Dockerfile.custom_op_gpu new file mode 100644 index 00000000000..c36b92224f4 --- /dev/null +++ b/tensorflow/tools/ci_build/Dockerfile.custom_op_gpu @@ -0,0 +1,21 @@ +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu14.04 + +LABEL maintainer="Yifei Feng " + +# Copy and run the install scripts. +COPY install/*.sh /install/ +RUN /install/install_bootstrap_deb_packages.sh +RUN add-apt-repository -y ppa:openjdk-r/ppa && \ + add-apt-repository -y ppa:george-edison55/cmake-3.x +RUN /install/install_deb_packages.sh +RUN /install/install_pip_packages.sh +RUN /install/install_bazel.sh +RUN /install/install_proto3.sh +RUN /install/install_buildifier.sh +RUN /install/install_auditwheel.sh +RUN /install/install_golang.sh + +# Set up the master bazelrc configuration file. +COPY install/.bazelrc /etc/bazel.bazelrc + +ENV TF_NEED_CUDA 1 diff --git a/tensorflow/tools/ci_build/builds/pip_new.sh b/tensorflow/tools/ci_build/builds/pip_new.sh index dadb18a0b20..04b59884a84 100755 --- a/tensorflow/tools/ci_build/builds/pip_new.sh +++ b/tensorflow/tools/ci_build/builds/pip_new.sh @@ -26,8 +26,6 @@ # CONTAINER_TYPE: (CPU | GPU) # OS_TYPE: (UBUNTU | MACOS) # TF_PYTHON_VERSION: (python2 | python2.7 | python3.5 | python3.7) -# -# Optional environment variables. If provided, overwrites any default values. # TF_BUILD_FLAGS: Bazel build flags. # e.g. TF_BUILD_FLAGS="--config=opt" # TF_TEST_FLAGS: Bazel test flags. @@ -40,13 +38,15 @@ # e.g. TF_TEST_TARGETS="//tensorflow/... \ # -//tensorflow/contrib/... \ # -//tensorflow/python/..." +# IS_NIGHTLY: Nightly run flag. +# e.g. IS_NIGHTLY=1 # nightly runs +# e.g. IS_NIGHTLY=0 # non-nightly runs +# +# Optional environment variables. If provided, overwrites any default values. # TF_PIP_TESTS: PIP tests to run. If NOT specified, skips all tests. # e.g. TF_PIP_TESTS="test_pip_virtualenv_clean \ # test_pip_virtualenv_clean \ # test_pip_virtualenv_oss_serial" -# IS_NIGHTLY: Nightly run flag. -# e.g. IS_NIGHTLY=1 # nightly runs -# e.g. IS_NIGHTLY=0 # non-nightly runs # TF_PROJECT_NAME: Name of the project. This string will be pass onto # the wheel file name. For nightly builds, it will be # overwritten to 'tf_nightly'. For gpu builds, '_gpu' @@ -59,9 +59,11 @@ # To-be-deprecated variable(s). # GIT_TAG_OVERRIDE: Values for `--git_tag_override`. This flag gets passed # in as `--action_env` for bazel build and tests. -# TF_BUILD_INSTALL_EXTRA_PIP_PACKAGES +# TF_BUILD_INSTALL_EXTRA_PIP_PACKAGES: # Additonal pip packages to be installed. # Caveat: pip version needs to be checked prior. +# +# ============================================================================== # set bash options set -e @@ -95,7 +97,27 @@ check_global_vars() { # Check OS type if ! [[ ${OS_TYPE} == "ubuntu" ]] && \ ! [[ ${OS_TYPE} == "macos" ]]; then - die"Error: Provided OS_TYPE \"${OS_TYPE}\" is not supported." + die "Error: Provided OS_TYPE \"${OS_TYPE}\" is not supported." + fi + # Check build flags + if [[ -z ${TF_BUILD_FLAGS} ]]; then + die "Error: TF_BUILD_FLAGS is not specified." + fi + # Check test flags + if [[ -z ${TF_TEST_FLAGS} ]]; then + die "Error: TF_TEST_FLAGS is not specified." + fi + # Check test filter tags + if [[ -z ${TF_TEST_FILTER_TAGS} ]]; then + die "Error: TF_TEST_FILTER_TAGS is not specified." + fi + # Check test targets + if [[ -z ${TF_TEST_TARGETS} ]]; then + die "Error: TF_TEST_TARGETS is not specified." + fi + # Check nightly status + if [[ -z ${IS_NIGHTLY} ]]; then + die "Error: IS_NIGHTLY is not specified." fi } @@ -103,8 +125,8 @@ add_test_filter_tag() { EMPTY="" while true; do FILTER="${1:$EMPTY}" - if ! [[ $BAZEL_TEST_FILTER_TAGS == *"${FILTER}"* ]]; then - BAZEL_TEST_FILTER_TAGS="${FILTER},${BAZEL_TEST_FILTER_TAGS}" + if ! [[ $TF_TEST_FILTER_TAGS == *"${FILTER}"* ]]; then + TF_TEST_FILTER_TAGS="${FILTER},${TF_TEST_FILTER_TAGS}" fi shift if [[ -z "${1}" ]]; then @@ -117,7 +139,7 @@ remove_test_filter_tag() { EMPTY="" while true; do FILTER="${1:$EMPTY}" - BAZEL_TEST_FILTER_TAGS="$(echo ${BAZEL_TEST_FILTER_TAGS} | sed -e 's/^'${FILTER}',//g' -e 's/,'${FILTER}'//g')" + TF_TEST_FILTER_TAGS="$(echo ${TF_TEST_FILTER_TAGS} | sed -e 's/^'${FILTER}',//g' -e 's/,'${FILTER}'//g')" shift if [[ -z "${1}" ]]; then break @@ -130,15 +152,15 @@ update_bazel_flags() { # Add git tag override flag if necessary. GIT_TAG_STR=" --action_env=GIT_TAG_OVERRIDE" if [[ -z "${GIT_TAG_OVERRIDE}" ]] && \ - ! [[ ${BAZEL_BUILD_FLAGS} = *${GIT_TAG_STR}* ]]; then - BAZEL_BUILD_FLAGS+="${GIT_TAG_STR}" + ! [[ ${TF_BUILD_FLAGS} = *${GIT_TAG_STR}* ]]; then + TF_BUILD_FLAGS+="${GIT_TAG_STR}" fi # Clean up whitespaces - BAZEL_BUILD_FLAGS=$(str_strip "${BAZEL_BUILD_FLAGS}") - BAZEL_TEST_FLAGS=$(str_strip "${BAZEL_TEST_FLAGS}") + TF_BUILD_FLAGS=$(str_strip "${TF_BUILD_FLAGS}") + TF_TEST_FLAGS=$(str_strip "${TF_TEST_FLAGS}") # Cleaned bazel flags - echo "Bazel build flags (cleaned):\n" "${BAZEL_BUILD_FLAGS}" - echo "Bazel test flags (cleaned):\n" "${BAZEL_TEST_FLAGS}" + echo "Bazel build flags (cleaned):\n" "${TF_BUILD_FLAGS}" + echo "Bazel test flags (cleaned):\n" "${TF_TEST_FLAGS}" } update_test_filter_tags() { @@ -150,7 +172,7 @@ update_test_filter_tags() { remove_test_filter_tag nomac no_mac add_test_filter_tag -nomac -no_mac fi - echo "Final test filter tags: ${BAZEL_TEST_FILTER_TAGS}" + echo "Final test filter tags: ${TF_TEST_FILTER_TAGS}" } # Check currently running python and pip version @@ -208,24 +230,12 @@ if [[ -z "$PYTHON_BIN_PATH" ]]; then die "Error: PYTHON_BIN_PATH was not provided. Did you run configure?" fi -# Default values for optional global variables in case they are not user -# defined. -DEFAULT_BAZEL_BUILD_FLAGS='--config=opt' -DEFAULT_BAZEL_TEST_FLAGS='--test_output=errors --verbose_failures=true' -DEFAULT_BAZEL_TEST_FILTERS='-no_oss,-oss_serial' -DEFAULT_BAZEL_TEST_TARGETS='//tensorflow/python/... -//tensorflow/core/... -//tensorflow/compiler/... ' +# Set optional environment variables; set to default in case not user defined. DEFAULT_PIP_TESTS="" # Do not run any tests by default -DEFAULT_IS_NIGHTLY=0 # Not nightly by default DEFAULT_PROJECT_NAME="tensorflow" DEFAULT_PIP_TEST_ROOT="pip_test" - # Take in optional global variables -BAZEL_BUILD_FLAGS=${TF_BUILD_FLAGS:-$DEFAULT_BAZEL_BUILD_FLAGS} -BAZEL_TEST_FLAGS=${TF_TEST_FLAGS:-$DEFAULT_BAZEL_TEST_FLAGS} -BAZEL_TEST_TARGETS=${TF_TEST_TARGETS:-$DEFAULT_BAZEL_TEST_TARGETS} -BAZEL_TEST_FILTER_TAGS=${TF_TEST_FILTER_TAGS:-$DEFAULT_BAZEL_TEST_FILTERS} PIP_TESTS=${TF_PIP_TESTS:-$DEFAULT_PIP_TESTS} -IS_NIGHTLY=${IS_NIGHTLY:-$DEFAULT_IS_NIGHTLY} PROJECT_NAME=${TF_PROJECT_NAME:-$DEFAULT_PROJECT_NAME} PIP_TEST_ROOT=${TF_PIP_TEST_ROOT:-$DEFAULT_PIP_TEST_ROOT} @@ -283,55 +293,36 @@ bazel clean # Clean up and update bazel flags update_bazel_flags # Build. This outputs the file `build_pip_package`. -bazel build ${BAZEL_BUILD_FLAGS} ${PIP_BUILD_TARGET} || \ +bazel build ${TF_BUILD_FLAGS} ${PIP_BUILD_TARGET} || \ die "Error: Bazel build failed for target: '${PIP_BUILD_TARGET}'" ########################################################################### # Test function(s) ########################################################################### -test_pip_virtualenv_clean() { - # Create a clean directory. - CLEAN_VENV_DIR="${PIP_TEST_ROOT}/venv_clean" +test_pip_virtualenv() { + # Get args + VENV_DIR_NAME=$1 + shift + TEST_TYPE_FLAG=$1 - # activate virtual environment and install tensorflow with PIP. - create_activate_virtualenv --clean "${CLEAN_VENV_DIR}" - # Install TF with pip - install_tensorflow_pip "${WHL_PATH}" - - # cd to a temporary directory to avoid picking up Python files in the source - # tree. - TMP_DIR=$(mktemp -d) - pushd "${TMP_DIR}" - - # Run a quick check on tensorflow installation. - RET_VAL=$(python -c "import tensorflow as tf; t1=tf.constant([1,2,3,4]); t2=tf.constant([5,6,7,8]); print(tf.add(t1,t2).shape)") - - # Deactivate virtualenv. - deactivate || source deactivate || die "FAILED: Unable to deactivate from existing virtualenv." - - # Return to original directory. Remove temp dirs. - popd - sudo rm -rf "${TMP_DIR}" "${CLEAN_VENV_DIR}" - - # Check result to see if tensorflow is properly installed. - if [[ ${RET_VAL} == *'(4,)'* ]]; then - echo "PIP test on clean virtualenv PASSED." - return 0 - else - echo "PIP test on clean virtualenv FAILED." - return 1 + # Check test type args + if ! [[ ${TEST_TYPE_FLAG} == "--oss_serial" ]] && \ + ! [[ ${TEST_TYPE_FLAG} == "--clean" ]] && \ + ! [[ ${TEST_TYPE_FLAG} == "" ]]; then + die "Error: Wrong test type given. TEST_TYPE_FLAG=${TEST_TYPE_FLAG}" fi -} -test_pip_virtualenv_non_clean() { - # Create virtualenv directory for install test - VENV_DIR="${PIP_TEST_ROOT}/venv" + # Create virtualenv directory for test + VENV_DIR="${PIP_TEST_ROOT}/${VENV_DIR_NAME}" # Activate virtualenv - create_activate_virtualenv "${VENV_DIR}" + create_activate_virtualenv ${TEST_TYPE_FLAG} ${VENV_DIR} # Install TF with pip + TIME_START=$SECONDS install_tensorflow_pip "${WHL_PATH}" + TIME_ELAPSED=$(($SECONDS - $TIME_START)) + echo "Time elapsed installing tensorflow = ${TIME_ELAPSED} seconds" # cd to a temporary directory to avoid picking up Python files in the source # tree. @@ -364,40 +355,14 @@ test_pip_virtualenv_non_clean() { done # Run bazel test. - run_test_with_bazel + run_test_with_bazel ${TEST_TYPE_FLAG} RESULT=$? # Deactivate from virtualenv. deactivate || source deactivate || die "FAILED: Unable to deactivate from existing virtualenv." sudo rm -rf "${VENV_DIR}" - if [[ $RESULT -ne 0 ]]; then - echo "PIP test on virtualenv (non-clean) FAILED." - return 1 - else - echo "PIP test on virtualenv (non-clean) PASSED." - return 0 - fi -} - -test_pip_virtualenv_oss_serial() { - # Create virtualenv directory - VENV_DIR="${PIP_TEST_ROOT}/venv" - - create_activate_virtualenv "${VENV_DIR}" - run_test_with_bazel --oss_serial - RESULT=$? - - # deactivate virtualenv - deactivate || source deactivate || die "FAILED: Unable to deactivate from existing virtualenv." - - if [[ ${RESULT} -ne 0 ]]; then - echo "PIP test on virtualenv (oss-serial) FAILED." - return 1 - else - echo "PIP test on virtualenv (oss-serial) PASSED." - return 0 - fi + return $RESULT } ########################################################################### @@ -407,6 +372,9 @@ test_pip_virtualenv_oss_serial() { create_activate_virtualenv() { VIRTUALENV_FLAGS="--system-site-packages" if [[ "${1}" == "--clean" ]]; then + VIRTUALENV_FLAGS="" + shift + elif [[ "{1}" == "--oss_serial" ]]; then shift fi @@ -539,14 +507,14 @@ run_test_with_bazel() { fi TEST_TARGETS_SYMLINK="" - for TARGET in ${BAZEL_TEST_TARGETS[@]}; do + for TARGET in ${TF_TEST_TARGETS[@]}; do TARGET_NEW=$(echo ${TARGET} | sed -e "s/\/\//\/\/${PIP_TEST_PREFIX}\//g") TEST_TARGETS_SYMLINK+="${TARGET_NEW} " done echo "Test targets (symlink): ${TEST_TARGETS_SYMLINK}" # Run the test. - bazel test --build_tests_only ${BAZEL_TEST_FLAGS} ${BAZEL_PARALLEL_TEST_FLAGS} --test_tag_filters=${BAZEL_TEST_FILTER_TAGS} -k -- ${TEST_TARGETS_SYMLINK} + bazel test --build_tests_only ${TF_TEST_FLAGS} ${BAZEL_PARALLEL_TEST_FLAGS} --test_tag_filters=${TF_TEST_FILTER_TAGS} -k -- ${TEST_TARGETS_SYMLINK} unlink ${TEST_ROOT}/tensorflow } @@ -563,13 +531,13 @@ run_all_tests() { # Run tests. case "${TEST}" in "test_pip_virtualenv_clean") - test_pip_virtualenv_clean + test_pip_virtualenv venv_clean --clean ;; "test_pip_virtualenv_non_clean") - test_pip_virtualenv_non_clean + test_pip_virtualenv venv ;; "test_pip_virtualenv_oss_serial") - test_pip_virtualenv_oss_serial + test_pip_virtualenv venv_oss --oss_serial ;; *) die "No matching test ${TEST} was found. Stopping test." @@ -661,15 +629,16 @@ for WHL_PATH in $(ls ${PIP_WHL_DIR}/${PROJECT_NAME}*.whl); do echo "Copied manylinux1 wheel file at ${WHL_PATH}" else if [[ ${OS_TYPE} == "ubuntu" ]]; then - # Repair the wheels for cpu manylinux1 - echo "auditwheel repairing ${WHL_PATH}" - + # Avoid Python3.6 abnormality by installing auditwheel here. pip3 show auditwheel set +e pip3 install auditwheel==1.5.0 sudo pip3 install auditwheel==1.5.0 set -e auditwheel --version + + # Repair the wheels for cpu manylinux1 + echo "auditwheel repairing ${WHL_PATH}" auditwheel repair -w "${WHL_DIR}" "${WHL_PATH}" if [[ -f ${AUDITED_WHL_NAME} ]]; then diff --git a/tensorflow/tools/compatibility/reorders_v2.py b/tensorflow/tools/compatibility/reorders_v2.py index 436daf11968..b94d51bb48a 100644 --- a/tensorflow/tools/compatibility/reorders_v2.py +++ b/tensorflow/tools/compatibility/reorders_v2.py @@ -129,6 +129,7 @@ reorders = { 'tf.sparse_segment_sqrt_n': ['data', 'indices', 'segment_ids', 'name', 'num_segments'], 'tf.sparse_segment_sum': ['data', 'indices', 'segment_ids', 'name', 'num_segments'], 'tf.sparse_split': ['keyword_required', 'sp_input', 'num_split', 'axis', 'name', 'split_dim'], + 'tf.string_split': ['source', 'delimiter', 'skip_empty'], 'tf.strings.length': ['input', 'name', 'unit'], 'tf.strings.reduce_join': ['inputs', 'axis', 'keep_dims', 'separator', 'name', 'reduction_indices', 'keepdims'], 'tf.strings.substr': ['input', 'pos', 'len', 'name', 'unit'], diff --git a/tensorflow/tools/compatibility/testdata/test_file_v0_11.py b/tensorflow/tools/compatibility/testdata/test_file_v0_11.py index 09ee0476fda..70a00e1220b 100644 --- a/tensorflow/tools/compatibility/testdata/test_file_v0_11.py +++ b/tensorflow/tools/compatibility/testdata/test_file_v0_11.py @@ -126,21 +126,12 @@ class TestUpgrade(test_util.TensorFlowTestCase): self.assertAllEqual(tf.squeeze(tf.expand_dims(a, 1), [1]).eval(), a) self.assertAllEqual( - tf.expand_dims( - tf.squeeze( - [[1, 2, 3]], squeeze_dims=[0]), dim=0).eval(), - a) + tf.expand_dims(tf.squeeze([[1, 2, 3]], axis=[0]), dim=0).eval(), a) self.assertAllEqual( - tf.squeeze( - tf.expand_dims( - [[1, 2, 3]], dim=1), squeeze_dims=[1]).eval(), - a) + tf.squeeze(tf.expand_dims([[1, 2, 3]], dim=1), axis=[1]).eval(), a) self.assertAllEqual( - tf.squeeze( - tf.expand_dims( - [[1, 2, 3]], dim=1), squeeze_dims=[1]).eval(), - a) + tf.squeeze(tf.expand_dims([[1, 2, 3]], dim=1), axis=[1]).eval(), a) @test_util.run_v1_only("b/120545219") def testArithmeticRenames(self): diff --git a/tensorflow/tools/compatibility/tf_upgrade_v2.py b/tensorflow/tools/compatibility/tf_upgrade_v2.py index 6cdb405f93b..4835005e27e 100644 --- a/tensorflow/tools/compatibility/tf_upgrade_v2.py +++ b/tensorflow/tools/compatibility/tf_upgrade_v2.py @@ -42,6 +42,9 @@ class TFAPIChangeSpec(ast_edits.APIChangeSpec): # Only keyword args are handled, so make sure to also put any function in # function_reorders to ensure that all args are made into keywords first. self.function_keyword_renames = { + "tf.string_split": { + "delimiter": "sep", + }, "tf.test.assert_equal_graph_def": { "checkpoint_v2": None, }, @@ -652,6 +655,8 @@ class TFAPIChangeSpec(ast_edits.APIChangeSpec): "tf.random.stateless_categorical", "tf.substr": "tf.strings.substr", + "tf.string_split": + "tf.strings.split", "tf.string_to_hash_bucket": "tf.strings.to_hash_bucket", "tf.string_to_number": @@ -716,18 +721,6 @@ class TFAPIChangeSpec(ast_edits.APIChangeSpec): "tf.compat.v1.saved_model.load", "tf.saved_model.load_v2": "tf.compat.v2.saved_model.load", - "tf.zeros_initializer": - "tf.compat.v1.initializers.zeros", - "tf.ones_initializer": - "tf.compat.v1.initializers.ones", - "tf.constant_initializer": - "tf.compat.v1.initializers.constant", - "tf.random_uniform_initializer": - "tf.compat.v1.initializers.random_uniform", - "tf.random_normal_initializer": - "tf.compat.v1.initializers.random_normal", - "tf.truncated_normal_initializer": - "tf.compat.v1.initializers.truncated_normal", "tf.image.resize_images": "tf.image.resize", "tf.random_poisson": @@ -780,10 +773,104 @@ class TFAPIChangeSpec(ast_edits.APIChangeSpec): "tf.nn.avg_pool2d", "tf.keras.initializers.zeros": "tf.compat.v1.keras.initializers.zeros", + "tf.keras.initializers.Zeros": + "tf.compat.v1.keras.initializers.Zeros", "tf.keras.initializers.ones": "tf.compat.v1.keras.initializers.ones", + "tf.keras.initializers.Ones": + "tf.compat.v1.keras.initializers.Ones", "tf.keras.initializers.constant": "tf.compat.v1.keras.initializers.constant", + "tf.keras.initializers.Constant": + "tf.compat.v1.keras.initializers.Constant", + "tf.keras.initializers.VarianceScaling": + "tf.compat.v1.keras.initializers.VarianceScaling", + "tf.keras.initializers.Orthogonal": + "tf.compat.v1.keras.initializers.Orthogonal", + "tf.keras.initializers.orthogonal": + "tf.compat.v1.keras.initializers.orthogonal", + "tf.keras.initializers.Identity": + "tf.compat.v1.keras.initializers.Identity", + "tf.keras.initializers.identity": + "tf.compat.v1.keras.initializers.identity", + "tf.keras.initializers.glorot_uniform": + "tf.compat.v1.keras.initializers.glorot_uniform", + "tf.keras.initializers.glorot_normal": + "tf.compat.v1.keras.initializers.glorot_normal", + "tf.keras.initializers.lecun_normal": + "tf.compat.v1.keras.initializers.lecun_normal", + "tf.keras.initializers.lecun_uniform": + "tf.compat.v1.keras.initializers.lecun_uniform", + "tf.keras.initializers.he_normal": + "tf.compat.v1.keras.initializers.he_normal", + "tf.keras.initializers.he_uniform": + "tf.compat.v1.keras.initializers.he_uniform", + "tf.keras.initializers.TruncatedNormal": + "tf.compat.v1.keras.initializers.TruncatedNormal", + "tf.keras.initializers.truncated_normal": + "tf.compat.v1.keras.initializers.truncated_normal", + "tf.keras.initializers.RandomUniform": + "tf.compat.v1.keras.initializers.RandomUniform", + "tf.keras.initializers.uniform": + "tf.compat.v1.keras.initializers.uniform", + "tf.keras.initializers.random_uniform": + "tf.compat.v1.keras.initializers.random_uniform", + "tf.keras.initializers.RandomNormal": + "tf.compat.v1.keras.initializers.RandomNormal", + "tf.keras.initializers.normal": + "tf.compat.v1.keras.initializers.normal", + "tf.keras.initializers.random_normal": + "tf.compat.v1.keras.initializers.random_normal", + "tf.zeros_initializer": + "tf.compat.v1.zeros_initializer", + "tf.initializers.zeros": + "tf.compat.v1.initializers.zeros", + "tf.ones_initializer": + "tf.compat.v1.ones_initializer", + "tf.initializers.ones": + "tf.compat.v1.initializers.ones", + "tf.constant_initializer": + "tf.compat.v1.constant_initializer", + "tf.initializers.constant": + "tf.compat.v1.initializers.constant", + "tf.random_uniform_initializer": + "tf.compat.v1.random_uniform_initializer", + "tf.initializers.random_uniform": + "tf.compat.v1.initializers.random_uniform", + "tf.random_normal_initializer": + "tf.compat.v1.random_normal_initializer", + "tf.initializers.random_normal": + "tf.compat.v1.initializers.random_normal", + "tf.truncated_normal_initializer": + "tf.compat.v1.truncated_normal_initializer", + "tf.initializers.truncated_normal": + "tf.compat.v1.initializers.truncated_normal", + "tf.variance_scaling_initializer": + "tf.compat.v1.variance_scaling_initializer", + "tf.initializers.variance_scaling": + "tf.compat.v1.initializers.variance_scaling", + "tf.orthogonal_initializer": + "tf.compat.v1.orthogonal_initializer", + "tf.initializers.orthogonal": + "tf.compat.v1.initializers.orthogonal", + "tf.glorot_uniform_initializer": + "tf.compat.v1.glorot_uniform_initializer", + "tf.initializers.glorot_uniform": + "tf.compat.v1.initializers.glorot_uniform", + "tf.glorot_normal_initializer": + "tf.compat.v1.glorot_normal_initializer", + "tf.initializers.glorot_normal": + "tf.compat.v1.initializers.glorot_normal", + "tf.initializers.identity": + "tf.compat.v1.initializers.identity", + "tf.initializers.lecun_normal": + "tf.compat.v1.initializers.lecun_normal", + "tf.initializers.lecun_uniform": + "tf.compat.v1.initializers.lecun_uniform", + "tf.initializers.he_normal": + "tf.compat.v1.initializers.he_normal", + "tf.initializers.he_uniform": + "tf.compat.v1.initializers.he_uniform", "tf.data.experimental.map_and_batch_with_legacy_function": "tf.compat.v1.data.experimental.map_and_batch_with_legacy_function", "tf.nn.conv2d_backprop_input": @@ -839,6 +926,7 @@ class TFAPIChangeSpec(ast_edits.APIChangeSpec): "tf.feature_column.categorical_column_with_vocabulary_file", "tf.shape", "tf.size", + "tf.string_split", "tf.random.poisson", "tf.sparse.add", "tf.sparse_add", @@ -1544,6 +1632,12 @@ class TFAPIChangeSpec(ast_edits.APIChangeSpec): "takes input_layer_partitioner, so the call was converted to " "compat.v1." ), + "tf.string_split": functools.partial( + _rename_if_arg_found_transformer, arg_name="skip_empty", + arg_ok_predicate=_is_ast_false, remove_if_ok=True, + message="tf.string_split's replacement no longer takes the " + "skip_empty argument. Since the argument was present, the call was " + "converted to compat.v1."), "tf.device": functools.partial( _rename_if_arg_found_transformer, arg_name="device_name", arg_ok_predicate=_is_ast_str, remove_if_ok=False, @@ -2083,7 +2177,7 @@ def _add_uniform_scaling_initializer_transformer( Transforms: tf.uniform_unit_scaling_initializer(factor, seed, dtype) to - tf.keras.initializers.VarianceScaling( + tf.compat.v1.keras.initializers.VarianceScaling( scale=factor, distribution="uniform", seed=seed) Note: to apply this transformation, symbol must be added @@ -2100,7 +2194,7 @@ def _add_uniform_scaling_initializer_transformer( lineno = node.func.value.lineno col_offset = node.func.value.col_offset - node.func.value = ast_edits.full_name_node("tf.keras.initializers") + node.func.value = ast_edits.full_name_node("tf.compat.v1.keras.initializers") node.func.value.lineno = lineno node.func.value.col_offset = col_offset node.func.attr = "VarianceScaling" diff --git a/tensorflow/tools/compatibility/tf_upgrade_v2_test.py b/tensorflow/tools/compatibility/tf_upgrade_v2_test.py index c68bc5f5032..52497ca6dac 100644 --- a/tensorflow/tools/compatibility/tf_upgrade_v2_test.py +++ b/tensorflow/tools/compatibility/tf_upgrade_v2_test.py @@ -417,6 +417,79 @@ bazel-bin/tensorflow/tools/compatibility/update/generate_v2_reorders_map self.assertIn("switch to the schedules in " "`tf.keras.optimizers.schedules`", report) + def verify_compat_v1_rename_correctness(self, values, ns_prefix=""): + if ns_prefix: + ns_prefix += "." + for v in values: + text = "tf." + ns_prefix + v + "(a, b)" + _, _, _, new_text = self._upgrade(text) + self.assertEqual("tf.compat.v1." + ns_prefix + v + "(a, b)", new_text) + + def testIntializers(self): + initializers = [ + "zeros", + "ones", + "constant", + "random_uniform", + "random_normal", + "truncated_normal", + "variance_scaling", + "orthogonal", + "glorot_uniform", + "glorot_normal", + "identity", + "lecun_normal", + "lecun_uniform", + "he_normal", + "he_uniform", + ] + self.verify_compat_v1_rename_correctness( + initializers, ns_prefix="initializers") + + initializers = [ + "zeros_initializer", + "ones_initializer", + "constant_initializer", + "random_uniform_initializer", + "random_normal_initializer", + "truncated_normal_initializer", + "variance_scaling_initializer", + "orthogonal_initializer", + "glorot_uniform_initializer", + "glorot_normal_initializer", + ] + self.verify_compat_v1_rename_correctness(initializers) + + initializers = [ + "zeros", + "ones", + "Ones", + "Zeros", + "constant", + "Constant", + "VarianceScaling", + "Orthogonal", + "orthogonal", + "Identity", + "identity", + "glorot_uniform", + "glorot_normal", + "lecun_normal", + "lecun_uniform", + "he_normal", + "he_uniform", + "TruncatedNormal", + "truncated_normal", + "RandomUniform", + "uniform", + "random_uniform", + "RandomNormal", + "normal", + "random_normal", + ] + self.verify_compat_v1_rename_correctness( + initializers, ns_prefix="keras.initializers") + def testMetrics(self): metrics = [ "accuracy", @@ -1398,16 +1471,14 @@ def _log_prob(self, x): def test_uniform_unit_scaling_initializer(self): text = "tf.uniform_unit_scaling_initializer(0.5)" - expected_text = ( - "tf.keras.initializers.VarianceScaling(" + - "scale=0.5, distribution=\"uniform\")") + expected_text = ("tf.compat.v1.keras.initializers.VarianceScaling(" + "scale=0.5, distribution=\"uniform\")") _, _, _, new_text = self._upgrade(text) self.assertEqual(expected_text, new_text) text = "tf.initializers.uniform_unit_scaling(0.5)" - expected_text = ( - "tf.keras.initializers.VarianceScaling(" + - "scale=0.5, distribution=\"uniform\")") + expected_text = ("tf.compat.v1.keras.initializers.VarianceScaling(" + "scale=0.5, distribution=\"uniform\")") _, _, _, new_text = self._upgrade(text) self.assertEqual(expected_text, new_text) @@ -1433,6 +1504,22 @@ def _log_prob(self, x): self.assertIn("name_scope call with neither name nor default_name", errors[0]) + def test_string_split(self): + text = "tf.string_split('test', delimiter=' ')" + expected_text = "tf.strings.split(source='test', sep=' ')" + _, _, _, new_text = self._upgrade(text) + self.assertEqual(expected_text, new_text) + + text = "tf.string_split('test', ' ', True)" + expected_text = "tf.compat.v1.string_split(source='test', sep=' ', skip_empty=True)" # pylint: disable=line-too-long + _, _, _, new_text = self._upgrade(text) + self.assertEqual(expected_text, new_text) + + text = "tf.string_split('test', ' ', skip_empty=False)" + expected_text = "tf.strings.split(source='test', sep=' ')" # pylint: disable=line-too-long + _, _, _, new_text = self._upgrade(text) + self.assertEqual(expected_text, new_text) + class TestUpgradeFiles(test_util.TensorFlowTestCase): diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl index 2a18625cf71..822150118f9 100755 --- a/tensorflow/workspace.bzl +++ b/tensorflow/workspace.bzl @@ -133,11 +133,11 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""): tf_http_archive( name = "com_google_absl", build_file = clean_dep("//third_party:com_google_absl.BUILD"), - sha256 = "bc275e1e4642b7e6d4e867b999886971bf0e75b57cb7ad723ffeeb3d595924d7", - strip_prefix = "abseil-cpp-256be563447a315f2a7993ec669460ba475fa86a", + sha256 = "4ca486dfff63a9b7c3ece54895f7b92c5c2444df6a61942bb66d888dd310f358", + strip_prefix = "abseil-cpp-7c7754fb3ed9ffb57d35fe8658f3ba4d73a31e72", urls = [ - "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/256be563447a315f2a7993ec669460ba475fa86a.tar.gz", - "https://github.com/abseil/abseil-cpp/archive/256be563447a315f2a7993ec669460ba475fa86a.tar.gz", + "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/7c7754fb3ed9ffb57d35fe8658f3ba4d73a31e72.tar.gz", + "https://github.com/abseil/abseil-cpp/archive/7c7754fb3ed9ffb57d35fe8658f3ba4d73a31e72.tar.gz", ], ) @@ -145,11 +145,11 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""): name = "eigen_archive", build_file = clean_dep("//third_party:eigen.BUILD"), patch_file = clean_dep("//third_party/eigen3:gpu_packet_math.patch"), - sha256 = "c1c5f06805d3c7ecd74152edd535443e32dfd96ab37107e350b7d4f8399f7c71", - strip_prefix = "eigen-eigen-c7118091d7e4", + sha256 = "13a8885ab17cadb6c7e55538081f1f31d90e58d6415858d43ea72199bc0f5e22", + strip_prefix = "eigen-eigen-9632304bf806", urls = [ - "https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/c7118091d7e4.tar.gz", - "https://bitbucket.org/eigen/eigen/get/c7118091d7e4.tar.gz", + "https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/9632304bf806.tar.gz", + "https://bitbucket.org/eigen/eigen/get/9632304bf806.tar.gz", ], ) diff --git a/third_party/eigen3/gpu_packet_math.patch b/third_party/eigen3/gpu_packet_math.patch index 4997ad9c1cf..3d58cafd035 100644 --- a/third_party/eigen3/gpu_packet_math.patch +++ b/third_party/eigen3/gpu_packet_math.patch @@ -40,88 +40,3 @@ return res; } }; ---- a/Eigen/src/Core/arch/GPU/PacketMathHalf.h 2019-02-06 12:40:48.000000000 -0800 -+++ b/Eigen/src/Core/arch/GPU/PacketMathHalf.h 2019-03-08 14:52:29.000000000 -0800 -@@ -139,15 +139,23 @@ - template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pabs(const half2& a) { - half2 result; - unsigned temp = *(reinterpret_cast(&(a))); -- *(reinterpret_cast(&(result))) = temp & 0x7FFF7FFF; -+ *(reinterpret_cast(&result)) = temp & 0x7FFF7FFF; - return result; - } - - template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 ptrue(const half2& a) { - half2 result; -- *(reinterpret_cast(&(result))) = 0xffffffffu; -+ *(reinterpret_cast(&result)) = 0xffffffffu; -+ return result; -+} -+ -+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pzero(const half2& a) { -+ half2 result; -+ *(reinterpret_cast(&result)) = 0x00000000u; -+ return result; - } - -+ - EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void - ptranspose(PacketBlock& kernel) { - __half a1 = __low2half(kernel.packet[0]); -@@ -175,6 +183,56 @@ - #endif - } - -+template <> -+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pand(const half2& a, -+ const half2& b) { -+ half2 result; -+ *(reinterpret_cast(&result)) = -+ *(reinterpret_cast(&a)) & *(reinterpret_cast(&b)); -+ return result; -+} -+ -+template <> -+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pcmp_eq(const half2& a, -+ const half2& b) { -+ __half true_half = __ushort_as_half(0xffffu); -+ __half false_half = __ushort_as_half(0x0000u); -+ __half a1 = __low2half(a); -+ __half a2 = __high2half(a); -+ __half b1 = __low2half(b); -+ __half b2 = __high2half(b); -+ __half eq1 = __half2float(a1) == __half2float(b1) ? true_half : false_half; -+ __half eq2 = __half2float(a2) == __half2float(b2) ? true_half : false_half; -+ return __halves2half2(eq1, eq2); -+} -+ -+template <> -+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 por(const half2& a, -+ const half2& b) { -+ half2 result; -+ *(reinterpret_cast(&result)) = -+ *(reinterpret_cast(&a)) | *(reinterpret_cast(&b)); -+ return result; -+} -+ -+template <> -+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pxor(const half2& a, -+ const half2& b) { -+ half2 result; -+ *(reinterpret_cast(&result)) = -+ *(reinterpret_cast(&a)) ^ *(reinterpret_cast(&b)); -+ return result; -+} -+ -+template <> -+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pandnot(const half2& a, -+ const half2& b) { -+ half2 result; -+ *(reinterpret_cast(&result)) = -+ *(reinterpret_cast(&a)) & ~*(reinterpret_cast(&b)); -+ return result; -+} -+ - template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 padd(const half2& a, const half2& b) { - #if defined(EIGEN_HIP_DEVICE_COMPILE) - diff --git a/third_party/gpus/cuda_configure.bzl b/third_party/gpus/cuda_configure.bzl index 05226f05767..b8c891db30f 100644 --- a/third_party/gpus/cuda_configure.bzl +++ b/third_party/gpus/cuda_configure.bzl @@ -1494,6 +1494,10 @@ def _cuda_autoconf_impl(repository_ctx): if not enable_cuda(repository_ctx): _create_dummy_repository(repository_ctx) elif _TF_CUDA_CONFIG_REPO in repository_ctx.os.environ: + if (_TF_CUDA_VERSION not in repository_ctx.os.environ or + _TF_CUDNN_VERSION not in repository_ctx.os.environ): + auto_configure_fail("%s and %s must also be set if %s is specified" % + (_TF_CUDA_VERSION, _TF_CUDNN_VERSION, _TF_CUDA_CONFIG_REPO)) _create_remote_cuda_repository( repository_ctx, repository_ctx.os.environ[_TF_CUDA_CONFIG_REPO],