From f656e664f46065a1bd16e7a7495ae055438ae25c Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Wed, 28 Apr 2021 17:40:46 -0700 Subject: [PATCH 1/3] Export ops.pbtxt in addition to ops.pb, remove unnecessary package nesting Signed-off-by: Ryan Nett --- tensorflow-core/tensorflow-core-api/build.sh | 9 +- tensorflow-core/tensorflow-core-api/pom.xml | 69 +- .../src/bazel/op_generator/op_export_main.cc | 59 +- .../annotations/org/tensorflow/op/Ops.java | 12 +- .../src/gen/resources/ops.pb | Bin 0 -> 1671886 bytes .../src/gen/resources/ops.pbtxt | 58102 ++++++++++++++++ .../gen/resources/org/tensorflow/op/ops.pb | Bin 1462296 -> 0 bytes 7 files changed, 58195 insertions(+), 56 deletions(-) create mode 100644 tensorflow-core/tensorflow-core-api/src/gen/resources/ops.pb create mode 100644 tensorflow-core/tensorflow-core-api/src/gen/resources/ops.pbtxt delete mode 100644 tensorflow-core/tensorflow-core-api/src/gen/resources/org/tensorflow/op/ops.pb diff --git a/tensorflow-core/tensorflow-core-api/build.sh b/tensorflow-core/tensorflow-core-api/build.sh index b1c5194214f..895832f3df1 100755 --- a/tensorflow-core/tensorflow-core-api/build.sh +++ b/tensorflow-core/tensorflow-core-api/build.sh @@ -79,15 +79,18 @@ fi GEN_SRCS_DIR=src/gen/java mkdir -p $GEN_SRCS_DIR -GEN_RESOURCE_DIR=src/gen/resources/org/tensorflow/op +GEN_RESOURCE_DIR=src/gen/resources mkdir -p $GEN_RESOURCE_DIR if [[ -z "${SKIP_EXPORT:-}" ]]; then # Export op defs echo "Exporting Ops" $BAZEL_BIN/java_op_exporter \ - --api_dirs=$BAZEL_SRCS/external/org_tensorflow/tensorflow/core/api_def/base_api,src/bazel/api_def \ - $TENSORFLOW_LIB > $GEN_RESOURCE_DIR/ops.pb + $TENSORFLOW_LIB \ + $GEN_RESOURCE_DIR/ops.pb \ + $GEN_RESOURCE_DIR/ops.pbtxt \ + $BAZEL_SRCS/external/org_tensorflow/tensorflow/core/api_def/base_api \ + src/bazel/api_def else echo "Skipping Op export" fi diff --git a/tensorflow-core/tensorflow-core-api/pom.xml b/tensorflow-core/tensorflow-core-api/pom.xml index ecbb3cca67c..1c2a0e29f88 100644 --- a/tensorflow-core/tensorflow-core-api/pom.xml +++ b/tensorflow-core/tensorflow-core-api/pom.xml @@ -1,4 +1,6 @@ - 4.0.0 @@ -12,7 +14,9 @@ jar TensorFlow Core API Library - Platform-dependent native code and pure-Java code for the TensorFlow machine intelligence library. + Platform-dependent native code and pure-Java code for the TensorFlow machine + intelligence library. + false @@ -45,15 +49,15 @@ ndarray ${project.version} - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test org.openjdk.jmh @@ -154,7 +158,8 @@ default-compile - org.tensorflow.processor.operator.OperatorProcessor + org.tensorflow.processor.operator.OperatorProcessor + @@ -164,7 +169,8 @@ - ${project.basedir}/src/gen/annotations + ${project.basedir}/src/gen/annotations + - + + - ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar + + ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar + - ${project.build.directory}/native/ + ${project.build.directory}/native/ + diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_export_main.cc b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_export_main.cc index f66ea31a994..c2f9b06d070 100644 --- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_export_main.cc +++ b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_export_main.cc @@ -15,6 +15,8 @@ #include #include +#include +#include #include #include "tensorflow/core/framework/op.h" @@ -43,7 +45,9 @@ const char kUsageHeader[] = "The first argument is the location of the tensorflow binary built for TF-" "Java.\nFor example, `bazel-out/k8-opt/bin/external/org_tensorflow/tensorfl" "ow/libtensorflow_cc.so`.\n\n" - "Finally, the `--api_dirs` argument takes a list of comma-separated " + "The second and third arguments are the binary and text output files, respectively.\n" + "The text output file will not include ApiDefs, like tensorflow's ops.pbtxt.\n\n" + "Finally, the rest of the arguments are used as " "directories of API definitions can be provided to override default\n" "values found in the ops definitions. Directories are ordered by priority " "(the last having precedence over the first).\nFor example, `bazel-tensorf" @@ -86,32 +90,45 @@ Status UpdateOpDefs(OpList* op_list, const std::vector& api_ // See usage header. // Writes an OpList proto to stdout, with each OpDef having its ApiDef in field 100 int main(int argc, char* argv[]) { - tensorflow::string api_dirs_str; - std::vector flag_list = { - tensorflow::Flag( - "api_dirs", &api_dirs_str, - "List of directories that contain the ops API definitions protos")}; - tensorflow::string usage = tensorflow::java::kUsageHeader; - usage += tensorflow::Flags::Usage( - tensorflow::string(argv[0]) + " ", flag_list); - bool parsed_flags_ok = tensorflow::Flags::Parse(&argc, argv, flag_list); - tensorflow::port::InitMain(usage.c_str(), &argc, &argv); - QCHECK(parsed_flags_ok && argc > 1) << usage; - std::vector api_dirs = tensorflow::str_util::Split( - api_dirs_str, ",", tensorflow::str_util::SkipEmpty()); + tensorflow::port::InitMain(tensorflow::java::kUsageHeader, &argc, &argv); + std::vector api_dirs; - tensorflow::Env* env = tensorflow::Env::Default(); - void* ops_libs_handles[50]; - for (int i = 1; i < argc; ++i) { - TF_CHECK_OK(env->LoadDynamicLibrary(argv[1], &ops_libs_handles[i - 1])); + if(argc < 4) { + std::cerr << "Must specify " << "\n"; + std::cerr << tensorflow::java::kUsageHeader; + return 1; + } + + for(int i = 4 ; i < argc ; i++){ + api_dirs.push_back(argv[i]); + } + + std::ofstream binary_output (argv[2], std::ios::out | std::ios::trunc | std::ios::binary); + std::ofstream text_output (argv[3], std::ios::out | std::ios::trunc); + + if(!binary_output.is_open()){ + std::cerr << "Error opening file " << argv[2] << "\n"; + return 1; + } + + if(!text_output.is_open()){ + std::cerr << "Error opening file " << argv[3] << "\n"; + return 1; } + + tensorflow::Env* env = tensorflow::Env::Default(); + void* ops_libs_handles[1]; + TF_CHECK_OK(env->LoadDynamicLibrary(argv[1], &ops_libs_handles[0])); tensorflow::OpList ops; tensorflow::OpRegistry::Global()->Export(false, &ops); - TF_CHECK_OK(tensorflow::java::UpdateOpDefs(&ops, api_dirs, env)); + text_output << ops.DebugString(); + text_output.close(); + + TF_CHECK_OK(tensorflow::java::UpdateOpDefs(&ops, api_dirs, env)); - std::ostream & out = std::cout; - ops.SerializeToOstream(&out); + ops.SerializeToOstream(&binary_output); + binary_output.close(); return 0; } diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java index 250ea35b9fa..733e7ca7051 100644 --- a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java +++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java @@ -354,20 +354,20 @@ public final class Ops { public final SparseOps sparse; - public final BitwiseOps bitwise; - public final TpuOps tpu; + public final BitwiseOps bitwise; + public final MathOps math; public final AudioOps audio; public final SignalOps signal; - public final QuantizationOps quantization; - public final TrainOps train; + public final QuantizationOps quantization; + private final Scope scope; private Ops(Scope scope) { @@ -385,13 +385,13 @@ private Ops(Scope scope) { random = new RandomOps(this); strings = new StringsOps(this); sparse = new SparseOps(this); - bitwise = new BitwiseOps(this); tpu = new TpuOps(this); + bitwise = new BitwiseOps(this); math = new MathOps(this); audio = new AudioOps(this); signal = new SignalOps(this); - quantization = new QuantizationOps(this); train = new TrainOps(this); + quantization = new QuantizationOps(this); } /** diff --git a/tensorflow-core/tensorflow-core-api/src/gen/resources/ops.pb b/tensorflow-core/tensorflow-core-api/src/gen/resources/ops.pb new file mode 100644 index 0000000000000000000000000000000000000000..e4a333e597752e911e20131130b46de06cbc2dd7 GIT binary patch literal 1671886 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�lla5emGv9$1oFn9W0Q=eh}<^PBGtDU^^e047x& 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 literal 0 HcmV?d00001 diff --git a/tensorflow-core/tensorflow-core-api/src/gen/resources/ops.pbtxt b/tensorflow-core/tensorflow-core-api/src/gen/resources/ops.pbtxt new file mode 100644 index 00000000000..ba7f37f2ccf --- /dev/null +++ b/tensorflow-core/tensorflow-core-api/src/gen/resources/ops.pbtxt @@ -0,0 +1,58102 @@ +op { + name: "Abort" + attr { + name: "error_msg" + type: "string" + default_value { + s: "" + } + } + attr { + name: "exit_without_error" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "Abs" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "AccumulateNV2" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "sum" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + is_aggregate: true + is_commutative: true +} +op { + name: "AccumulatorApplyGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "local_step" + type: DT_INT64 + } + input_arg { + name: "gradient" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "AccumulatorNumAccumulated" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "num_accumulated" + type: DT_INT32 + } +} +op { + name: "AccumulatorSetGlobalStep" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "new_global_step" + type: DT_INT64 + } +} +op { + name: "AccumulatorTakeGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_required" + type: DT_INT32 + } + output_arg { + name: "average" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Acos" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Acosh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Add" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_STRING + } + } + } +} +op { + name: "AddManySparseToTensorsMap" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_handles" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "AddN" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "sum" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_VARIANT + } + } + } + is_aggregate: true + is_commutative: true +} +op { + name: "AddSparseToTensorsMap" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_handle" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "AddV2" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_UINT32 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + is_aggregate: true + is_commutative: true +} +op { + name: "AdjustContrast" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "contrast_factor" + type: DT_FLOAT + } + input_arg { + name: "min_value" + type: DT_FLOAT + } + input_arg { + name: "max_value" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 2 + explanation: "Use AdjustContrastv2 instead" + } +} +op { + name: "AdjustContrastv2" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "contrast_factor" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "AdjustHue" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "delta" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "AdjustSaturation" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "All" + input_arg { + name: "input" + type: DT_BOOL + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "AllCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "AllToAll" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_assignment" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "concat_dimension" + type: "int" + } + attr { + name: "split_dimension" + type: "int" + } + attr { + name: "split_count" + type: "int" + } +} +op { + name: "Angle" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AnonymousIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "AnonymousIteratorV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "AnonymousMemoryCache" + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "AnonymousMultiDeviceIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + attr { + name: "devices" + type: "list(string)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "AnonymousRandomSeedGenerator" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "AnonymousSeedGenerator" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "reshuffle" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "Any" + input_arg { + name: "input" + type: DT_BOOL + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ApplyAdaMax" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "v" + type_attr: "T" + is_ref: true + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAdadelta" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum_update" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ApplyAdagradDA" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_squared_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAdagradV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ApplyAdam" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "v" + type_attr: "T" + is_ref: true + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "beta2_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAddSign" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyCenteredRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mg" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyFtrl" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyFtrlV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyGradientDescent" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyMomentum" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyPowerSign" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "logbase" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyProximalAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyProximalGradientDescent" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApproximateEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "tolerance" + type: "float" + default_value { + f: 1e-05 + } + } + is_commutative: true +} +op { + name: "ArgMax" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "dimension" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "output_type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "output_type" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ArgMin" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "dimension" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "output_type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "output_type" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "AsString" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BOOL + } + } + } + attr { + name: "precision" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "scientific" + type: "bool" + default_value { + b: false + } + } + attr { + name: "shortest" + type: "bool" + default_value { + b: false + } + } + attr { + name: "width" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "fill" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Asin" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Asinh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Assert" + input_arg { + name: "condition" + type: DT_BOOL + } + input_arg { + name: "data" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "summarize" + type: "int" + default_value { + i: 3 + } + } + is_stateful: true +} +op { + name: "AssertCardinalityDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "cardinality" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "AssertNextDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "transformations" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Assign" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "validate_shape" + type: "bool" + default_value { + b: true + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + allows_uninitialized_input: true +} +op { + name: "AssignAdd" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "AssignAddVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "AssignSub" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "AssignSubVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "AssignVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "Atan" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Atan2" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Atanh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "AudioSpectrogram" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "spectrogram" + type: DT_FLOAT + } + attr { + name: "window_size" + type: "int" + } + attr { + name: "stride" + type: "int" + } + attr { + name: "magnitude_squared" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "AudioSummary" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type: DT_FLOAT + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "sample_rate" + type: "float" + } + attr { + name: "max_outputs" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + deprecation { + version: 15 + explanation: "Use AudioSummaryV2." + } +} +op { + name: "AudioSummaryV2" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_FLOAT + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "max_outputs" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } +} +op { + name: "AutoShardDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_workers" + type: DT_INT64 + } + input_arg { + name: "index" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "auto_shard_policy" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "num_replicas" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "AvgPool" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AvgPool3D" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AvgPool3DGrad" + input_arg { + name: "orig_input_shape" + type: DT_INT32 + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AvgPoolGrad" + input_arg { + name: "orig_input_shape" + type: DT_INT32 + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BandedTriangularSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + default_value { + b: true + } + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Barrier" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "BarrierClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "cancel_pending_enqueues" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BarrierIncompleteSize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "BarrierInsertMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "component_index" + type: "int" + } +} +op { + name: "BarrierReadySize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "BarrierTakeMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_elements" + type: DT_INT32 + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "keys" + type: DT_STRING + } + output_arg { + name: "values" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "allow_small_batch" + type: "bool" + default_value { + b: false + } + } + attr { + name: "wait_for_incomplete" + type: "bool" + default_value { + b: false + } + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "Batch" + input_arg { + name: "in_tensors" + type_list_attr: "T" + } + output_arg { + name: "batched_tensors" + type_list_attr: "T" + } + output_arg { + name: "batch_index" + type: DT_INT64 + } + output_arg { + name: "id" + type: DT_INT64 + } + attr { + name: "num_batch_threads" + type: "int" + } + attr { + name: "max_batch_size" + type: "int" + } + attr { + name: "max_enqueued_batches" + type: "int" + default_value { + i: 10 + } + } + attr { + name: "batch_timeout_micros" + type: "int" + } + attr { + name: "allowed_batch_sizes" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "grad_timeout_micros" + type: "int" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "batching_queue" + type: "string" + default_value { + s: "" + } + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "BatchCholesky" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use Cholesky instead." + } +} +op { + name: "BatchCholeskyGrad" + input_arg { + name: "l" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 13 + explanation: "Use CholeskyGrad instead." + } +} +op { + name: "BatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "BatchDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "parallel_copy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "BatchFFT" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use FFT" + } +} +op { + name: "BatchFFT2D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use FFT2D" + } +} +op { + name: "BatchFFT3D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use FFT3D" + } +} +op { + name: "BatchFunction" + input_arg { + name: "in_tensors" + type_list_attr: "Tin" + } + input_arg { + name: "captured_tensors" + type_list_attr: "Tcaptured" + } + output_arg { + name: "out_tensors" + type_list_attr: "Tout" + } + attr { + name: "f" + type: "func" + } + attr { + name: "num_batch_threads" + type: "int" + } + attr { + name: "max_batch_size" + type: "int" + } + attr { + name: "batch_timeout_micros" + type: "int" + } + attr { + name: "max_enqueued_batches" + type: "int" + default_value { + i: 10 + } + } + attr { + name: "allowed_batch_sizes" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "batching_queue" + type: "string" + default_value { + s: "" + } + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tcaptured" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "enable_large_batch_splitting" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BatchIFFT" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use IFFT" + } +} +op { + name: "BatchIFFT2D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use IFFT2D" + } +} +op { + name: "BatchIFFT3D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use IFFT3D" + } +} +op { + name: "BatchMatMul" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "adj_x" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adj_y" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BatchMatMulV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "adj_x" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adj_y" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BatchMatrixBandPart" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "num_lower" + type: DT_INT64 + } + input_arg { + name: "num_upper" + type: DT_INT64 + } + output_arg { + name: "band" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixBandPart" + } +} +op { + name: "BatchMatrixDeterminant" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixDeterminant instead." + } +} +op { + name: "BatchMatrixDiag" + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixDiag" + } +} +op { + name: "BatchMatrixDiagPart" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixDiagPart" + } +} +op { + name: "BatchMatrixInverse" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixInverse instead." + } +} +op { + name: "BatchMatrixSetDiag" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixSetDiag" + } +} +op { + name: "BatchMatrixSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixSolve instead." + } +} +op { + name: "BatchMatrixSolveLs" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + input_arg { + name: "l2_regularizer" + type: DT_DOUBLE + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + attr { + name: "fast" + type: "bool" + default_value { + b: true + } + } + deprecation { + version: 13 + explanation: "Use MatrixSolveLs instead." + } +} +op { + name: "BatchMatrixTriangularSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + default_value { + b: true + } + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixTriangularSolve instead." + } +} +op { + name: "BatchNormWithGlobalNormalization" + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "m" + type_attr: "T" + } + input_arg { + name: "v" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "gamma" + type_attr: "T" + } + output_arg { + name: "result" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "variance_epsilon" + type: "float" + } + attr { + name: "scale_after_normalization" + type: "bool" + } + deprecation { + version: 9 + explanation: "Use tf.nn.batch_normalization()" + } +} +op { + name: "BatchNormWithGlobalNormalizationGrad" + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "m" + type_attr: "T" + } + input_arg { + name: "v" + type_attr: "T" + } + input_arg { + name: "gamma" + type_attr: "T" + } + input_arg { + name: "backprop" + type_attr: "T" + } + output_arg { + name: "dx" + type_attr: "T" + } + output_arg { + name: "dm" + type_attr: "T" + } + output_arg { + name: "dv" + type_attr: "T" + } + output_arg { + name: "db" + type_attr: "T" + } + output_arg { + name: "dg" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "variance_epsilon" + type: "float" + } + attr { + name: "scale_after_normalization" + type: "bool" + } + deprecation { + version: 9 + explanation: "Use tf.nn.batch_normalization()" + } +} +op { + name: "BatchSelfAdjointEig" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 11 + explanation: "Use SelfAdjointEigV2 instead." + } +} +op { + name: "BatchSelfAdjointEigV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_v" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use SelfAdjointEigV2 instead." + } +} +op { + name: "BatchSvd" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "s" + type_attr: "T" + } + output_arg { + name: "u" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_uv" + type: "bool" + default_value { + b: true + } + } + attr { + name: "full_matrices" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + deprecation { + version: 13 + explanation: "Use Svd instead." + } +} +op { + name: "BatchToSpace" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "crops" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BatchToSpaceND" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "block_shape" + type_attr: "Tblock_shape" + } + input_arg { + name: "crops" + type_attr: "Tcrops" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tblock_shape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tcrops" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BesselI0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselI0e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselI1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselI1e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselJ0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselJ1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK0e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK1e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselY0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselY1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Betainc" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BiasAdd" + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "bias" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } +} +op { + name: "BiasAddGrad" + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } +} +op { + name: "BiasAddV1" + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "bias" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Bincount" + input_arg { + name: "arr" + type: DT_INT32 + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "bins" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Bitcast" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT64 + type: DT_INT32 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + type: DT_INT8 + type: DT_INT16 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT16 + type: DT_QUINT16 + type: DT_QINT32 + } + } + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT64 + type: DT_INT32 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + type: DT_INT8 + type: DT_INT16 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT16 + type: DT_QUINT16 + type: DT_QINT32 + } + } + } +} +op { + name: "BitwiseAnd" + 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_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_commutative: true +} +op { + name: "BitwiseOr" + 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_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_commutative: true +} +op { + name: "BitwiseXor" + 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_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_commutative: true +} +op { + name: "BlockLSTM" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "i" + type_attr: "T" + } + output_arg { + name: "cs" + type_attr: "T" + } + output_arg { + name: "f" + type_attr: "T" + } + output_arg { + name: "o" + type_attr: "T" + } + output_arg { + name: "ci" + type_attr: "T" + } + output_arg { + name: "co" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "forget_bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "cell_clip" + type: "float" + default_value { + f: 3 + } + } + attr { + name: "use_peephole" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BlockLSTMGrad" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "i" + type_attr: "T" + } + input_arg { + name: "cs" + type_attr: "T" + } + input_arg { + name: "f" + type_attr: "T" + } + input_arg { + name: "o" + type_attr: "T" + } + input_arg { + name: "ci" + type_attr: "T" + } + input_arg { + name: "co" + type_attr: "T" + } + input_arg { + name: "h" + type_attr: "T" + } + input_arg { + name: "cs_grad" + type_attr: "T" + } + input_arg { + name: "h_grad" + type_attr: "T" + } + output_arg { + name: "x_grad" + type_attr: "T" + } + output_arg { + name: "cs_prev_grad" + type_attr: "T" + } + output_arg { + name: "h_prev_grad" + type_attr: "T" + } + output_arg { + name: "w_grad" + type_attr: "T" + } + output_arg { + name: "wci_grad" + type_attr: "T" + } + output_arg { + name: "wcf_grad" + type_attr: "T" + } + output_arg { + name: "wco_grad" + type_attr: "T" + } + output_arg { + name: "b_grad" + type_attr: "T" + } + attr { + name: "use_peephole" + type: "bool" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BlockLSTMGradV2" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "i" + type_attr: "T" + } + input_arg { + name: "cs" + type_attr: "T" + } + input_arg { + name: "f" + type_attr: "T" + } + input_arg { + name: "o" + type_attr: "T" + } + input_arg { + name: "ci" + type_attr: "T" + } + input_arg { + name: "co" + type_attr: "T" + } + input_arg { + name: "h" + type_attr: "T" + } + input_arg { + name: "cs_grad" + type_attr: "T" + } + input_arg { + name: "h_grad" + type_attr: "T" + } + output_arg { + name: "x_grad" + type_attr: "T" + } + output_arg { + name: "cs_prev_grad" + type_attr: "T" + } + output_arg { + name: "h_prev_grad" + type_attr: "T" + } + output_arg { + name: "w_grad" + type_attr: "T" + } + output_arg { + name: "wci_grad" + type_attr: "T" + } + output_arg { + name: "wcf_grad" + type_attr: "T" + } + output_arg { + name: "wco_grad" + type_attr: "T" + } + output_arg { + name: "b_grad" + type_attr: "T" + } + attr { + name: "use_peephole" + type: "bool" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BlockLSTMV2" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "i" + type_attr: "T" + } + output_arg { + name: "cs" + type_attr: "T" + } + output_arg { + name: "f" + type_attr: "T" + } + output_arg { + name: "o" + type_attr: "T" + } + output_arg { + name: "ci" + type_attr: "T" + } + output_arg { + name: "co" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "cell_clip" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "use_peephole" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BoostedTreesAggregateStats" + input_arg { + name: "node_ids" + type: DT_INT32 + } + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "hessians" + type: DT_FLOAT + } + input_arg { + name: "feature" + type: DT_INT32 + } + output_arg { + name: "stats_summary" + type: DT_FLOAT + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesBucketize" + input_arg { + name: "float_values" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "bucket_boundaries" + type: DT_FLOAT + number_attr: "num_features" + } + output_arg { + name: "buckets" + type: DT_INT32 + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } +} +op { + name: "BoostedTreesCalculateBestFeatureSplit" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summary" + type: DT_FLOAT + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + output_arg { + name: "gains" + type: DT_FLOAT + } + output_arg { + name: "feature_dimensions" + type: DT_INT32 + } + output_arg { + name: "thresholds" + type: DT_INT32 + } + output_arg { + name: "left_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "right_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "split_with_default_directions" + type: DT_STRING + } + attr { + name: "logits_dimension" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "split_type" + type: "string" + default_value { + s: "inequality" + } + allowed_values { + list { + s: "inequality" + s: "equality" + } + } + } +} +op { + name: "BoostedTreesCalculateBestFeatureSplitV2" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summaries_list" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "split_types" + type: DT_STRING + } + input_arg { + name: "candidate_feature_ids" + type: DT_INT32 + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + output_arg { + name: "gains" + type: DT_FLOAT + } + output_arg { + name: "feature_ids" + type: DT_INT32 + } + output_arg { + name: "feature_dimensions" + type: DT_INT32 + } + output_arg { + name: "thresholds" + type: DT_INT32 + } + output_arg { + name: "left_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "right_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "split_with_default_directions" + type: DT_STRING + } + attr { + name: "num_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesCalculateBestGainsPerFeature" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summary_list" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids_list" + type: DT_INT32 + number_attr: "num_features" + } + output_arg { + name: "gains_list" + type: DT_FLOAT + number_attr: "num_features" + } + output_arg { + name: "thresholds_list" + type: DT_INT32 + number_attr: "num_features" + } + output_arg { + name: "left_node_contribs_list" + type: DT_FLOAT + number_attr: "num_features" + } + output_arg { + name: "right_node_contribs_list" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_features" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesCenterBias" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "mean_gradients" + type: DT_FLOAT + } + input_arg { + name: "mean_hessians" + type: DT_FLOAT + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + output_arg { + name: "continue_centering" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "BoostedTreesCreateEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "stamp_token" + type: DT_INT64 + } + input_arg { + name: "tree_ensemble_serialized" + type: DT_STRING + } + is_stateful: true +} +op { + name: "BoostedTreesCreateQuantileStreamResource" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "epsilon" + type: DT_FLOAT + } + input_arg { + name: "num_streams" + type: DT_INT64 + } + attr { + name: "max_elements" + type: "int" + default_value { + i: 1099511627776 + } + } + is_stateful: true +} +op { + name: "BoostedTreesDeserializeEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "stamp_token" + type: DT_INT64 + } + input_arg { + name: "tree_ensemble_serialized" + type: DT_STRING + } + is_stateful: true +} +op { + name: "BoostedTreesEnsembleResourceHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "BoostedTreesExampleDebugOutputs" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "bucketized_features" + type: DT_INT32 + number_attr: "num_bucketized_features" + } + output_arg { + name: "examples_debug_outputs_serialized" + type: DT_STRING + } + attr { + name: "num_bucketized_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "BoostedTreesFlushQuantileSummaries" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "summaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesGetEnsembleStates" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + output_arg { + name: "stamp_token" + type: DT_INT64 + } + output_arg { + name: "num_trees" + type: DT_INT32 + } + output_arg { + name: "num_finalized_trees" + type: DT_INT32 + } + output_arg { + name: "num_attempted_layers" + type: DT_INT32 + } + output_arg { + name: "last_layer_nodes_range" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "BoostedTreesMakeQuantileSummaries" + input_arg { + name: "float_values" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "example_weights" + type: DT_FLOAT + } + input_arg { + name: "epsilon" + type: DT_FLOAT + } + output_arg { + name: "summaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } +} +op { + name: "BoostedTreesMakeStatsSummary" + input_arg { + name: "node_ids" + type: DT_INT32 + } + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "hessians" + type: DT_FLOAT + } + input_arg { + name: "bucketized_features_list" + type: DT_INT32 + number_attr: "num_features" + } + output_arg { + name: "stats_summary" + type: DT_FLOAT + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_features" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesPredict" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "bucketized_features" + type: DT_INT32 + number_attr: "num_bucketized_features" + } + output_arg { + name: "logits" + type: DT_FLOAT + } + attr { + name: "num_bucketized_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceAddSummaries" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "summaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceDeserialize" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "bucket_boundaries" + type: DT_FLOAT + number_attr: "num_streams" + } + attr { + name: "num_streams" + type: "int" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceFlush" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "num_buckets" + type: DT_INT64 + } + attr { + name: "generate_quantiles" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceGetBucketBoundaries" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "bucket_boundaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "BoostedTreesSerializeEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + output_arg { + name: "stamp_token" + type: DT_INT64 + } + output_arg { + name: "tree_ensemble_serialized" + type: DT_STRING + } + is_stateful: true +} +op { + name: "BoostedTreesSparseAggregateStats" + input_arg { + name: "node_ids" + type: DT_INT32 + } + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "hessians" + type: DT_FLOAT + } + input_arg { + name: "feature_indices" + type: DT_INT32 + } + input_arg { + name: "feature_values" + type: DT_INT32 + } + input_arg { + name: "feature_shape" + type: DT_INT32 + } + output_arg { + name: "stats_summary_indices" + type: DT_INT32 + } + output_arg { + name: "stats_summary_values" + type: DT_FLOAT + } + output_arg { + name: "stats_summary_shape" + type: DT_INT32 + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesSparseCalculateBestFeatureSplit" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summary_indices" + type: DT_INT32 + } + input_arg { + name: "stats_summary_values" + type: DT_FLOAT + } + input_arg { + name: "stats_summary_shape" + type: DT_INT32 + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + output_arg { + name: "gains" + type: DT_FLOAT + } + output_arg { + name: "feature_dimensions" + type: DT_INT32 + } + output_arg { + name: "thresholds" + type: DT_INT32 + } + output_arg { + name: "left_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "right_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "split_with_default_directions" + type: DT_STRING + } + attr { + name: "logits_dimension" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "split_type" + type: "string" + default_value { + s: "inequality" + } + allowed_values { + list { + s: "inequality" + } + } + } +} +op { + name: "BoostedTreesTrainingPredict" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "cached_tree_ids" + type: DT_INT32 + } + input_arg { + name: "cached_node_ids" + type: DT_INT32 + } + input_arg { + name: "bucketized_features" + type: DT_INT32 + number_attr: "num_bucketized_features" + } + output_arg { + name: "partial_logits" + type: DT_FLOAT + } + output_arg { + name: "tree_ids" + type: DT_INT32 + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + attr { + name: "num_bucketized_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "BoostedTreesUpdateEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "feature_ids" + type: DT_INT32 + } + input_arg { + name: "node_ids" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "gains" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "thresholds" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "left_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "right_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "max_depth" + type: DT_INT32 + } + input_arg { + name: "learning_rate" + type: DT_FLOAT + } + attr { + name: "pruning_mode" + type: "int" + has_minimum: true + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesUpdateEnsembleV2" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "feature_ids" + type: DT_INT32 + number_attr: "num_groups" + } + input_arg { + name: "dimension_ids" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "node_ids" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "gains" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "thresholds" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "left_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "right_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "split_types" + type: DT_STRING + number_attr: "num_features" + } + input_arg { + name: "max_depth" + type: DT_INT32 + } + input_arg { + name: "learning_rate" + type: DT_FLOAT + } + input_arg { + name: "pruning_mode" + type: DT_INT32 + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + attr { + name: "logits_dimension" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "num_groups" + type: "int" + default_value { + i: 1 + } + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "BroadcastArgs" + input_arg { + name: "s0" + type_attr: "T" + } + input_arg { + name: "s1" + type_attr: "T" + } + output_arg { + name: "r0" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BroadcastGradientArgs" + input_arg { + name: "s0" + type_attr: "T" + } + input_arg { + name: "s1" + type_attr: "T" + } + output_arg { + name: "r0" + type_attr: "T" + } + output_arg { + name: "r1" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BroadcastTo" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Bucketize" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "boundaries" + type: "list(float)" + } +} +op { + name: "BytesProducedStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "CSRSparseMatrixComponents" + input_arg { + name: "csr_sparse_matrix" + type: DT_VARIANT + } + input_arg { + name: "index" + type: DT_INT32 + } + output_arg { + name: "row_ptrs" + type: DT_INT32 + } + output_arg { + name: "col_inds" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "type" + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CSRSparseMatrixToDense" + input_arg { + name: "sparse_input" + type: DT_VARIANT + } + output_arg { + name: "dense_output" + type_attr: "type" + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CSRSparseMatrixToSparseTensor" + input_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type_attr: "type" + } + output_arg { + name: "dense_shape" + type: DT_INT64 + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CSVDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "header" + type: DT_BOOL + } + input_arg { + name: "field_delim" + type: DT_STRING + } + input_arg { + name: "use_quote_delim" + type: DT_BOOL + } + input_arg { + name: "na_value" + type: DT_STRING + } + input_arg { + name: "select_cols" + type: DT_INT64 + } + input_arg { + name: "record_defaults" + type_list_attr: "output_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "CSVDatasetV2" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "header" + type: DT_BOOL + } + input_arg { + name: "field_delim" + type: DT_STRING + } + input_arg { + name: "use_quote_delim" + type: DT_BOOL + } + input_arg { + name: "na_value" + type: DT_STRING + } + input_arg { + name: "select_cols" + type: DT_INT64 + } + input_arg { + name: "record_defaults" + type_list_attr: "output_types" + } + input_arg { + name: "exclude_cols" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "CTCBeamSearchDecoder" + input_arg { + name: "inputs" + type_attr: "T" + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "decoded_indices" + type: DT_INT64 + number_attr: "top_paths" + } + output_arg { + name: "decoded_values" + type: DT_INT64 + number_attr: "top_paths" + } + output_arg { + name: "decoded_shape" + type: DT_INT64 + number_attr: "top_paths" + } + output_arg { + name: "log_probability" + type_attr: "T" + } + attr { + name: "beam_width" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "top_paths" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "merge_repeated" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CTCGreedyDecoder" + input_arg { + name: "inputs" + type_attr: "T" + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "decoded_indices" + type: DT_INT64 + } + output_arg { + name: "decoded_values" + type: DT_INT64 + } + output_arg { + name: "decoded_shape" + type: DT_INT64 + } + output_arg { + name: "log_probability" + type_attr: "T" + } + attr { + name: "merge_repeated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CTCLoss" + input_arg { + name: "inputs" + type_attr: "T" + } + input_arg { + name: "labels_indices" + type: DT_INT64 + } + input_arg { + name: "labels_values" + type: DT_INT32 + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "loss" + type_attr: "T" + } + output_arg { + name: "gradient" + type_attr: "T" + } + attr { + name: "preprocess_collapse_repeated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "ctc_merge_repeated" + type: "bool" + default_value { + b: true + } + } + attr { + name: "ignore_longer_outputs_than_inputs" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CTCLossV2" + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "labels_indices" + type: DT_INT64 + } + input_arg { + name: "labels_values" + type: DT_INT32 + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "loss" + type: DT_FLOAT + } + output_arg { + name: "gradient" + type: DT_FLOAT + } + attr { + name: "preprocess_collapse_repeated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "ctc_merge_repeated" + type: "bool" + default_value { + b: true + } + } + attr { + name: "ignore_longer_outputs_than_inputs" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "CacheDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "CacheDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "cache" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Case" + input_arg { + name: "branch_index" + type: DT_INT32 + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "branches" + type: "list(func)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "Cast" + input_arg { + name: "x" + type_attr: "SrcT" + } + output_arg { + name: "y" + type_attr: "DstT" + } + attr { + name: "SrcT" + type: "type" + } + attr { + name: "DstT" + type: "type" + } + attr { + name: "Truncate" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "Ceil" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CheckNumerics" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "message" + type: "string" + } + is_stateful: true +} +op { + name: "CheckNumericsV2" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "message" + type: "string" + } + is_stateful: true +} +op { + name: "Cholesky" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CholeskyGrad" + input_arg { + name: "l" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ChooseFastestBranchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "ratio_numerator" + type: DT_INT64 + } + input_arg { + name: "ratio_denominator" + type: DT_INT64 + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "num_elements_per_branch" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "branches" + type: "list(func)" + has_minimum: true + minimum: 1 + } + attr { + name: "other_arguments_lengths" + type: "list(int)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ChooseFastestDataset" + input_arg { + name: "input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "num_experiments" + type: "int" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ClipByValue" + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "clip_value_min" + type_attr: "T" + } + input_arg { + name: "clip_value_max" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "CloseSummaryWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "CollectiveBcastRecv" + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveBcastSend" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveGather" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveGatherV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_size" + type: DT_INT32 + } + input_arg { + name: "group_key" + type: DT_INT32 + } + input_arg { + name: "instance_key" + type: DT_INT32 + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectivePermute" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "source_target_pairs" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "CollectiveReduce" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "merge_op" + type: "string" + allowed_values { + list { + s: "Min" + s: "Max" + s: "Mul" + s: "Add" + } + } + } + attr { + name: "final_op" + type: "string" + allowed_values { + list { + s: "Id" + s: "Div" + } + } + } + attr { + name: "subdiv_offsets" + type: "list(int)" + } + attr { + name: "wait_for" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveReduceV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_size" + type: DT_INT32 + } + input_arg { + name: "group_key" + type: DT_INT32 + } + input_arg { + name: "instance_key" + type: DT_INT32 + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "merge_op" + type: "string" + allowed_values { + list { + s: "Min" + s: "Max" + s: "Mul" + s: "Add" + } + } + } + attr { + name: "final_op" + type: "string" + allowed_values { + list { + s: "Id" + s: "Div" + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CombinedNonMaxSuppression" + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "max_output_size_per_class" + type: DT_INT32 + } + input_arg { + name: "max_total_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type: DT_FLOAT + } + input_arg { + name: "score_threshold" + type: DT_FLOAT + } + output_arg { + name: "nmsed_boxes" + type: DT_FLOAT + } + output_arg { + name: "nmsed_scores" + type: DT_FLOAT + } + output_arg { + name: "nmsed_classes" + type: DT_FLOAT + } + output_arg { + name: "valid_detections" + type: DT_INT32 + } + attr { + name: "pad_per_class" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clip_boxes" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "CompareAndBitpack" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "threshold" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_UINT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Complex" + input_arg { + name: "real" + type_attr: "T" + } + input_arg { + name: "imag" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ComplexAbs" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CompressElement" + input_arg { + name: "components" + type_list_attr: "input_types" + } + output_arg { + name: "compressed" + type: DT_VARIANT + } + attr { + name: "input_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ComputeAccidentalHits" + input_arg { + name: "true_classes" + type: DT_INT64 + } + input_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "ids" + type: DT_INT64 + } + output_arg { + name: "weights" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "ComputeBatchSize" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "batch_size" + type: DT_INT64 + } +} +op { + name: "Concat" + input_arg { + name: "concat_dim" + type: DT_INT32 + } + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "ConcatOffset" + input_arg { + name: "concat_dim" + type: DT_INT32 + } + input_arg { + name: "shape" + type: DT_INT32 + number_attr: "N" + } + output_arg { + name: "offset" + type: DT_INT32 + number_attr: "N" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } +} +op { + name: "ConcatV2" + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ConcatenateDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "another_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ConditionalAccumulator" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reduction_type" + type: "string" + default_value { + s: "MEAN" + } + allowed_values { + list { + s: "MEAN" + s: "SUM" + } + } + } + is_stateful: true +} +op { + name: "ConfigureDistributedTPU" + output_arg { + name: "topology" + type: DT_STRING + } + attr { + name: "embedding_config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tpu_embedding_config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "is_global_init" + type: "bool" + default_value { + b: false + } + } + attr { + name: "enable_whole_mesh_compilations" + type: "bool" + default_value { + b: false + } + } + attr { + name: "compilation_failure_closes_chips" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ConfigureTPUEmbedding" + attr { + name: "config" + type: "string" + } + is_stateful: true +} +op { + name: "Conj" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_VARIANT + } + } + } +} +op { + name: "ConjugateTranspose" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "perm" + type_attr: "Tperm" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tperm" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Const" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "value" + type: "tensor" + } + attr { + name: "dtype" + type: "type" + } +} +op { + name: "ConsumeMutexLock" + input_arg { + name: "mutex_lock" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "ControlTrigger" +} +op { + name: "Conv2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "use_cudnn_on_gpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv2DBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter_sizes" + type: DT_INT32 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "use_cudnn_on_gpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv2DBackpropInput" + input_arg { + name: "input_sizes" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "use_cudnn_on_gpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv3D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv3DBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + deprecation { + version: 10 + explanation: "Use Conv3DBackpropFilterV2" + } +} +op { + name: "Conv3DBackpropFilterV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter_sizes" + type: DT_INT32 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv3DBackpropInput" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + deprecation { + version: 10 + explanation: "Use Conv3DBackpropInputV2" + } +} +op { + name: "Conv3DBackpropInputV2" + input_arg { + name: "input_sizes" + type_attr: "Tshape" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Copy" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_ops_spec" + type: "list(string)" + default_value { + list { + } + } + } + allows_uninitialized_input: true +} +op { + name: "CopyHost" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_ops_spec" + type: "list(string)" + default_value { + list { + } + } + } + allows_uninitialized_input: true +} +op { + name: "Cos" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Cosh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CountUpTo" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "limit" + type: "int" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "CreateSummaryDbWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "db_uri" + type: DT_STRING + } + input_arg { + name: "experiment_name" + type: DT_STRING + } + input_arg { + name: "run_name" + type: DT_STRING + } + input_arg { + name: "user_name" + type: DT_STRING + } + is_stateful: true +} +op { + name: "CreateSummaryFileWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "logdir" + type: DT_STRING + } + input_arg { + name: "max_queue" + type: DT_INT32 + } + input_arg { + name: "flush_millis" + type: DT_INT32 + } + input_arg { + name: "filename_suffix" + type: DT_STRING + } + is_stateful: true +} +op { + name: "CropAndResize" + input_arg { + name: "image" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "box_ind" + type: DT_INT32 + } + input_arg { + name: "crop_size" + type: DT_INT32 + } + output_arg { + name: "crops" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "method" + type: "string" + default_value { + s: "bilinear" + } + allowed_values { + list { + s: "bilinear" + s: "nearest" + } + } + } + attr { + name: "extrapolation_value" + type: "float" + default_value { + f: 0 + } + } +} +op { + name: "CropAndResizeGradBoxes" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "image" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "box_ind" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "method" + type: "string" + default_value { + s: "bilinear" + } + allowed_values { + list { + s: "bilinear" + } + } + } +} +op { + name: "CropAndResizeGradImage" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "box_ind" + type: DT_INT32 + } + input_arg { + name: "image_size" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + } + } + } + attr { + name: "method" + type: "string" + default_value { + s: "bilinear" + } + allowed_values { + list { + s: "bilinear" + s: "nearest" + } + } + } +} +op { + name: "Cross" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "CrossReplicaSum" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_assignment" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_INT32 + type: DT_UINT32 + } + } + } +} +op { + name: "CudnnRNN" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_h" + type_attr: "T" + } + output_arg { + name: "output_c" + type_attr: "T" + } + output_arg { + name: "reserve_space" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "CudnnRNNBackprop" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "output" + type_attr: "T" + } + input_arg { + name: "output_h" + type_attr: "T" + } + input_arg { + name: "output_c" + type_attr: "T" + } + input_arg { + name: "output_backprop" + type_attr: "T" + } + input_arg { + name: "output_h_backprop" + type_attr: "T" + } + input_arg { + name: "output_c_backprop" + type_attr: "T" + } + input_arg { + name: "reserve_space" + type_attr: "T" + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_h_backprop" + type_attr: "T" + } + output_arg { + name: "input_c_backprop" + type_attr: "T" + } + output_arg { + name: "params_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "CudnnRNNBackpropV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "output" + type_attr: "T" + } + input_arg { + name: "output_h" + type_attr: "T" + } + input_arg { + name: "output_c" + type_attr: "T" + } + input_arg { + name: "output_backprop" + type_attr: "T" + } + input_arg { + name: "output_h_backprop" + type_attr: "T" + } + input_arg { + name: "output_c_backprop" + type_attr: "T" + } + input_arg { + name: "reserve_space" + type_attr: "T" + } + input_arg { + name: "host_reserved" + type: DT_INT8 + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_h_backprop" + type_attr: "T" + } + output_arg { + name: "input_c_backprop" + type_attr: "T" + } + output_arg { + name: "params_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "CudnnRNNBackpropV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "sequence_lengths" + type: DT_INT32 + } + input_arg { + name: "output" + type_attr: "T" + } + input_arg { + name: "output_h" + type_attr: "T" + } + input_arg { + name: "output_c" + type_attr: "T" + } + input_arg { + name: "output_backprop" + type_attr: "T" + } + input_arg { + name: "output_h_backprop" + type_attr: "T" + } + input_arg { + name: "output_c_backprop" + type_attr: "T" + } + input_arg { + name: "reserve_space" + type_attr: "T" + } + input_arg { + name: "host_reserved" + type: DT_INT8 + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_h_backprop" + type_attr: "T" + } + output_arg { + name: "input_c_backprop" + type_attr: "T" + } + output_arg { + name: "params_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "time_major" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "CudnnRNNCanonicalToParams" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params" + } + input_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params" + } + output_arg { + name: "params" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNCanonicalToParamsV2" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params_weights" + } + input_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params_biases" + } + output_arg { + name: "params" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params_weights" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_params_biases" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNParamsSize" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + output_arg { + name: "params_size" + type_attr: "S" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNParamsToCanonical" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params" + } + output_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNParamsToCanonicalV2" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params_weights" + } + output_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params_biases" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params_weights" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_params_biases" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_h" + type_attr: "T" + } + output_arg { + name: "output_c" + type_attr: "T" + } + output_arg { + name: "reserve_space" + type_attr: "T" + } + output_arg { + name: "host_reserved" + type: DT_INT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "CudnnRNNV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "sequence_lengths" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_h" + type_attr: "T" + } + output_arg { + name: "output_c" + type_attr: "T" + } + output_arg { + name: "reserve_space" + type_attr: "T" + } + output_arg { + name: "host_reserved" + type: DT_INT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } + attr { + name: "time_major" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "Cumprod" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "out" + type_attr: "T" + } + attr { + name: "exclusive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Cumsum" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "out" + type_attr: "T" + } + attr { + name: "exclusive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "CumulativeLogsumexp" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "out" + type_attr: "T" + } + attr { + name: "exclusive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "DataFormatDimMap" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "src_format" + type: "string" + default_value { + s: "NHWC" + } + } + attr { + name: "dst_format" + type: "string" + default_value { + s: "NCHW" + } + } +} +op { + name: "DataFormatVecPermute" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "src_format" + type: "string" + default_value { + s: "NHWC" + } + } + attr { + name: "dst_format" + type: "string" + default_value { + s: "NCHW" + } + } +} +op { + name: "DataServiceDataset" + input_arg { + name: "dataset_id" + type: DT_INT64 + } + input_arg { + name: "processing_mode" + type: DT_STRING + } + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "protocol" + type: DT_STRING + } + input_arg { + name: "job_name" + type: DT_STRING + } + input_arg { + name: "max_outstanding_requests" + type: DT_INT64 + } + input_arg { + name: "iteration_counter" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "task_refresh_interval_hint_ms" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "DatasetCardinality" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "cardinality" + type: DT_INT64 + } +} +op { + name: "DatasetFromGraph" + input_arg { + name: "graph_def" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } +} +op { + name: "DatasetToGraph" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "graph" + type: DT_STRING + } + attr { + name: "stateful_whitelist" + type: "list(string)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "allow_stateful" + type: "bool" + default_value { + b: false + } + } + attr { + name: "strip_device_assignment" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DatasetToGraphV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "graph" + type: DT_STRING + } + attr { + name: "external_state_policy" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "strip_device_assignment" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DatasetToSingleElement" + input_arg { + name: "dataset" + type: DT_VARIANT + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "DatasetToTFRecord" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + is_stateful: true +} +op { + name: "Dawsn" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "DebugGradientIdentity" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "DebugGradientRefIdentity" + input_arg { + name: "input" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "DebugIdentity" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "device_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "gated_grpc" + type: "bool" + default_value { + b: false + } + } + allows_uninitialized_input: true +} +op { + name: "DebugIdentityV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tfdbg_context_id" + type: "string" + default_value { + s: "" + } + } + attr { + name: "op_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "output_slot" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "tensor_debug_mode" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "circular_buffer_size" + type: "int" + default_value { + i: 1000 + } + } + attr { + name: "tfdbg_run_id" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "DebugNanCount" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } + attr { + name: "device_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "gated_grpc" + type: "bool" + default_value { + b: false + } + } + allows_uninitialized_input: true +} +op { + name: "DebugNumericSummary" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_DOUBLE + } + attr { + name: "T" + type: "type" + } + attr { + name: "device_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "lower_bound" + type: "float" + default_value { + f: -inf + } + } + attr { + name: "upper_bound" + type: "float" + default_value { + f: inf + } + } + attr { + name: "mute_if_healthy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "gated_grpc" + type: "bool" + default_value { + b: false + } + } + allows_uninitialized_input: true +} +op { + name: "DebugNumericSummaryV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_debug_mode" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "tensor_id" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "DecodeAndCropJpeg" + input_arg { + name: "contents" + type: DT_STRING + } + input_arg { + name: "crop_window" + type: DT_INT32 + } + output_arg { + name: "image" + type: DT_UINT8 + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ratio" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "fancy_upscaling" + type: "bool" + default_value { + b: true + } + } + attr { + name: "try_recover_truncated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "acceptable_fraction" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "dct_method" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "DecodeBase64" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } +} +op { + name: "DecodeBmp" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type: DT_UINT8 + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "DecodeCSV" + input_arg { + name: "records" + type: DT_STRING + } + input_arg { + name: "record_defaults" + type_list_attr: "OUT_TYPE" + } + output_arg { + name: "output" + type_list_attr: "OUT_TYPE" + } + attr { + name: "OUT_TYPE" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "field_delim" + type: "string" + default_value { + s: "," + } + } + attr { + name: "use_quote_delim" + type: "bool" + default_value { + b: true + } + } + attr { + name: "na_value" + type: "string" + default_value { + s: "" + } + } + attr { + name: "select_cols" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "DecodeCompressed" + input_arg { + name: "bytes" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "DecodeGif" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type: DT_UINT8 + } +} +op { + name: "DecodeImage" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type_attr: "dtype" + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT8 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + type: DT_FLOAT + } + } + } + attr { + name: "expand_animations" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "DecodeJSONExample" + input_arg { + name: "json_examples" + type: DT_STRING + } + output_arg { + name: "binary_examples" + type: DT_STRING + } +} +op { + name: "DecodeJpeg" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type: DT_UINT8 + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ratio" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "fancy_upscaling" + type: "bool" + default_value { + b: true + } + } + attr { + name: "try_recover_truncated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "acceptable_fraction" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "dct_method" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "DecodePaddedRaw" + input_arg { + name: "input_bytes" + type: DT_STRING + } + input_arg { + name: "fixed_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT16 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + } + } + } + attr { + name: "little_endian" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "DecodePng" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type_attr: "dtype" + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT8 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + } + } + } +} +op { + name: "DecodeProtoV2" + input_arg { + name: "bytes" + type: DT_STRING + } + output_arg { + name: "sizes" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "output_types" + } + attr { + name: "message_type" + type: "string" + } + attr { + name: "field_names" + type: "list(string)" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + } + attr { + name: "descriptor_source" + type: "string" + default_value { + s: "local://" + } + } + attr { + name: "message_format" + type: "string" + default_value { + s: "binary" + } + } + attr { + name: "sanitize" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DecodeRaw" + input_arg { + name: "bytes" + type: DT_STRING + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT16 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_BOOL + } + } + } + attr { + name: "little_endian" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "DecodeWav" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "audio" + type: DT_FLOAT + } + output_arg { + name: "sample_rate" + type: DT_INT32 + } + attr { + name: "desired_channels" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "desired_samples" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "DeepCopy" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "DeleteIterator" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteMemoryCache" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteMultiDeviceIterator" + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + input_arg { + name: "iterators" + type: DT_RESOURCE + number_attr: "N" + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + attr { + name: "N" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "DeleteRandomSeedGenerator" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteSeedGenerator" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteSessionTensor" + input_arg { + name: "handle" + type: DT_STRING + } + is_stateful: true +} +op { + name: "DenseBincount" + input_arg { + name: "input" + type_attr: "Tidx" + } + input_arg { + name: "size" + type_attr: "Tidx" + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "binary_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DenseCountSparseOutput" + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "weights" + type_attr: "output_type" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "output_type" + } + output_arg { + name: "output_dense_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "minlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "maxlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "binary_output" + type: "bool" + } + attr { + name: "output_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "DenseToCSRSparseMatrix" + input_arg { + name: "dense_input" + type_attr: "T" + } + input_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "sparse_output" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "DenseToDenseSetOperation" + input_arg { + name: "set1" + type_attr: "T" + } + input_arg { + name: "set2" + type_attr: "T" + } + output_arg { + name: "result_indices" + type: DT_INT64 + } + output_arg { + name: "result_values" + type_attr: "T" + } + output_arg { + name: "result_shape" + type: DT_INT64 + } + attr { + name: "set_operation" + type: "string" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "DenseToSparseBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "row_shape" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "DenseToSparseSetOperation" + input_arg { + name: "set1" + type_attr: "T" + } + input_arg { + name: "set2_indices" + type: DT_INT64 + } + input_arg { + name: "set2_values" + type_attr: "T" + } + input_arg { + name: "set2_shape" + type: DT_INT64 + } + output_arg { + name: "result_indices" + type: DT_INT64 + } + output_arg { + name: "result_values" + type_attr: "T" + } + output_arg { + name: "result_shape" + type: DT_INT64 + } + attr { + name: "set_operation" + type: "string" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "DepthToSpace" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "DepthwiseConv2dNative" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "DepthwiseConv2dNativeBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter_sizes" + type: DT_INT32 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "DepthwiseConv2dNativeBackpropInput" + input_arg { + name: "input_sizes" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Dequantize" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "min_range" + type: DT_FLOAT + } + input_arg { + name: "max_range" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "mode" + type: "string" + default_value { + s: "MIN_COMBINED" + } + allowed_values { + list { + s: "MIN_COMBINED" + s: "MIN_FIRST" + s: "SCALED" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "DeserializeIterator" + input_arg { + name: "resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "serialized" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeserializeManySparse" + input_arg { + name: "serialized_sparse" + type: DT_STRING + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "dtype" + } + output_arg { + name: "sparse_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } +} +op { + name: "DeserializeSparse" + input_arg { + name: "serialized_sparse" + type_attr: "Tserialized" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "dtype" + } + output_arg { + name: "sparse_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tserialized" + type: "type" + default_value { + type: DT_STRING + } + allowed_values { + list { + type: DT_STRING + type: DT_VARIANT + } + } + } +} +op { + name: "DestroyResourceOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "ignore_lookup_error" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "DestroyTemporaryVariable" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + output_arg { + name: "value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "var_name" + type: "string" + } +} +op { + name: "DeviceIndex" + output_arg { + name: "index" + type: DT_INT32 + } + attr { + name: "device_names" + type: "list(string)" + } +} +op { + name: "Diag" + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "DiagPart" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Digamma" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Dilation2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "Dilation2DBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "filter_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "Dilation2DBackpropInput" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "in_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "DirectedInterleaveDataset" + input_arg { + name: "selector_input_dataset" + type: DT_VARIANT + } + input_arg { + name: "data_input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "Div" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +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 { + name: "images" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + } + } + } +} +op { + name: "DrawBoundingBoxesV2" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "colors" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + } + } + } +} +op { + name: "DummyIterationCounter" + output_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "DummyMemoryCache" + output_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "DummySeedGenerator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "DynamicPartition" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "partitions" + type: DT_INT32 + } + output_arg { + name: "outputs" + type_attr: "T" + number_attr: "num_partitions" + } + attr { + name: "num_partitions" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "DynamicStitch" + input_arg { + name: "indices" + type: DT_INT32 + number_attr: "N" + } + input_arg { + name: "data" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "merged" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "EagerPyFunc" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "token" + type: "string" + } + attr { + name: "is_async" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "EditDistance" + input_arg { + name: "hypothesis_indices" + type: DT_INT64 + } + input_arg { + name: "hypothesis_values" + type_attr: "T" + } + input_arg { + name: "hypothesis_shape" + type: DT_INT64 + } + input_arg { + name: "truth_indices" + type: DT_INT64 + } + input_arg { + name: "truth_values" + type_attr: "T" + } + input_arg { + name: "truth_shape" + type: DT_INT64 + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "normalize" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Eig" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "e" + type_attr: "Tout" + } + output_arg { + name: "v" + type_attr: "Tout" + } + attr { + name: "compute_v" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Einsum" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "equation" + type: "string" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Elu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "EluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "outputs" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Empty" + input_arg { + name: "shape" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "init" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "EmptyTensorList" + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "max_num_elements" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "EmptyTensorMap" + output_arg { + name: "handle" + type: DT_VARIANT + } +} +op { + name: "EncodeBase64" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "pad" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "EncodeJpeg" + input_arg { + name: "image" + type: DT_UINT8 + } + output_arg { + name: "contents" + type: DT_STRING + } + attr { + name: "format" + type: "string" + default_value { + s: "" + } + allowed_values { + list { + s: "" + s: "grayscale" + s: "rgb" + } + } + } + attr { + name: "quality" + type: "int" + default_value { + i: 95 + } + } + attr { + name: "progressive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "optimize_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "chroma_downsampling" + type: "bool" + default_value { + b: true + } + } + attr { + name: "density_unit" + type: "string" + default_value { + s: "in" + } + allowed_values { + list { + s: "in" + s: "cm" + } + } + } + attr { + name: "x_density" + type: "int" + default_value { + i: 300 + } + } + attr { + name: "y_density" + type: "int" + default_value { + i: 300 + } + } + attr { + name: "xmp_metadata" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "EncodeJpegVariableQuality" + input_arg { + name: "images" + type: DT_UINT8 + } + input_arg { + name: "quality" + type: DT_INT32 + } + output_arg { + name: "contents" + type: DT_STRING + } +} +op { + name: "EncodePng" + input_arg { + name: "image" + type_attr: "T" + } + output_arg { + name: "contents" + type: DT_STRING + } + attr { + name: "compression" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_UINT8 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + } + } + } +} +op { + name: "EncodeProto" + input_arg { + name: "sizes" + type: DT_INT32 + } + input_arg { + name: "values" + type_list_attr: "Tinput_types" + } + output_arg { + name: "bytes" + type: DT_STRING + } + attr { + name: "field_names" + type: "list(string)" + } + attr { + name: "message_type" + type: "string" + } + attr { + name: "descriptor_source" + type: "string" + default_value { + s: "local://" + } + } + attr { + name: "Tinput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "EncodeWav" + input_arg { + name: "audio" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_INT32 + } + output_arg { + name: "contents" + type: DT_STRING + } +} +op { + name: "EnqueueTPUEmbeddingIntegerBatch" + input_arg { + name: "batch" + type: DT_INT32 + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "EnqueueTPUEmbeddingRaggedTensorBatch" + input_arg { + name: "sample_splits" + type_attr: "T1" + number_attr: "N" + } + input_arg { + name: "embedding_indices" + type_attr: "T2" + number_attr: "N" + } + input_arg { + name: "aggregation_weights" + type_attr: "T3" + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "T1" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T2" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T3" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "combiners" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "table_ids" + type: "list(int)" + } + attr { + name: "max_sequence_lengths" + type: "list(int)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "EnqueueTPUEmbeddingSparseBatch" + input_arg { + name: "sample_indices" + type_attr: "T1" + number_attr: "N" + } + input_arg { + name: "embedding_indices" + type_attr: "T2" + number_attr: "N" + } + input_arg { + name: "aggregation_weights" + type_attr: "T3" + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "T1" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T2" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T3" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "combiners" + type: "list(string)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "EnqueueTPUEmbeddingSparseTensorBatch" + input_arg { + name: "sample_indices" + type_attr: "T1" + number_attr: "N" + } + input_arg { + name: "embedding_indices" + type_attr: "T2" + number_attr: "N" + } + input_arg { + name: "aggregation_weights" + type_attr: "T3" + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "T1" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T2" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T3" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "combiners" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "table_ids" + type: "list(int)" + } + attr { + name: "max_sequence_lengths" + type: "list(int)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "EnsureShape" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Enter" + input_arg { + name: "data" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "frame_name" + type: "string" + } + attr { + name: "is_constant" + type: "bool" + default_value { + b: false + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } +} +op { + name: "Equal" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + } + attr { + name: "incompatible_shape_error" + type: "bool" + default_value { + b: true + } + } + is_commutative: true +} +op { + name: "Erf" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Erfc" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Erfinv" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "EuclideanNorm" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Exit" + input_arg { + name: "data" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Exp" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ExpandDims" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "dim" + type_attr: "Tdim" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tdim" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ExperimentalAssertNextDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "transformations" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalAutoShardDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_workers" + type: DT_INT64 + } + input_arg { + name: "index" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "auto_shard_policy" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalBytesProducedStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalCSVDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "header" + type: DT_BOOL + } + input_arg { + name: "field_delim" + type: DT_STRING + } + input_arg { + name: "use_quote_delim" + type: DT_BOOL + } + input_arg { + name: "na_value" + type: DT_STRING + } + input_arg { + name: "select_cols" + type: DT_INT64 + } + input_arg { + name: "record_defaults" + type_list_attr: "output_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalChooseFastestDataset" + input_arg { + name: "input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "num_experiments" + type: "int" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalDatasetCardinality" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "cardinality" + type: DT_INT64 + } +} +op { + name: "ExperimentalDatasetToTFRecord" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ExperimentalDenseToSparseBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "row_shape" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalDirectedInterleaveDataset" + input_arg { + name: "selector_input_dataset" + type: DT_VARIANT + } + input_arg { + name: "data_input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalGroupByReducerDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "init_func_other_arguments" + type_list_attr: "Tinit_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "finalize_func_other_arguments" + type_list_attr: "Tfinalize_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "init_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "finalize_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tinit_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tfinalize_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalGroupByWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "window_size_func_other_arguments" + type_list_attr: "Twindow_size_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "window_size_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Twindow_size_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalIgnoreErrorsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "log_warning" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalIteratorGetDevice" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "device" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ExperimentalLMDBDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalLatencyStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalMapAndBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalMapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalMatchingFilesDataset" + input_arg { + name: "patterns" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "ExperimentalMaxIntraOpParallelismDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "max_intra_op_parallelism" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalNonSerializableDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalParallelInterleaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "sloppy" + type: DT_BOOL + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalParseExampleDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalPrivateThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_threads" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalRandomDataset" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalRebatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_replicas" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_fallback" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ExperimentalScanDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "initial_state" + type_list_attr: "Tstate" + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Tstate" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalSetStatsAggregatorDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "stats_aggregator" + type: DT_RESOURCE + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "counter_prefix" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalSleepDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "sleep_microseconds" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalSlidingWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "window_size" + type: DT_INT64 + } + input_arg { + name: "window_shift" + type: DT_INT64 + } + input_arg { + name: "window_stride" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalSqlDataset" + input_arg { + name: "driver_name" + type: DT_STRING + } + input_arg { + name: "data_source_name" + type: DT_STRING + } + input_arg { + name: "query" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalStatsAggregatorHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ExperimentalStatsAggregatorSummary" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "summary" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ExperimentalTakeWhileDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "predicate" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "thread_pool" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalThreadPoolHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "num_threads" + type: "int" + } + attr { + name: "max_intra_op_parallelism" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "display_name" + type: "string" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ExperimentalUnbatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalUniqueDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Expint" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Expm1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ExtractGlimpse" + input_arg { + name: "input" + type: DT_FLOAT + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "offsets" + type: DT_FLOAT + } + output_arg { + name: "glimpse" + type: DT_FLOAT + } + attr { + name: "centered" + type: "bool" + default_value { + b: true + } + } + attr { + name: "normalized" + type: "bool" + default_value { + b: true + } + } + attr { + name: "uniform_noise" + type: "bool" + default_value { + b: true + } + } + attr { + name: "noise" + type: "string" + default_value { + s: "uniform" + } + } +} +op { + name: "ExtractGlimpseV2" + input_arg { + name: "input" + type: DT_FLOAT + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "offsets" + type: DT_FLOAT + } + output_arg { + name: "glimpse" + type: DT_FLOAT + } + attr { + name: "centered" + type: "bool" + default_value { + b: true + } + } + attr { + name: "normalized" + type: "bool" + default_value { + b: true + } + } + attr { + name: "uniform_noise" + type: "bool" + default_value { + b: true + } + } + attr { + name: "noise" + type: "string" + default_value { + s: "uniform" + } + } +} +op { + name: "ExtractImagePatches" + input_arg { + name: "images" + type_attr: "T" + } + output_arg { + name: "patches" + type_attr: "T" + } + attr { + name: "ksizes" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_BOOL + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "ExtractJpegShape" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image_shape" + type_attr: "output_type" + } + attr { + name: "output_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ExtractVolumePatches" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "patches" + type_attr: "T" + } + attr { + name: "ksizes" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "FFT" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FFT2D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FFT3D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FIFOQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "FIFOQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Fact" + output_arg { + name: "fact" + type: DT_STRING + } +} +op { + name: "FakeParam" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } +} +op { + name: "FakeQuantWithMinMaxArgs" + input_arg { + name: "inputs" + type: DT_FLOAT + } + output_arg { + name: "outputs" + type: DT_FLOAT + } + attr { + name: "min" + type: "float" + default_value { + f: -6 + } + } + attr { + name: "max" + type: "float" + default_value { + f: 6 + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxArgsGradient" + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "inputs" + type: DT_FLOAT + } + output_arg { + name: "backprops" + type: DT_FLOAT + } + attr { + name: "min" + type: "float" + default_value { + f: -6 + } + } + attr { + name: "max" + type: "float" + default_value { + f: 6 + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVars" + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "outputs" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVarsGradient" + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "backprops_wrt_input" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_min" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_max" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVarsPerChannel" + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "outputs" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVarsPerChannelGradient" + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "backprops_wrt_input" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_min" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_max" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQueue" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + is_stateful: true +} +op { + name: "Fill" + input_arg { + name: "dims" + type_attr: "index_type" + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "index_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FilterByLastComponentDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "FilterDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "predicate" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Fingerprint" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "method" + type: DT_STRING + } + output_arg { + name: "fingerprint" + type: DT_UINT8 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "FixedLengthRecordDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "header_bytes" + type: DT_INT64 + } + input_arg { + name: "record_bytes" + type: DT_INT64 + } + input_arg { + name: "footer_bytes" + type: DT_INT64 + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "FixedLengthRecordDatasetV2" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "header_bytes" + type: DT_INT64 + } + input_arg { + name: "record_bytes" + type: DT_INT64 + } + input_arg { + name: "footer_bytes" + type: DT_INT64 + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "compression_type" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "FixedLengthRecordReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "header_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "record_bytes" + type: "int" + } + attr { + name: "footer_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "hop_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use FixedLengthRecordReaderV2" + } + is_stateful: true +} +op { + name: "FixedLengthRecordReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "header_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "record_bytes" + type: "int" + } + attr { + name: "footer_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "hop_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "encoding" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "FixedUnigramCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "vocab_file" + type: "string" + default_value { + s: "" + } + } + attr { + name: "distortion" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "num_reserved_ids" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_shards" + type: "int" + default_value { + i: 1 + } + has_minimum: true + minimum: 1 + } + attr { + name: "shard" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "unigrams" + type: "list(float)" + default_value { + list { + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "FlatMapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Floor" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FloorDiv" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FloorMod" + 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_INT32 + type: DT_INT64 + type: DT_UINT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FlushSummaryWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "For" + input_arg { + name: "start" + type: DT_INT32 + } + input_arg { + name: "limit" + type: DT_INT32 + } + input_arg { + name: "delta" + type: DT_INT32 + } + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "body" + type: "func" + } +} +op { + name: "FractionalAvgPool" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + attr { + name: "pooling_ratio" + type: "list(float)" + has_minimum: true + minimum: 4 + } + attr { + name: "pseudo_random" + type: "bool" + default_value { + b: false + } + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "deterministic" + type: "bool" + default_value { + b: false + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FractionalAvgPoolGrad" + input_arg { + name: "orig_input_tensor_shape" + type: DT_INT64 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + input_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + input_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FractionalMaxPool" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + attr { + name: "pooling_ratio" + type: "list(float)" + has_minimum: true + minimum: 4 + } + attr { + name: "pseudo_random" + type: "bool" + default_value { + b: false + } + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "deterministic" + type: "bool" + default_value { + b: false + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FractionalMaxPoolGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + input_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + input_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FresnelCos" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FresnelSin" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FusedBatchNorm" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "T" + } + input_arg { + name: "offset" + type_attr: "T" + } + input_arg { + name: "mean" + type_attr: "T" + } + input_arg { + name: "variance" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "batch_mean" + type_attr: "T" + } + output_arg { + name: "batch_variance" + type_attr: "T" + } + output_arg { + name: "reserve_space_1" + type_attr: "T" + } + output_arg { + name: "reserve_space_2" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "exponential_avg_factor" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormGrad" + input_arg { + name: "y_backprop" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "T" + } + input_arg { + name: "reserve_space_1" + type_attr: "T" + } + input_arg { + name: "reserve_space_2" + type_attr: "T" + } + output_arg { + name: "x_backprop" + type_attr: "T" + } + output_arg { + name: "scale_backprop" + type_attr: "T" + } + output_arg { + name: "offset_backprop" + type_attr: "T" + } + output_arg { + name: "reserve_space_3" + type_attr: "T" + } + output_arg { + name: "reserve_space_4" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormGradV2" + input_arg { + name: "y_backprop" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "reserve_space_1" + type_attr: "U" + } + input_arg { + name: "reserve_space_2" + type_attr: "U" + } + output_arg { + name: "x_backprop" + type_attr: "T" + } + output_arg { + name: "scale_backprop" + type_attr: "U" + } + output_arg { + name: "offset_backprop" + type_attr: "U" + } + output_arg { + name: "reserve_space_3" + type_attr: "U" + } + output_arg { + name: "reserve_space_4" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormGradV3" + input_arg { + name: "y_backprop" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "reserve_space_1" + type_attr: "U" + } + input_arg { + name: "reserve_space_2" + type_attr: "U" + } + input_arg { + name: "reserve_space_3" + type_attr: "U" + } + output_arg { + name: "x_backprop" + type_attr: "T" + } + output_arg { + name: "scale_backprop" + type_attr: "U" + } + output_arg { + name: "offset_backprop" + type_attr: "U" + } + output_arg { + name: "reserve_space_4" + type_attr: "U" + } + output_arg { + name: "reserve_space_5" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "U" + } + input_arg { + name: "offset" + type_attr: "U" + } + input_arg { + name: "mean" + type_attr: "U" + } + input_arg { + name: "variance" + type_attr: "U" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "batch_mean" + type_attr: "U" + } + output_arg { + name: "batch_variance" + type_attr: "U" + } + output_arg { + name: "reserve_space_1" + type_attr: "U" + } + output_arg { + name: "reserve_space_2" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "exponential_avg_factor" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormV3" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "U" + } + input_arg { + name: "offset" + type_attr: "U" + } + input_arg { + name: "mean" + type_attr: "U" + } + input_arg { + name: "variance" + type_attr: "U" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "batch_mean" + type_attr: "U" + } + output_arg { + name: "batch_variance" + type_attr: "U" + } + output_arg { + name: "reserve_space_1" + type_attr: "U" + } + output_arg { + name: "reserve_space_2" + type_attr: "U" + } + output_arg { + name: "reserve_space_3" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "exponential_avg_factor" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedPadConv2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "FusedResizeAndPadConv2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "paddings" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "resize_align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "GRUBlockCell" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w_ru" + type_attr: "T" + } + input_arg { + name: "w_c" + type_attr: "T" + } + input_arg { + name: "b_ru" + type_attr: "T" + } + input_arg { + name: "b_c" + type_attr: "T" + } + output_arg { + name: "r" + type_attr: "T" + } + output_arg { + name: "u" + type_attr: "T" + } + output_arg { + name: "c" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } +} +op { + name: "GRUBlockCellGrad" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w_ru" + type_attr: "T" + } + input_arg { + name: "w_c" + type_attr: "T" + } + input_arg { + name: "b_ru" + type_attr: "T" + } + input_arg { + name: "b_c" + type_attr: "T" + } + input_arg { + name: "r" + type_attr: "T" + } + input_arg { + name: "u" + type_attr: "T" + } + input_arg { + name: "c" + type_attr: "T" + } + input_arg { + name: "d_h" + type_attr: "T" + } + output_arg { + name: "d_x" + type_attr: "T" + } + output_arg { + name: "d_h_prev" + type_attr: "T" + } + output_arg { + name: "d_c_bar" + type_attr: "T" + } + output_arg { + name: "d_r_bar_u_bar" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } +} +op { + name: "Gather" + input_arg { + name: "params" + type_attr: "Tparams" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "Tparams" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "Tparams" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "GatherNd" + input_arg { + name: "params" + type_attr: "Tparams" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "Tparams" + } + attr { + name: "Tparams" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "GatherV2" + input_arg { + name: "params" + type_attr: "Tparams" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "output" + type_attr: "Tparams" + } + attr { + name: "batch_dims" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "Tparams" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Taxis" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "GenerateBoundingBoxProposals" + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "bbox_deltas" + type: DT_FLOAT + } + input_arg { + name: "image_info" + type: DT_FLOAT + } + input_arg { + name: "anchors" + type: DT_FLOAT + } + input_arg { + name: "nms_threshold" + type: DT_FLOAT + } + input_arg { + name: "pre_nms_topn" + type: DT_INT32 + } + input_arg { + name: "min_size" + type: DT_FLOAT + } + output_arg { + name: "rois" + type: DT_FLOAT + } + output_arg { + name: "roi_probabilities" + type: DT_FLOAT + } + attr { + name: "post_nms_topn" + type: "int" + default_value { + i: 300 + } + } +} +op { + name: "GenerateVocabRemapping" + input_arg { + name: "new_vocab_file" + type: DT_STRING + } + input_arg { + name: "old_vocab_file" + type: DT_STRING + } + output_arg { + name: "remapping" + type: DT_INT64 + } + output_arg { + name: "num_present" + type: DT_INT32 + } + attr { + name: "new_vocab_offset" + type: "int" + has_minimum: true + } + attr { + name: "num_new_vocab" + type: "int" + has_minimum: true + } + attr { + name: "old_vocab_size" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } +} +op { + name: "GeneratorDataset" + input_arg { + name: "init_func_other_args" + type_list_attr: "Tinit_func_args" + } + input_arg { + name: "next_func_other_args" + type_list_attr: "Tnext_func_args" + } + input_arg { + name: "finalize_func_other_args" + type_list_attr: "Tfinalize_func_args" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "init_func" + type: "func" + } + attr { + name: "next_func" + type: "func" + } + attr { + name: "finalize_func" + type: "func" + } + attr { + name: "Tinit_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tnext_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tfinalize_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "GetSessionHandle" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "handle" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "GetSessionHandleV2" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "GetSessionTensor" + input_arg { + name: "handle" + type: DT_STRING + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "Greater" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "GreaterEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "GroupByReducerDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "init_func_other_arguments" + type_list_attr: "Tinit_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "finalize_func_other_arguments" + type_list_attr: "Tfinalize_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "init_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "finalize_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tinit_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tfinalize_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "GroupByWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "window_size_func_other_arguments" + type_list_attr: "Twindow_size_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "window_size_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Twindow_size_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "GuaranteeConst" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "HSVToRGB" + input_arg { + name: "images" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "HashTable" + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "HashTableV2" + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "HistogramFixedWidth" + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "value_range" + type_attr: "T" + } + input_arg { + name: "nbins" + type: DT_INT32 + } + output_arg { + name: "out" + type_attr: "dtype" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "HistogramSummary" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "HostConst" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "value" + type: "tensor" + } + attr { + name: "dtype" + type: "type" + } +} +op { + name: "IFFT" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IFFT2D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IFFT3D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IRFFT" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Treal" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IRFFT2D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Treal" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IRFFT3D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Treal" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Identity" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "IdentityN" + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "IdentityReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use IdentityReaderV2" + } + is_stateful: true +} +op { + name: "IdentityReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "If" + input_arg { + name: "cond" + type_attr: "Tcond" + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tcond" + type: "type" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "then_branch" + type: "func" + } + attr { + name: "else_branch" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "Igamma" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IgammaGradA" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Igammac" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IgnoreErrorsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "log_warning" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "Imag" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ImageProjectiveTransformV2" + input_arg { + name: "images" + type_attr: "dtype" + } + input_arg { + name: "transforms" + type: DT_FLOAT + } + input_arg { + name: "output_shape" + type: DT_INT32 + } + output_arg { + name: "transformed_images" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "interpolation" + type: "string" + } + attr { + name: "fill_mode" + type: "string" + default_value { + s: "CONSTANT" + } + } +} +op { + name: "ImageProjectiveTransformV3" + input_arg { + name: "images" + type_attr: "dtype" + } + input_arg { + name: "transforms" + type: DT_FLOAT + } + input_arg { + name: "output_shape" + type: DT_INT32 + } + input_arg { + name: "fill_value" + type: DT_FLOAT + } + output_arg { + name: "transformed_images" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "interpolation" + type: "string" + } + attr { + name: "fill_mode" + type: "string" + default_value { + s: "CONSTANT" + } + } +} +op { + name: "ImageSummary" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "max_images" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_UINT8 + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + } + } + } + attr { + name: "bad_color" + type: "tensor" + default_value { + tensor { + dtype: DT_UINT8 + tensor_shape { + dim { + size: 4 + } + } + int_val: 255 + int_val: 0 + int_val: 0 + int_val: 255 + } + } + } +} +op { + name: "ImmutableConst" + output_arg { + name: "tensor" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "memory_region_name" + type: "string" + } +} +op { + name: "ImportEvent" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "event" + type: DT_STRING + } + is_stateful: true +} +op { + name: "InTopK" + input_arg { + name: "predictions" + type: DT_FLOAT + } + input_arg { + name: "targets" + type_attr: "T" + } + output_arg { + name: "precision" + type: DT_BOOL + } + attr { + name: "k" + type: "int" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "InTopKV2" + input_arg { + name: "predictions" + type: DT_FLOAT + } + input_arg { + name: "targets" + type_attr: "T" + } + input_arg { + name: "k" + type_attr: "T" + } + output_arg { + name: "precision" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "InfeedDequeue" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + is_stateful: true +} +op { + name: "InfeedDequeueTuple" + output_arg { + name: "outputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + is_stateful: true +} +op { + name: "InfeedEnqueue" + input_arg { + name: "input" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "layout" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "InfeedEnqueuePrelinearizedBuffer" + input_arg { + name: "input" + type: DT_VARIANT + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "InfeedEnqueueTuple" + input_arg { + name: "inputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + attr { + name: "layouts" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "InitializeTable" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tkey" + } + input_arg { + name: "values" + type_attr: "Tval" + } + attr { + name: "Tkey" + type: "type" + } + attr { + name: "Tval" + type: "type" + } +} +op { + name: "InitializeTableFromDataset" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "dataset" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "InitializeTableFromTextFile" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "filename" + type: DT_STRING + } + attr { + name: "key_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "value_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "vocab_size" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "delimiter" + type: "string" + default_value { + s: "\t" + } + } +} +op { + name: "InitializeTableFromTextFileV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "filename" + type: DT_STRING + } + attr { + name: "key_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "value_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "vocab_size" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "delimiter" + type: "string" + default_value { + s: "\t" + } + } + is_stateful: true +} +op { + name: "InitializeTableV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tkey" + } + input_arg { + name: "values" + type_attr: "Tval" + } + attr { + name: "Tkey" + type: "type" + } + attr { + name: "Tval" + type: "type" + } + is_stateful: true +} +op { + name: "InplaceAdd" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "i" + type: DT_INT32 + } + input_arg { + name: "v" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "InplaceSub" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "i" + type: DT_INT32 + } + input_arg { + name: "v" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "InplaceUpdate" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "i" + type: DT_INT32 + } + input_arg { + name: "v" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "InterleaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Inv" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "InvGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Invert" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "InvertPermutation" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "IsBoostedTreesEnsembleInitialized" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "IsBoostedTreesQuantileStreamResourceInitialized" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "IsFinite" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IsInf" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IsNan" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IsVariableInitialized" + input_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + attr { + name: "dtype" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "IsotonicRegression" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + output_arg { + name: "segments" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Iterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "shared_name" + type: "string" + } + attr { + name: "container" + type: "string" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorFromStringHandle" + input_arg { + name: "string_handle" + type: DT_STRING + } + output_arg { + name: "resource_handle" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + is_stateful: true +} +op { + name: "IteratorFromStringHandleV2" + input_arg { + name: "string_handle" + type: DT_STRING + } + output_arg { + name: "resource_handle" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + is_stateful: true +} +op { + name: "IteratorGetDevice" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "device" + type: DT_STRING + } + is_stateful: true +} +op { + name: "IteratorGetNext" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorGetNextAsOptional" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "optional" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorGetNextSync" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorToStringHandle" + input_arg { + name: "resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "string_handle" + type: DT_STRING + } + is_stateful: true +} +op { + name: "IteratorV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "shared_name" + type: "string" + } + attr { + name: "container" + type: "string" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "KMC2ChainInitialization" + input_arg { + name: "distances" + type: DT_FLOAT + } + input_arg { + name: "seed" + type: DT_INT64 + } + output_arg { + name: "index" + type: DT_INT64 + } +} +op { + name: "KmeansPlusPlusInitialization" + input_arg { + name: "points" + type: DT_FLOAT + } + input_arg { + name: "num_to_sample" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "num_retries_per_sample" + type: DT_INT64 + } + output_arg { + name: "samples" + type: DT_FLOAT + } +} +op { + name: "KthOrderStatistic" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "k" + type: "int" + } +} +op { + name: "L2Loss" + input_arg { + name: "t" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LMDBDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "LMDBReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LRN" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "depth_radius" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "alpha" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "beta" + type: "float" + default_value { + f: 0.5 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "LRNGrad" + input_arg { + name: "input_grads" + type_attr: "T" + } + input_arg { + name: "input_image" + type_attr: "T" + } + input_arg { + name: "output_image" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "depth_radius" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "alpha" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "beta" + type: "float" + default_value { + f: 0.5 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "LSTMBlockCell" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "i" + type_attr: "T" + } + output_arg { + name: "cs" + type_attr: "T" + } + output_arg { + name: "f" + type_attr: "T" + } + output_arg { + name: "o" + type_attr: "T" + } + output_arg { + name: "ci" + type_attr: "T" + } + output_arg { + name: "co" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "forget_bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "cell_clip" + type: "float" + default_value { + f: 3 + } + } + attr { + name: "use_peephole" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "LSTMBlockCellGrad" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "i" + type_attr: "T" + } + input_arg { + name: "cs" + type_attr: "T" + } + input_arg { + name: "f" + type_attr: "T" + } + input_arg { + name: "o" + type_attr: "T" + } + input_arg { + name: "ci" + type_attr: "T" + } + input_arg { + name: "co" + type_attr: "T" + } + input_arg { + name: "cs_grad" + type_attr: "T" + } + input_arg { + name: "h_grad" + type_attr: "T" + } + output_arg { + name: "cs_prev_grad" + type_attr: "T" + } + output_arg { + name: "dicfo" + type_attr: "T" + } + output_arg { + name: "wci_grad" + type_attr: "T" + } + output_arg { + name: "wcf_grad" + type_attr: "T" + } + output_arg { + name: "wco_grad" + type_attr: "T" + } + attr { + name: "use_peephole" + type: "bool" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "LatencyStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "LeakyRelu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "alpha" + type: "float" + default_value { + f: 0.2 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LeakyReluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "alpha" + type: "float" + default_value { + f: 0.2 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LearnedUnigramCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "LeftShift" + 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_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "LegacyParallelInterleaveDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Less" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "LessEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Lgamma" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LinSpace" + input_arg { + name: "start" + type_attr: "T" + } + input_arg { + name: "stop" + type_attr: "T" + } + input_arg { + name: "num" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ListDiff" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "LoadAndRemapMatrix" + input_arg { + name: "ckpt_path" + type: DT_STRING + } + input_arg { + name: "old_tensor_name" + type: DT_STRING + } + input_arg { + name: "row_remapping" + type: DT_INT64 + } + input_arg { + name: "col_remapping" + type: DT_INT64 + } + input_arg { + name: "initializing_values" + type: DT_FLOAT + } + output_arg { + name: "output_matrix" + type: DT_FLOAT + } + attr { + name: "num_rows" + type: "int" + has_minimum: true + } + attr { + name: "num_cols" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "max_rows_in_memory" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "LoadDataset" + input_arg { + name: "path" + type: DT_STRING + } + input_arg { + name: "reader_func_other_args" + type_list_attr: "Treader_func_args" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reader_func" + type: "func" + } + attr { + name: "Treader_func_args" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingADAMParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + input_arg { + name: "velocities" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingADAMParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + input_arg { + name: "velocities" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdadeltaParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "updates" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdadeltaParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "updates" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdagradParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdagradParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingCenteredRMSPropParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "ms" + type: DT_FLOAT + } + input_arg { + name: "mom" + type: DT_FLOAT + } + input_arg { + name: "mg" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingFTRLParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "linears" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingFTRLParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "linears" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingMDLAdagradLightParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "weights" + type: DT_FLOAT + } + input_arg { + name: "benefits" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingMomentumParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingMomentumParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalAdagradParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalYogiParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "v" + type: DT_FLOAT + } + input_arg { + name: "m" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalYogiParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "v" + type: DT_FLOAT + } + input_arg { + name: "m" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingRMSPropParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "ms" + type: DT_FLOAT + } + input_arg { + name: "mom" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingRMSPropParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "ms" + type: DT_FLOAT + } + input_arg { + name: "mom" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingStochasticGradientDescentParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Log" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Log1p" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "LogMatrixDeterminant" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "sign" + type_attr: "T" + } + output_arg { + name: "log_abs_determinant" + 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: "LogSoftmax" + input_arg { + name: "logits" + type_attr: "T" + } + output_arg { + name: "logsoftmax" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LogUniformCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "LogicalAnd" + input_arg { + name: "x" + type: DT_BOOL + } + input_arg { + name: "y" + type: DT_BOOL + } + output_arg { + name: "z" + type: DT_BOOL + } + is_commutative: true +} +op { + name: "LogicalNot" + input_arg { + name: "x" + type: DT_BOOL + } + output_arg { + name: "y" + type: DT_BOOL + } +} +op { + name: "LogicalOr" + input_arg { + name: "x" + type: DT_BOOL + } + input_arg { + name: "y" + type: DT_BOOL + } + output_arg { + name: "z" + type: DT_BOOL + } + is_commutative: true +} +op { + name: "LookupTableExport" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "keys" + type_attr: "Tkeys" + } + output_arg { + name: "values" + type_attr: "Tvalues" + } + attr { + name: "Tkeys" + type: "type" + } + attr { + name: "Tvalues" + type: "type" + } +} +op { + name: "LookupTableExportV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + output_arg { + name: "keys" + type_attr: "Tkeys" + } + output_arg { + name: "values" + type_attr: "Tvalues" + } + attr { + name: "Tkeys" + type: "type" + } + attr { + name: "Tvalues" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableFind" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "default_value" + type_attr: "Tout" + } + output_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } +} +op { + name: "LookupTableFindV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "default_value" + type_attr: "Tout" + } + output_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableImport" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } +} +op { + name: "LookupTableImportV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableInsert" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } +} +op { + name: "LookupTableInsertV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableRemoveV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + attr { + name: "Tin" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableSize" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT64 + } +} +op { + name: "LookupTableSizeV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + output_arg { + name: "size" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "LoopCond" + input_arg { + name: "input" + type: DT_BOOL + } + output_arg { + name: "output" + type: DT_BOOL + } +} +op { + name: "LowerBound" + input_arg { + name: "sorted_inputs" + type_attr: "T" + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Lu" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "lu" + type_attr: "T" + } + output_arg { + name: "p" + type_attr: "output_idx_type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "output_idx_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MakeIterator" + input_arg { + name: "dataset" + type: DT_VARIANT + } + input_arg { + name: "iterator" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "MakeUnique" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } +} +op { + name: "MapAndBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "MapClear" + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "MapDefun" + input_arg { + name: "arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "captured_inputs" + type_list_attr: "Tcaptured" + } + output_arg { + name: "output" + type_list_attr: "output_types" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tcaptured" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "f" + type: "func" + } + attr { + name: "max_intra_op_parallelism" + type: "int" + default_value { + i: 1 + } + } +} +op { + name: "MapIncompleteSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapPeek" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapStage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "values" + type_list_attr: "fake_dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "fake_dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapUnstage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapUnstageNoKey" + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "key" + type: DT_INT64 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MatMul" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatchingFiles" + input_arg { + name: "pattern" + type: DT_STRING + } + output_arg { + name: "filenames" + type: DT_STRING + } +} +op { + name: "MatchingFilesDataset" + input_arg { + name: "patterns" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "MatrixBandPart" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "num_lower" + type_attr: "Tindex" + } + input_arg { + name: "num_upper" + type_attr: "Tindex" + } + output_arg { + name: "band" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindex" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MatrixDeterminant" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + 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: "MatrixDiag" + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagPart" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagPartV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagPartV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "align" + type: "string" + default_value { + s: "RIGHT_LEFT" + } + allowed_values { + list { + s: "LEFT_RIGHT" + s: "RIGHT_LEFT" + s: "LEFT_LEFT" + s: "RIGHT_RIGHT" + } + } + } +} +op { + name: "MatrixDiagV2" + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "num_rows" + type: DT_INT32 + } + input_arg { + name: "num_cols" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagV3" + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "num_rows" + type: DT_INT32 + } + input_arg { + name: "num_cols" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "align" + type: "string" + default_value { + s: "RIGHT_LEFT" + } + allowed_values { + list { + s: "LEFT_RIGHT" + s: "RIGHT_LEFT" + s: "LEFT_LEFT" + s: "RIGHT_RIGHT" + } + } + } +} +op { + name: "MatrixExponential" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + deprecation { + version: 27 + explanation: "Use Python implementation tf.linalg.matrix_exponential instead." + } +} +op { + name: "MatrixInverse" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixLogarithm" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixSetDiag" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixSetDiagV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixSetDiagV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "align" + type: "string" + default_value { + s: "RIGHT_LEFT" + } + allowed_values { + list { + s: "LEFT_RIGHT" + s: "RIGHT_LEFT" + s: "LEFT_LEFT" + s: "RIGHT_RIGHT" + } + } + } +} +op { + name: "MatrixSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixSolveLs" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + input_arg { + name: "l2_regularizer" + type: DT_DOUBLE + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "fast" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "MatrixSquareRoot" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixTriangularSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + default_value { + b: true + } + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Max" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MaxIntraOpParallelismDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "max_intra_op_parallelism" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "MaxPool" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_UINT16 + type: DT_QINT8 + } + } + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "MaxPool3D" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "MaxPool3DGrad" + input_arg { + name: "orig_input" + type_attr: "TInput" + } + input_arg { + name: "orig_output" + type_attr: "TInput" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "TInput" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "MaxPool3DGradGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradGradV2" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "ksize" + type: DT_INT32 + } + input_arg { + name: "strides" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradGradWithArgmax" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "argmax" + type_attr: "Targmax" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "include_batch_in_index" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Targmax" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradV2" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "ksize" + type: DT_INT32 + } + input_arg { + name: "strides" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradWithArgmax" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "argmax" + type_attr: "Targmax" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "include_batch_in_index" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Targmax" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "ksize" + type: DT_INT32 + } + input_arg { + name: "strides" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_UINT16 + type: DT_QINT8 + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "MaxPoolWithArgmax" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "argmax" + type_attr: "Targmax" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "Targmax" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "include_batch_in_index" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Maximum" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Mean" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Merge" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "value_index" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "MergeSummary" + input_arg { + name: "inputs" + type: DT_STRING + number_attr: "N" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "MergeV2Checkpoints" + input_arg { + name: "checkpoint_prefixes" + type: DT_STRING + } + input_arg { + name: "destination_prefix" + type: DT_STRING + } + attr { + name: "delete_old_dirs" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "Mfcc" + input_arg { + name: "spectrogram" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "upper_frequency_limit" + type: "float" + default_value { + f: 4000 + } + } + attr { + name: "lower_frequency_limit" + type: "float" + default_value { + f: 20 + } + } + attr { + name: "filterbank_channel_count" + type: "int" + default_value { + i: 40 + } + } + attr { + name: "dct_coefficient_count" + type: "int" + default_value { + i: 13 + } + } +} +op { + name: "Min" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Minimum" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MirrorPad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } +} +op { + name: "MirrorPadGrad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } +} +op { + name: "MlirPassthroughOp" + input_arg { + name: "inputs" + type_list_attr: "Tinputs" + } + output_arg { + name: "outputs" + type_list_attr: "Toutputs" + } + attr { + name: "mlir_module" + type: "string" + } + attr { + name: "Tinputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Toutputs" + type: "list(type)" + has_minimum: true + } +} +op { + name: "Mod" + 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_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ModelDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "algorithm" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "cpu_budget" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ram_budget" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Mul" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MultiDeviceIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "devices" + type: "list(string)" + has_minimum: true + minimum: 1 + } + attr { + name: "shared_name" + type: "string" + } + attr { + name: "container" + type: "string" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorFromStringHandle" + input_arg { + name: "string_handle" + type: DT_STRING + } + output_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorGetNextFromShard" + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + input_arg { + name: "shard_num" + type: DT_INT32 + } + input_arg { + name: "incarnation_id" + type: DT_INT64 + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorInit" + input_arg { + name: "dataset" + type: DT_VARIANT + } + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + input_arg { + name: "max_buffer_size" + type: DT_INT64 + } + output_arg { + name: "incarnation_id" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorToStringHandle" + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + output_arg { + name: "string_handle" + type: DT_STRING + } + is_stateful: true +} +op { + name: "Multinomial" + input_arg { + name: "logits" + type_attr: "T" + } + input_arg { + name: "num_samples" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "MutableDenseHashTable" + input_arg { + name: "empty_key" + type_attr: "key_dtype" + } + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "initial_num_buckets" + type: "int" + default_value { + i: 131072 + } + } + attr { + name: "max_load_factor" + type: "float" + default_value { + f: 0.8 + } + } + is_stateful: true +} +op { + name: "MutableDenseHashTableV2" + input_arg { + name: "empty_key" + type_attr: "key_dtype" + } + input_arg { + name: "deleted_key" + type_attr: "key_dtype" + } + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "initial_num_buckets" + type: "int" + default_value { + i: 131072 + } + } + attr { + name: "max_load_factor" + type: "float" + default_value { + f: 0.8 + } + } + is_stateful: true +} +op { + name: "MutableHashTable" + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "MutableHashTableOfTensors" + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + is_stateful: true +} +op { + name: "MutableHashTableOfTensorsV2" + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + is_stateful: true +} +op { + name: "MutableHashTableV2" + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "MutexLock" + input_arg { + name: "mutex" + type: DT_RESOURCE + } + output_arg { + name: "mutex_lock" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "MutexV2" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "NcclAllReduce" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "reduction" + type: "string" + allowed_values { + list { + s: "min" + s: "max" + s: "prod" + s: "sum" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "num_devices" + type: "int" + } + attr { + name: "shared_name" + type: "string" + } + is_stateful: true +} +op { + name: "NcclBroadcast" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + is_stateful: true +} +op { + name: "NcclReduce" + input_arg { + name: "input" + type_attr: "T" + number_attr: "num_devices" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "reduction" + type: "string" + allowed_values { + list { + s: "min" + s: "max" + s: "prod" + s: "sum" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "num_devices" + type: "int" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Ndtri" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "NearestNeighbors" + input_arg { + name: "points" + type: DT_FLOAT + } + input_arg { + name: "centers" + type: DT_FLOAT + } + input_arg { + name: "k" + type: DT_INT64 + } + output_arg { + name: "nearest_center_indices" + type: DT_INT64 + } + output_arg { + name: "nearest_center_distances" + type: DT_FLOAT + } +} +op { + name: "Neg" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "NegTrain" + input_arg { + name: "w_in" + type: DT_FLOAT + is_ref: true + } + input_arg { + name: "w_out" + type: DT_FLOAT + is_ref: true + } + input_arg { + name: "examples" + type: DT_INT32 + } + input_arg { + name: "labels" + type: DT_INT32 + } + input_arg { + name: "lr" + type: DT_FLOAT + } + attr { + name: "vocab_count" + type: "list(int)" + } + attr { + name: "num_negative_samples" + type: "int" + } + deprecation { + version: 19 + explanation: "Moving word2vec into tensorflow_models/tutorials and deprecating its ops here as a result" + } + is_stateful: true +} +op { + name: "NextAfter" + input_arg { + name: "x1" + type_attr: "T" + } + input_arg { + name: "x2" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } +} +op { + name: "NextIteration" + input_arg { + name: "data" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "NoOp" +} +op { + name: "NonDeterministicInts" + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "NonMaxSuppression" + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + attr { + name: "iou_threshold" + type: "float" + default_value { + f: 0.5 + } + } +} +op { + name: "NonMaxSuppressionV2" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T_threshold" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "T_threshold" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "NonMaxSuppressionV3" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T_threshold" + } + input_arg { + name: "score_threshold" + type_attr: "T_threshold" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "T_threshold" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "NonMaxSuppressionV4" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T_threshold" + } + input_arg { + name: "score_threshold" + type_attr: "T_threshold" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + output_arg { + name: "valid_outputs" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "T_threshold" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "pad_to_max_output_size" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "NonMaxSuppressionV5" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T" + } + input_arg { + name: "score_threshold" + type_attr: "T" + } + input_arg { + name: "soft_nms_sigma" + type_attr: "T" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + output_arg { + name: "selected_scores" + type_attr: "T" + } + output_arg { + name: "valid_outputs" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "pad_to_max_output_size" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "NonMaxSuppressionWithOverlaps" + input_arg { + name: "overlaps" + type: DT_FLOAT + } + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "overlap_threshold" + type: DT_FLOAT + } + input_arg { + name: "score_threshold" + type: DT_FLOAT + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } +} +op { + name: "NonSerializableDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "NotEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + } + attr { + name: "incompatible_shape_error" + type: "bool" + default_value { + b: true + } + } + is_commutative: true +} +op { + name: "NthElement" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "T" + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "OneHot" + input_arg { + name: "indices" + type_attr: "TI" + } + input_arg { + name: "depth" + type: DT_INT32 + } + input_arg { + name: "on_value" + type_attr: "T" + } + input_arg { + name: "off_value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "TI" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "OneShotIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "dataset_factory" + type: "func" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OnesLike" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_BOOL + } + } + } +} +op { + name: "OptimizeDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "optimizations" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "optimization_configs" + type: "list(string)" + default_value { + list { + } + } + } +} +op { + name: "OptimizeDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "optimizations_enabled" + type: DT_STRING + } + input_arg { + name: "optimizations_disabled" + type: DT_STRING + } + input_arg { + name: "optimizations_default" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "optimization_configs" + type: "list(string)" + default_value { + list { + } + } + } +} +op { + name: "OptionalFromValue" + input_arg { + name: "components" + type_list_attr: "Toutput_types" + } + output_arg { + name: "optional" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "OptionalGetValue" + input_arg { + name: "optional" + type: DT_VARIANT + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "OptionalHasValue" + input_arg { + name: "optional" + type: DT_VARIANT + } + output_arg { + name: "has_value" + type: DT_BOOL + } +} +op { + name: "OptionalNone" + output_arg { + name: "optional" + type: DT_VARIANT + } +} +op { + name: "OrderedMapClear" + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapIncompleteSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapPeek" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapStage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "values" + type_list_attr: "fake_dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "fake_dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapUnstage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapUnstageNoKey" + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "key" + type: DT_INT64 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OutfeedDequeue" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "OutfeedDequeueTuple" + output_arg { + name: "outputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "OutfeedDequeueTupleV2" + input_arg { + name: "device_ordinal" + type: DT_INT32 + } + output_arg { + name: "outputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + is_stateful: true +} +op { + name: "OutfeedDequeueV2" + input_arg { + name: "device_ordinal" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + is_stateful: true +} +op { + name: "OutfeedEnqueue" + input_arg { + name: "input" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "OutfeedEnqueueTuple" + input_arg { + name: "inputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Pack" + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "axis" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "Pad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "PadV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + input_arg { + name: "constant_values" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "PaddedBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "padded_shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "padding_values" + type_list_attr: "Toutput_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "PaddedBatchDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "padded_shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "padding_values" + type_list_attr: "Toutput_types" + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "parallel_copy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "PaddingFIFOQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "PaddingFIFOQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ParallelConcat" + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "shape" + type: "shape" + } +} +op { + name: "ParallelDynamicStitch" + input_arg { + name: "indices" + type: DT_INT32 + number_attr: "N" + } + input_arg { + name: "data" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "merged" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "ParallelInterleaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "sloppy" + type: DT_BOOL + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ParallelInterleaveDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ParallelInterleaveDatasetV3" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ParallelInterleaveDatasetV4" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ParallelMapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "num_parallel_calls" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ParallelMapDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ParameterizedTruncatedNormal" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "means" + type_attr: "dtype" + } + input_arg { + name: "stdevs" + type_attr: "dtype" + } + input_arg { + name: "minvals" + type_attr: "dtype" + } + input_arg { + name: "maxvals" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ParseExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "names" + type: DT_STRING + } + input_arg { + name: "sparse_keys" + type: DT_STRING + number_attr: "Nsparse" + } + input_arg { + name: "dense_keys" + type: DT_STRING + number_attr: "Ndense" + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "Nsparse" + } + output_arg { + name: "sparse_values" + type_list_attr: "sparse_types" + } + output_arg { + name: "sparse_shapes" + type: DT_INT64 + number_attr: "Nsparse" + } + output_arg { + name: "dense_values" + type_list_attr: "Tdense" + } + attr { + name: "Nsparse" + type: "int" + has_minimum: true + } + attr { + name: "Ndense" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } +} +op { + name: "ParseExampleDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "ragged_keys" + type: "list(string)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ParseExampleDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "ragged_keys" + type: "list(string)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ParseExampleV2" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "names" + type: DT_STRING + } + input_arg { + name: "sparse_keys" + type: DT_STRING + } + input_arg { + name: "dense_keys" + type: DT_STRING + } + input_arg { + name: "ragged_keys" + type: DT_STRING + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "sparse_values" + type_list_attr: "sparse_types" + } + output_arg { + name: "sparse_shapes" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "dense_values" + type_list_attr: "Tdense" + } + output_arg { + name: "ragged_values" + type_list_attr: "ragged_value_types" + } + output_arg { + name: "ragged_row_splits" + type_list_attr: "ragged_split_types" + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "num_sparse" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_value_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_split_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } +} +op { + name: "ParseSequenceExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "debug_name" + type: DT_STRING + } + input_arg { + name: "context_dense_defaults" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "context_sparse_indices" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_sparse_values" + type_list_attr: "context_sparse_types" + } + output_arg { + name: "context_sparse_shapes" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_dense_values" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "feature_list_sparse_indices" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_sparse_values" + type_list_attr: "feature_list_sparse_types" + } + output_arg { + name: "feature_list_sparse_shapes" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_dense_values" + type_list_attr: "feature_list_dense_types" + } + output_arg { + name: "feature_list_dense_lengths" + type: DT_INT64 + number_attr: "Nfeature_list_dense" + } + attr { + name: "feature_list_dense_missing_assumed_empty" + type: "list(string)" + has_minimum: true + } + attr { + name: "context_sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "context_dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "feature_list_sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "feature_list_dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "Ncontext_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Ncontext_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "context_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tcontext_dense" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "feature_list_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "ParseSequenceExampleV2" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "debug_name" + type: DT_STRING + } + input_arg { + name: "context_sparse_keys" + type: DT_STRING + } + input_arg { + name: "context_dense_keys" + type: DT_STRING + } + input_arg { + name: "context_ragged_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_sparse_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_dense_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_ragged_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_dense_missing_assumed_empty" + type: DT_BOOL + } + input_arg { + name: "context_dense_defaults" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "context_sparse_indices" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_sparse_values" + type_list_attr: "context_sparse_types" + } + output_arg { + name: "context_sparse_shapes" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_dense_values" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "context_ragged_values" + type_list_attr: "context_ragged_value_types" + } + output_arg { + name: "context_ragged_row_splits" + type_list_attr: "context_ragged_split_types" + } + output_arg { + name: "feature_list_sparse_indices" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_sparse_values" + type_list_attr: "feature_list_sparse_types" + } + output_arg { + name: "feature_list_sparse_shapes" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_dense_values" + type_list_attr: "feature_list_dense_types" + } + output_arg { + name: "feature_list_dense_lengths" + type: DT_INT64 + number_attr: "Nfeature_list_dense" + } + output_arg { + name: "feature_list_ragged_values" + type_list_attr: "feature_list_ragged_value_types" + } + output_arg { + name: "feature_list_ragged_outer_splits" + type_list_attr: "feature_list_ragged_split_types" + } + output_arg { + name: "feature_list_ragged_inner_splits" + type_list_attr: "feature_list_ragged_split_types" + } + attr { + name: "Ncontext_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Tcontext_dense" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "context_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "Nfeature_list_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "feature_list_dense_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "feature_list_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "ParseSingleExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "sparse_values" + type_list_attr: "sparse_types" + } + output_arg { + name: "sparse_shapes" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "dense_values" + type_list_attr: "Tdense" + } + attr { + name: "num_sparse" + type: "int" + has_minimum: true + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } +} +op { + name: "ParseSingleSequenceExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "feature_list_dense_missing_assumed_empty" + type: DT_STRING + } + input_arg { + name: "context_sparse_keys" + type: DT_STRING + number_attr: "Ncontext_sparse" + } + input_arg { + name: "context_dense_keys" + type: DT_STRING + number_attr: "Ncontext_dense" + } + input_arg { + name: "feature_list_sparse_keys" + type: DT_STRING + number_attr: "Nfeature_list_sparse" + } + input_arg { + name: "feature_list_dense_keys" + type: DT_STRING + number_attr: "Nfeature_list_dense" + } + input_arg { + name: "context_dense_defaults" + type_list_attr: "Tcontext_dense" + } + input_arg { + name: "debug_name" + type: DT_STRING + } + output_arg { + name: "context_sparse_indices" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_sparse_values" + type_list_attr: "context_sparse_types" + } + output_arg { + name: "context_sparse_shapes" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_dense_values" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "feature_list_sparse_indices" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_sparse_values" + type_list_attr: "feature_list_sparse_types" + } + output_arg { + name: "feature_list_sparse_shapes" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_dense_values" + type_list_attr: "feature_list_dense_types" + } + attr { + name: "Ncontext_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Ncontext_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "context_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tcontext_dense" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "feature_list_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "ParseTensor" + input_arg { + name: "serialized" + type: DT_STRING + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + } +} +op { + name: "PartitionedCall" + input_arg { + name: "args" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "f" + type: "func" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "config_proto" + type: "string" + default_value { + s: "" + } + } + attr { + name: "executor_type" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Placeholder" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } +} +op { + name: "PlaceholderV2" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + deprecation { + version: 23 + explanation: "Placeholder now behaves the same as PlaceholderV2." + } +} +op { + name: "PlaceholderWithDefault" + input_arg { + name: "input" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } +} +op { + name: "Polygamma" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "PopulationCount" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_UINT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Pow" + 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_BFLOAT16 + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "PrefetchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "slack_period" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "legacy_autotune" + type: "bool" + default_value { + b: true + } + } + attr { + name: "buffer_size_min" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "Prelinearize" + input_arg { + name: "input" + type_attr: "dtype" + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "layout" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "PrelinearizeTuple" + input_arg { + name: "inputs" + type_list_attr: "dtypes" + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + attr { + name: "layouts" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "PreventGradient" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "message" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Print" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "data" + type_list_attr: "U" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "U" + type: "list(type)" + has_minimum: true + } + attr { + name: "message" + type: "string" + default_value { + s: "" + } + } + attr { + name: "first_n" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "summarize" + type: "int" + default_value { + i: 3 + } + } + is_stateful: true +} +op { + name: "PrintV2" + input_arg { + name: "input" + type: DT_STRING + } + attr { + name: "output_stream" + type: "string" + default_value { + s: "stderr" + } + } + attr { + name: "end" + type: "string" + default_value { + s: "\n" + } + } + is_stateful: true +} +op { + name: "PriorityQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "PriorityQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "PrivateThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_threads" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Prod" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "PyFunc" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "token" + type: "string" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "PyFuncStateless" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "token" + type: "string" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } +} +op { + name: "Qr" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "q" + type_attr: "T" + } + output_arg { + name: "r" + type_attr: "T" + } + attr { + name: "full_matrices" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "QuantizeAndDequantize" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_min" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "input_max" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 22 + explanation: "Replaced by QuantizeAndDequantizeV2" + } +} +op { + name: "QuantizeAndDequantizeV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "round_mode" + type: "string" + default_value { + s: "HALF_TO_EVEN" + } + allowed_values { + list { + s: "HALF_TO_EVEN" + s: "HALF_UP" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeAndDequantizeV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + input_arg { + name: "num_bits" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeAndDequantizeV4" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "round_mode" + type: "string" + default_value { + s: "HALF_TO_EVEN" + } + allowed_values { + list { + s: "HALF_TO_EVEN" + s: "HALF_UP" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeAndDequantizeV4Grad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_min_backprop" + type_attr: "T" + } + output_arg { + name: "input_max_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeDownAndShrinkRange" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizeV2" + input_arg { + name: "input" + type: DT_FLOAT + } + input_arg { + name: "min_range" + type: DT_FLOAT + } + input_arg { + name: "max_range" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "mode" + type: "string" + default_value { + s: "MIN_COMBINED" + } + allowed_values { + list { + s: "MIN_COMBINED" + s: "MIN_FIRST" + s: "SCALED" + } + } + } + attr { + name: "round_mode" + type: "string" + default_value { + s: "HALF_AWAY_FROM_ZERO" + } + allowed_values { + list { + s: "HALF_AWAY_FROM_ZERO" + s: "HALF_TO_EVEN" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "ensure_minimum_range" + type: "float" + default_value { + f: 0.01 + } + } +} +op { + name: "QuantizedAdd" + input_arg { + name: "x" + type_attr: "T1" + } + input_arg { + name: "y" + type_attr: "T2" + } + input_arg { + name: "min_x" + type: DT_FLOAT + } + input_arg { + name: "max_x" + type: DT_FLOAT + } + input_arg { + name: "min_y" + type: DT_FLOAT + } + input_arg { + name: "max_y" + type: DT_FLOAT + } + output_arg { + name: "z" + type_attr: "Toutput" + } + output_arg { + name: "min_z" + type: DT_FLOAT + } + output_arg { + name: "max_z" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedAvgPool" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "ksize" + type: "list(int)" + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "QuantizedBatchNormWithGlobalNormalization" + input_arg { + name: "t" + type_attr: "Tinput" + } + input_arg { + name: "t_min" + type: DT_FLOAT + } + input_arg { + name: "t_max" + type: DT_FLOAT + } + input_arg { + name: "m" + type_attr: "Tinput" + } + input_arg { + name: "m_min" + type: DT_FLOAT + } + input_arg { + name: "m_max" + type: DT_FLOAT + } + input_arg { + name: "v" + type_attr: "Tinput" + } + input_arg { + name: "v_min" + type: DT_FLOAT + } + input_arg { + name: "v_max" + type: DT_FLOAT + } + input_arg { + name: "beta" + type_attr: "Tinput" + } + input_arg { + name: "beta_min" + type: DT_FLOAT + } + input_arg { + name: "beta_max" + type: DT_FLOAT + } + input_arg { + name: "gamma" + type_attr: "Tinput" + } + input_arg { + name: "gamma_min" + type: DT_FLOAT + } + input_arg { + name: "gamma_max" + type: DT_FLOAT + } + output_arg { + name: "result" + type_attr: "out_type" + } + output_arg { + name: "result_min" + type: DT_FLOAT + } + output_arg { + name: "result_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "variance_epsilon" + type: "float" + } + attr { + name: "scale_after_normalization" + type: "bool" + } +} +op { + name: "QuantizedBiasAdd" + input_arg { + name: "input" + type_attr: "T1" + } + input_arg { + name: "bias" + type_attr: "T2" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_bias" + type: DT_FLOAT + } + input_arg { + name: "max_bias" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedConcat" + input_arg { + name: "concat_dim" + type: DT_INT32 + } + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "input_mins" + type: DT_FLOAT + number_attr: "N" + } + input_arg { + name: "input_maxes" + type: DT_FLOAT + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "QuantizedConv2D" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedConv2DAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DPerChannel" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedConv2DWithBias" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasSignedSumAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "summand" + type_attr: "Tsummand" + } + input_arg { + name: "min_summand" + type: DT_FLOAT + } + input_arg { + name: "max_summand" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Tsummand" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasSumAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "summand" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasSumAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "summand" + type_attr: "Tsummand" + } + input_arg { + name: "min_summand" + type: DT_FLOAT + } + input_arg { + name: "max_summand" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Tsummand" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedDepthwiseConv2D" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedDepthwiseConv2DWithBias" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedDepthwiseConv2DWithBiasAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedDepthwiseConv2DWithBiasAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedInstanceNorm" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "x_min" + type: DT_FLOAT + } + input_arg { + name: "x_max" + type: DT_FLOAT + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "y_min" + type: DT_FLOAT + } + output_arg { + name: "y_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "output_range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "given_y_min" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "given_y_max" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "variance_epsilon" + type: "float" + default_value { + f: 1e-05 + } + } + attr { + name: "min_separation" + type: "float" + default_value { + f: 0.001 + } + } +} +op { + name: "QuantizedMatMul" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tactivation" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedMatMulWithBias" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndDequantize" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndRelu" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndReluAndRequantize" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndRequantize" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMaxPool" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "ksize" + type: "list(int)" + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "QuantizedMul" + input_arg { + name: "x" + type_attr: "T1" + } + input_arg { + name: "y" + type_attr: "T2" + } + input_arg { + name: "min_x" + type: DT_FLOAT + } + input_arg { + name: "max_x" + type: DT_FLOAT + } + input_arg { + name: "min_y" + type: DT_FLOAT + } + input_arg { + name: "max_y" + type: DT_FLOAT + } + output_arg { + name: "z" + type_attr: "Toutput" + } + output_arg { + name: "min_z" + type: DT_FLOAT + } + output_arg { + name: "max_z" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedRelu" + input_arg { + name: "features" + type_attr: "Tinput" + } + input_arg { + name: "min_features" + type: DT_FLOAT + } + input_arg { + name: "max_features" + type: DT_FLOAT + } + output_arg { + name: "activations" + type_attr: "out_type" + } + output_arg { + name: "min_activations" + type: DT_FLOAT + } + output_arg { + name: "max_activations" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedRelu6" + input_arg { + name: "features" + type_attr: "Tinput" + } + input_arg { + name: "min_features" + type: DT_FLOAT + } + input_arg { + name: "max_features" + type: DT_FLOAT + } + output_arg { + name: "activations" + type_attr: "out_type" + } + output_arg { + name: "min_activations" + type: DT_FLOAT + } + output_arg { + name: "max_activations" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedReluX" + input_arg { + name: "features" + type_attr: "Tinput" + } + input_arg { + name: "max_value" + type: DT_FLOAT + } + input_arg { + name: "min_features" + type: DT_FLOAT + } + input_arg { + name: "max_features" + type: DT_FLOAT + } + output_arg { + name: "activations" + type_attr: "out_type" + } + output_arg { + name: "min_activations" + type: DT_FLOAT + } + output_arg { + name: "max_activations" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedReshape" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "QuantizedResizeBilinear" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "resized_images" + type_attr: "T" + } + output_arg { + name: "out_min" + type: DT_FLOAT + } + output_arg { + name: "out_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QUINT8 + type: DT_QINT32 + type: DT_FLOAT + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "QueueClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "cancel_pending_enqueues" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "QueueCloseV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "cancel_pending_enqueues" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "QueueDequeue" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueDequeueMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueDequeueManyV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueDequeueUpTo" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueDequeueUpToV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueDequeueV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueEnqueue" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueEnqueueMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueEnqueueManyV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueEnqueueV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueIsClosed" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "is_closed" + type: DT_BOOL + } +} +op { + name: "QueueIsClosedV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "is_closed" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "QueueSize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "QueueSizeV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "size" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "RFFT" + input_arg { + name: "input" + type_attr: "Treal" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RFFT2D" + input_arg { + name: "input" + type_attr: "Treal" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RFFT3D" + input_arg { + name: "input" + type_attr: "Treal" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RGBToHSV" + input_arg { + name: "images" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RaggedBincount" + input_arg { + name: "splits" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "Tidx" + } + input_arg { + name: "size" + type_attr: "Tidx" + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "binary_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "RaggedCountSparseOutput" + input_arg { + name: "splits" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "weights" + type_attr: "output_type" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "output_type" + } + output_arg { + name: "output_dense_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "minlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "maxlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "binary_output" + type: "bool" + } + attr { + name: "output_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RaggedCross" + input_arg { + name: "ragged_values" + type_list_attr: "ragged_values_types" + } + input_arg { + name: "ragged_row_splits" + type_list_attr: "ragged_splits_types" + } + input_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "Nsparse" + } + input_arg { + name: "sparse_values" + type_list_attr: "sparse_values_types" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + number_attr: "Nsparse" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + output_arg { + name: "output_values" + type_attr: "out_values_type" + } + output_arg { + name: "output_row_splits" + type_attr: "out_row_splits_type" + } + attr { + name: "Nsparse" + type: "int" + has_minimum: true + } + attr { + name: "input_order" + type: "string" + } + attr { + name: "hashed_output" + type: "bool" + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + } + attr { + name: "hash_key" + type: "int" + } + attr { + name: "ragged_values_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_splits_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "sparse_values_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "out_values_type" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "out_row_splits_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedGather" + input_arg { + name: "params_nested_splits" + type_attr: "Tsplits" + number_attr: "PARAMS_RAGGED_RANK" + } + input_arg { + name: "params_dense_values" + type_attr: "Tvalues" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output_nested_splits" + type_attr: "Tsplits" + number_attr: "OUTPUT_RAGGED_RANK" + } + output_arg { + name: "output_dense_values" + type_attr: "Tvalues" + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "PARAMS_RAGGED_RANK" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "OUTPUT_RAGGED_RANK" + type: "int" + has_minimum: true + } +} +op { + name: "RaggedRange" + input_arg { + name: "starts" + type_attr: "T" + } + input_arg { + name: "limits" + type_attr: "T" + } + input_arg { + name: "deltas" + type_attr: "T" + } + output_arg { + name: "rt_nested_splits" + type_attr: "Tsplits" + } + output_arg { + name: "rt_dense_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedTensorFromVariant" + input_arg { + name: "encoded_ragged" + type: DT_VARIANT + } + output_arg { + name: "output_nested_splits" + type_attr: "Tsplits" + number_attr: "output_ragged_rank" + } + output_arg { + name: "output_dense_values" + type_attr: "Tvalues" + } + attr { + name: "input_ragged_rank" + type: "int" + has_minimum: true + minimum: -1 + } + attr { + name: "output_ragged_rank" + type: "int" + has_minimum: true + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedTensorToSparse" + input_arg { + name: "rt_nested_splits" + type_attr: "Tsplits" + number_attr: "RAGGED_RANK" + } + input_arg { + name: "rt_dense_values" + type_attr: "T" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "T" + } + output_arg { + name: "sparse_dense_shape" + type: DT_INT64 + } + attr { + name: "RAGGED_RANK" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedTensorToTensor" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "default_value" + type_attr: "T" + } + input_arg { + name: "row_partition_tensors" + type_attr: "Tindex" + number_attr: "num_row_partition_tensors" + } + output_arg { + name: "result" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindex" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_INT32 + } + } + } + attr { + name: "Tshape" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_INT32 + } + } + } + attr { + name: "num_row_partition_tensors" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "row_partition_types" + type: "list(string)" + } +} +op { + name: "RaggedTensorToVariant" + input_arg { + name: "rt_nested_splits" + type_attr: "Tsplits" + number_attr: "RAGGED_RANK" + } + input_arg { + name: "rt_dense_values" + type_attr: "Tvalues" + } + output_arg { + name: "encoded_ragged" + type: DT_VARIANT + } + attr { + name: "RAGGED_RANK" + type: "int" + has_minimum: true + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "batched_input" + type: "bool" + } +} +op { + name: "RaggedTensorToVariantGradient" + input_arg { + name: "encoded_ragged_grad" + type: DT_VARIANT + } + input_arg { + name: "row_splits" + type_attr: "Tsplits" + } + input_arg { + name: "dense_values_shape" + type: DT_INT32 + } + output_arg { + name: "dense_values_grad" + type_attr: "Tvalues" + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RandomCrop" + input_arg { + name: "image" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + deprecation { + version: 8 + explanation: "Random crop is now pure Python" + } + is_stateful: true +} +op { + name: "RandomDataset" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "RandomGamma" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "alpha" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + is_stateful: true +} +op { + name: "RandomGammaGrad" + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "sample" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RandomPoisson" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "rate" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 25 + explanation: "Replaced by RandomPoissonV2" + } + is_stateful: true +} +op { + name: "RandomPoissonV2" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "rate" + type_attr: "R" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "R" + type: "type" + default_value { + type: DT_DOUBLE + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "RandomShuffle" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "RandomShuffleQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "min_after_dequeue" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RandomShuffleQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "min_after_dequeue" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RandomStandardNormal" + input_arg { + name: "shape" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "RandomUniform" + input_arg { + name: "shape" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "RandomUniformInt" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "minval" + type_attr: "Tout" + } + input_arg { + name: "maxval" + type_attr: "Tout" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "Tout" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "Range" + input_arg { + name: "start" + type_attr: "Tidx" + } + input_arg { + name: "limit" + type_attr: "Tidx" + } + input_arg { + name: "delta" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "Tidx" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RangeDataset" + input_arg { + name: "start" + type: DT_INT64 + } + input_arg { + name: "stop" + type: DT_INT64 + } + input_arg { + name: "step" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Rank" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "ReadFile" + input_arg { + name: "filename" + type: DT_STRING + } + output_arg { + name: "contents" + type: DT_STRING + } +} +op { + name: "ReadVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "ReaderNumRecordsProduced" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "records_produced" + type: DT_INT64 + } +} +op { + name: "ReaderNumRecordsProducedV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + output_arg { + name: "records_produced" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "ReaderNumWorkUnitsCompleted" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "units_completed" + type: DT_INT64 + } +} +op { + name: "ReaderNumWorkUnitsCompletedV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + output_arg { + name: "units_completed" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "ReaderRead" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "queue_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "value" + type: DT_STRING + } +} +op { + name: "ReaderReadUpTo" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "queue_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_records" + type: DT_INT64 + } + output_arg { + name: "keys" + type: DT_STRING + } + output_arg { + name: "values" + type: DT_STRING + } +} +op { + name: "ReaderReadUpToV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + input_arg { + name: "queue_handle" + type: DT_RESOURCE + } + input_arg { + name: "num_records" + type: DT_INT64 + } + output_arg { + name: "keys" + type: DT_STRING + } + output_arg { + name: "values" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ReaderReadV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + input_arg { + name: "queue_handle" + type: DT_RESOURCE + } + output_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "value" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ReaderReset" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } +} +op { + name: "ReaderResetV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "ReaderRestoreState" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "state" + type: DT_STRING + } +} +op { + name: "ReaderRestoreStateV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + input_arg { + name: "state" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ReaderSerializeState" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "state" + type: DT_STRING + } +} +op { + name: "ReaderSerializeStateV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + output_arg { + name: "state" + type: DT_STRING + } + is_stateful: true +} +op { + name: "Real" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RealDiv" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RebatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_replicas" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_fallback" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "RebatchDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_sizes" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Reciprocal" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ReciprocalGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RecordInput" + output_arg { + name: "records" + type: DT_STRING + } + attr { + name: "file_pattern" + type: "string" + } + attr { + name: "file_random_seed" + type: "int" + default_value { + i: 301 + } + } + attr { + name: "file_shuffle_shift_ratio" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "file_buffer_size" + type: "int" + default_value { + i: 10000 + } + } + attr { + name: "file_parallelism" + type: "int" + default_value { + i: 16 + } + } + attr { + name: "batch_size" + type: "int" + default_value { + i: 32 + } + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Recv" + output_arg { + name: "tensor" + type_attr: "tensor_type" + } + attr { + name: "tensor_type" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + } + attr { + name: "send_device" + type: "string" + } + attr { + name: "send_device_incarnation" + type: "int" + } + attr { + name: "recv_device" + type: "string" + } + attr { + name: "client_terminated" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "RecvTPUEmbeddingActivations" + output_arg { + name: "outputs" + type: DT_FLOAT + number_attr: "num_outputs" + } + attr { + name: "num_outputs" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "config" + type: "string" + } + is_stateful: true +} +op { + name: "ReduceDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "initial_state" + type_list_attr: "Tstate" + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "f" + type: "func" + } + attr { + name: "Tstate" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ReduceJoin" + input_arg { + name: "inputs" + type: DT_STRING + } + input_arg { + name: "reduction_indices" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "separator" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "RefEnter" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "frame_name" + type: "string" + } + attr { + name: "is_constant" + type: "bool" + default_value { + b: false + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } +} +op { + name: "RefExit" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } +} +op { + name: "RefIdentity" + input_arg { + name: "input" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "RefMerge" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + output_arg { + name: "value_index" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "RefNextIteration" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } +} +op { + name: "RefSelect" + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "RefSwitch" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + input_arg { + name: "pred" + type: DT_BOOL + } + output_arg { + name: "output_false" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output_true" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "RegexFullMatch" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "pattern" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_BOOL + } +} +op { + name: "RegexReplace" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "pattern" + type: DT_STRING + } + input_arg { + name: "rewrite" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "replace_global" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "RegisterDataset" + input_arg { + name: "dataset" + type: DT_VARIANT + } + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "protocol" + type: DT_STRING + } + output_arg { + name: "dataset_id" + type: DT_INT64 + } + attr { + name: "external_state_policy" + type: "int" + } +} +op { + name: "Relu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_QINT8 + } + } + } +} +op { + name: "Relu6" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Relu6Grad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "ReluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "RemoteCall" + input_arg { + name: "target" + type: DT_STRING + } + input_arg { + name: "args" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "f" + type: "func" + } + is_stateful: true +} +op { + name: "RemoteFusedGraphExecute" + input_arg { + name: "inputs" + type_list_attr: "Tinputs" + } + output_arg { + name: "outputs" + type_list_attr: "Toutputs" + } + attr { + name: "Tinputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Toutputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "serialized_remote_fused_graph_execute_info" + type: "string" + } +} +op { + name: "RepeatDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "RequantizationRange" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "RequantizationRangePerChannel" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "clip_value_max" + type: "float" + } +} +op { + name: "Requantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + input_arg { + name: "requested_output_min" + type: DT_FLOAT + } + input_arg { + name: "requested_output_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "RequantizePerChannel" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + input_arg { + name: "requested_output_min" + type: DT_FLOAT + } + input_arg { + name: "requested_output_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "Reshape" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tshape" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ResizeArea" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBicubic" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBicubicGrad" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "original_image" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBilinear" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBilinearGrad" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "original_image" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_BFLOAT16 + type: DT_HALF + type: DT_DOUBLE + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeNearestNeighbor" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeNearestNeighborGrad" + input_arg { + name: "grads" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT32 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResourceAccumulatorApplyGradient" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "local_step" + type: DT_INT64 + } + input_arg { + name: "gradient" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceAccumulatorNumAccumulated" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "num_accumulated" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "ResourceAccumulatorSetGlobalStep" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "new_global_step" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "ResourceAccumulatorTakeGradient" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "num_required" + type: DT_INT32 + } + output_arg { + name: "average" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdaMax" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "v" + type: DT_RESOURCE + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdadelta" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "accum_update" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdagradDA" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "gradient_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "gradient_squared_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdagradV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdam" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "v" + type: DT_RESOURCE + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "beta2_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdamWithAmsgrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "v" + type: DT_RESOURCE + } + input_arg { + name: "vhat" + type: DT_RESOURCE + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "beta2_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAddSign" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyCenteredRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "mg" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyFtrl" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyFtrlV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyGradientDescent" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyKerasMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyPowerSign" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "logbase" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyProximalAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyProximalGradientDescent" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceConditionalAccumulator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reduction_type" + type: "string" + default_value { + s: "MEAN" + } + allowed_values { + list { + s: "MEAN" + s: "SUM" + } + } + } + is_stateful: true +} +op { + name: "ResourceCountUpTo" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "limit" + type: "int" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceGather" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "batch_dims" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceGatherNd" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterAdd" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterDiv" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterMax" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterMin" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterMul" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdAdd" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdMax" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdMin" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdSub" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdUpdate" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterSub" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterUpdate" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdadelta" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "accum_update" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdagradDA" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "gradient_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "gradient_squared_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdagradV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyCenteredRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "mg" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyFtrl" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyFtrlV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyKerasMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyProximalAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyProximalGradientDescent" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceStridedSliceAssign" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Restore" + input_arg { + name: "file_pattern" + type: DT_STRING + } + input_arg { + name: "tensor_name" + type: DT_STRING + } + output_arg { + name: "tensor" + type_attr: "dt" + } + attr { + name: "dt" + type: "type" + } + attr { + name: "preferred_shard" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "RestoreSlice" + input_arg { + name: "file_pattern" + type: DT_STRING + } + input_arg { + name: "tensor_name" + type: DT_STRING + } + input_arg { + name: "shape_and_slice" + type: DT_STRING + } + output_arg { + name: "tensor" + type_attr: "dt" + } + attr { + name: "dt" + type: "type" + } + attr { + name: "preferred_shard" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "RestoreV2" + input_arg { + name: "prefix" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "shape_and_slices" + type: DT_STRING + } + output_arg { + name: "tensors" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingADAMParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + output_arg { + name: "velocities" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingADAMParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + output_arg { + name: "velocities" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdadeltaParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "updates" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "updates" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdagradParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdagradParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingCenteredRMSPropParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "ms" + type: DT_FLOAT + } + output_arg { + name: "mom" + type: DT_FLOAT + } + output_arg { + name: "mg" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingFTRLParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "linears" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingFTRLParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "linears" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingMDLAdagradLightParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "weights" + type: DT_FLOAT + } + output_arg { + name: "benefits" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingMomentumParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingMomentumParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalAdagradParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalYogiParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "v" + type: DT_FLOAT + } + output_arg { + name: "m" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalYogiParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "v" + type: DT_FLOAT + } + output_arg { + name: "m" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingRMSPropParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "ms" + type: DT_FLOAT + } + output_arg { + name: "mom" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "ms" + type: DT_FLOAT + } + output_arg { + name: "mom" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingStochasticGradientDescentParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Reverse" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "dims" + type: DT_BOOL + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BOOL + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_STRING + } + } + } +} +op { + name: "ReverseSequence" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "seq_lengths" + type_attr: "Tlen" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "seq_dim" + type: "int" + } + attr { + name: "batch_dim" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tlen" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ReverseV2" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BOOL + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_STRING + } + } + } +} +op { + name: "RightShift" + 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_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Rint" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RngReadAndSkip" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "alg" + type: DT_INT32 + } + input_arg { + name: "delta" + type: DT_UINT64 + } + output_arg { + name: "value" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "RngSkip" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "delta" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "Roll" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "shift" + type_attr: "Tshift" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tshift" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Taxis" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Round" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Rpc" + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "method" + type: DT_STRING + } + input_arg { + name: "request" + type: DT_STRING + } + output_arg { + name: "response" + type: DT_STRING + } + attr { + name: "protocol" + type: "string" + default_value { + s: "" + } + } + attr { + name: "fail_fast" + type: "bool" + default_value { + b: true + } + } + attr { + name: "timeout_in_ms" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Rsqrt" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RsqrtGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SampleDistortedBoundingBox" + input_arg { + name: "image_size" + type_attr: "T" + } + input_arg { + name: "bounding_boxes" + type: DT_FLOAT + } + output_arg { + name: "begin" + type_attr: "T" + } + output_arg { + name: "size" + type_attr: "T" + } + output_arg { + name: "bboxes" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "min_object_covered" + type: "float" + default_value { + f: 0.1 + } + } + attr { + name: "aspect_ratio_range" + type: "list(float)" + default_value { + list { + f: 0.75 + f: 1.33 + } + } + } + attr { + name: "area_range" + type: "list(float)" + default_value { + list { + f: 0.05 + f: 1 + } + } + } + attr { + name: "max_attempts" + type: "int" + default_value { + i: 100 + } + } + attr { + name: "use_image_if_no_bounding_boxes" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "SampleDistortedBoundingBoxV2" + input_arg { + name: "image_size" + type_attr: "T" + } + input_arg { + name: "bounding_boxes" + type: DT_FLOAT + } + input_arg { + name: "min_object_covered" + type: DT_FLOAT + } + output_arg { + name: "begin" + type_attr: "T" + } + output_arg { + name: "size" + type_attr: "T" + } + output_arg { + name: "bboxes" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "aspect_ratio_range" + type: "list(float)" + default_value { + list { + f: 0.75 + f: 1.33 + } + } + } + attr { + name: "area_range" + type: "list(float)" + default_value { + list { + f: 0.05 + f: 1 + } + } + } + attr { + name: "max_attempts" + type: "int" + default_value { + i: 100 + } + } + attr { + name: "use_image_if_no_bounding_boxes" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "SamplingDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "rate" + type: DT_FLOAT + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Save" + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "data" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "SaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "path" + type: DT_STRING + } + input_arg { + name: "shard_func_other_args" + type_list_attr: "Tshard_func_args" + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shard_func" + type: "func" + } + attr { + name: "use_shard_func" + type: "bool" + default_value { + b: true + } + } + attr { + name: "Tshard_func_args" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "SaveSlices" + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "shapes_and_slices" + type: DT_STRING + } + input_arg { + name: "data" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "SaveV2" + input_arg { + name: "prefix" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "shape_and_slices" + type: DT_STRING + } + input_arg { + name: "tensors" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ScalarSummary" + input_arg { + name: "tags" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "ScaleAndTranslate" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "translation" + type: DT_FLOAT + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "kernel_type" + type: "string" + default_value { + s: "lanczos3" + } + } + attr { + name: "antialias" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScaleAndTranslateGrad" + input_arg { + name: "grads" + type_attr: "T" + } + input_arg { + name: "original_image" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "translation" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "kernel_type" + type: "string" + default_value { + s: "lanczos3" + } + } + attr { + name: "antialias" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScanDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "initial_state" + type_list_attr: "Tstate" + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Tstate" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_default_device" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScatterAdd" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterDiv" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterMax" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterMin" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterMul" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNd" + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ScatterNdAdd" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdMax" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdMin" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdNonAliasingAdd" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ScatterNdSub" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdUpdate" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScatterSub" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterUpdate" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "SdcaFprint" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } +} +op { + name: "SdcaOptimizer" + input_arg { + name: "sparse_example_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_values" + type: DT_FLOAT + number_attr: "num_sparse_features_with_values" + } + input_arg { + name: "dense_features" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_weights" + type: DT_FLOAT + } + input_arg { + name: "example_labels" + type: DT_FLOAT + } + input_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + input_arg { + name: "dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_delta_sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + output_arg { + name: "out_delta_dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + attr { + name: "loss_type" + type: "string" + allowed_values { + list { + s: "logistic_loss" + s: "squared_loss" + s: "hinge_loss" + s: "smooth_hinge_loss" + s: "poisson_loss" + } + } + } + attr { + name: "adaptative" + type: "bool" + default_value { + b: false + } + } + attr { + name: "num_sparse_features" + type: "int" + has_minimum: true + } + attr { + name: "num_sparse_features_with_values" + type: "int" + has_minimum: true + } + attr { + name: "num_dense_features" + type: "int" + has_minimum: true + } + attr { + name: "l1" + type: "float" + } + attr { + name: "l2" + type: "float" + } + attr { + name: "num_loss_partitions" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_inner_iterations" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "SdcaOptimizerV2" + input_arg { + name: "sparse_example_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_values" + type: DT_FLOAT + number_attr: "num_sparse_features_with_values" + } + input_arg { + name: "dense_features" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_weights" + type: DT_FLOAT + } + input_arg { + name: "example_labels" + type: DT_FLOAT + } + input_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + input_arg { + name: "dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_delta_sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + output_arg { + name: "out_delta_dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + attr { + name: "loss_type" + type: "string" + allowed_values { + list { + s: "logistic_loss" + s: "squared_loss" + s: "hinge_loss" + s: "smooth_hinge_loss" + s: "poisson_loss" + } + } + } + attr { + name: "adaptive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "num_sparse_features" + type: "int" + has_minimum: true + } + attr { + name: "num_sparse_features_with_values" + type: "int" + has_minimum: true + } + attr { + name: "num_dense_features" + type: "int" + has_minimum: true + } + attr { + name: "l1" + type: "float" + } + attr { + name: "l2" + type: "float" + } + attr { + name: "num_loss_partitions" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_inner_iterations" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "SdcaShrinkL1" + input_arg { + name: "weights" + type: DT_FLOAT + number_attr: "num_features" + is_ref: true + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + attr { + name: "l1" + type: "float" + } + attr { + name: "l2" + type: "float" + } +} +op { + name: "SegmentMax" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentMean" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentMin" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentProd" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentSum" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Select" + input_arg { + name: "condition" + type: DT_BOOL + } + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SelectV2" + input_arg { + name: "condition" + type: DT_BOOL + } + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SelfAdjointEig" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + } + } + } + deprecation { + version: 11 + explanation: "Use SelfAdjointEigV2 instead." + } +} +op { + name: "SelfAdjointEigV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_v" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Selu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SeluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "outputs" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Send" + input_arg { + name: "tensor" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + } + attr { + name: "send_device" + type: "string" + } + attr { + name: "send_device_incarnation" + type: "int" + } + attr { + name: "recv_device" + type: "string" + } + attr { + name: "client_terminated" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "SendTPUEmbeddingGradients" + input_arg { + name: "inputs" + type: DT_FLOAT + number_attr: "N" + } + input_arg { + name: "learning_rates" + type: DT_FLOAT + number_attr: "NN" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "NN" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "config" + type: "string" + } + is_stateful: true +} +op { + name: "SerializeIterator" + input_arg { + name: "resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "serialized" + type: DT_VARIANT + } + attr { + name: "external_state_policy" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "SerializeManySparse" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "serialized_sparse" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_STRING + } + allowed_values { + list { + type: DT_STRING + type: DT_VARIANT + } + } + } +} +op { + name: "SerializeSparse" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "serialized_sparse" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_STRING + } + allowed_values { + list { + type: DT_STRING + type: DT_VARIANT + } + } + } +} +op { + name: "SerializeTensor" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "serialized" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SetSize" + input_arg { + name: "set_indices" + type: DT_INT64 + } + input_arg { + name: "set_values" + type_attr: "T" + } + input_arg { + name: "set_shape" + type: DT_INT64 + } + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "SetStatsAggregatorDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "stats_aggregator" + type: DT_RESOURCE + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "counter_prefix" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Shape" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ShapeN" + input_arg { + name: "input" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "out_type" + number_attr: "N" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ShardDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_shards" + type: DT_INT64 + } + input_arg { + name: "index" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "require_non_empty" + type: "bool" + default_value { + b: false + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ShardedFilename" + input_arg { + name: "basename" + type: DT_STRING + } + input_arg { + name: "shard" + type: DT_INT32 + } + input_arg { + name: "num_shards" + type: DT_INT32 + } + output_arg { + name: "filename" + type: DT_STRING + } +} +op { + name: "ShardedFilespec" + input_arg { + name: "basename" + type: DT_STRING + } + input_arg { + name: "num_shards" + type: DT_INT32 + } + output_arg { + name: "filename" + type: DT_STRING + } +} +op { + name: "ShuffleAndRepeatDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ShuffleAndRepeatDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "count" + type: DT_INT64 + } + input_arg { + name: "seed_generator" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ShuffleDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ShuffleDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed_generator" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ShuffleDatasetV3" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "seed_generator" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ShutdownDistributedTPU" + is_stateful: true +} +op { + name: "Sigmoid" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SigmoidGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Sign" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Sin" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Sinh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Size" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SkipDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Skipgram" + output_arg { + name: "vocab_word" + type: DT_STRING + } + output_arg { + name: "vocab_freq" + type: DT_INT32 + } + output_arg { + name: "words_per_epoch" + type: DT_INT64 + } + output_arg { + name: "current_epoch" + type: DT_INT32 + } + output_arg { + name: "total_words_processed" + type: DT_INT64 + } + output_arg { + name: "examples" + type: DT_INT32 + } + output_arg { + name: "labels" + type: DT_INT32 + } + attr { + name: "filename" + type: "string" + } + attr { + name: "batch_size" + type: "int" + } + attr { + name: "window_size" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "min_count" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "subsample" + type: "float" + default_value { + f: 0.001 + } + } + deprecation { + version: 19 + explanation: "Moving word2vec into tensorflow_models/tutorials and deprecating its ops here as a result" + } + is_stateful: true +} +op { + name: "SleepDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "sleep_microseconds" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Slice" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "size" + type_attr: "Index" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SlidingWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "window_size" + type: DT_INT64 + } + input_arg { + name: "window_shift" + type: DT_INT64 + } + input_arg { + name: "window_stride" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Snapshot" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SnapshotDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "path" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reader_path_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "writer_path_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shard_size_bytes" + type: "int" + default_value { + i: 10737418240 + } + } + attr { + name: "pending_snapshot_expiry_seconds" + type: "int" + default_value { + i: 86400 + } + } + attr { + name: "num_reader_threads" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "reader_buffer_size" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "num_writer_threads" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "writer_buffer_size" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "shuffle_on_read" + type: "bool" + default_value { + b: false + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "mode" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "snapshot_name" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "SnapshotDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "path" + type: DT_STRING + } + input_arg { + name: "reader_func_other_args" + type_list_attr: "Treader_func_args" + } + input_arg { + name: "shard_func_other_args" + type_list_attr: "Tshard_func_args" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reader_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "writer_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reader_func" + type: "func" + } + attr { + name: "shard_func" + type: "func" + } + attr { + name: "Treader_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tshard_func_args" + type: "list(type)" + has_minimum: true + } +} +op { + name: "SobolSample" + input_arg { + name: "dim" + type: DT_INT32 + } + input_arg { + name: "num_results" + type: DT_INT32 + } + input_arg { + name: "skip" + type: DT_INT32 + } + output_arg { + name: "samples" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Softmax" + input_arg { + name: "logits" + type_attr: "T" + } + output_arg { + name: "softmax" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SoftmaxCrossEntropyWithLogits" + input_arg { + name: "features" + type_attr: "T" + } + input_arg { + name: "labels" + type_attr: "T" + } + output_arg { + name: "loss" + type_attr: "T" + } + output_arg { + name: "backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Softplus" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SoftplusGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Softsign" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SoftsignGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SpaceToBatch" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } +} +op { + name: "SpaceToBatchND" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "block_shape" + type_attr: "Tblock_shape" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tblock_shape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SpaceToDepth" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "SparseAccumulatorApplyGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "local_step" + type: DT_INT64 + } + input_arg { + name: "gradient_indices" + type: DT_INT64 + } + input_arg { + name: "gradient_values" + type_attr: "dtype" + } + input_arg { + name: "gradient_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "has_known_shape" + type: "bool" + } +} +op { + name: "SparseAccumulatorTakeGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_required" + type: DT_INT32 + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type_attr: "dtype" + } + output_arg { + name: "shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseAdd" + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "b_values" + type_attr: "T" + } + input_arg { + name: "b_shape" + type: DT_INT64 + } + input_arg { + name: "thresh" + type_attr: "Treal" + } + output_arg { + name: "sum_indices" + type: DT_INT64 + } + output_arg { + name: "sum_values" + type_attr: "T" + } + output_arg { + name: "sum_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Treal" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseAddGrad" + input_arg { + name: "backprop_val_grad" + type_attr: "T" + } + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "sum_indices" + type: DT_INT64 + } + output_arg { + name: "a_val_grad" + type_attr: "T" + } + output_arg { + name: "b_val_grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseApplyAdadelta" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum_update" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "SparseApplyAdagradDA" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_squared_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyAdagradV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "SparseApplyCenteredRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mg" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyFtrl" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyFtrlV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyMomentum" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "momentum" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyProximalAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyProximalGradientDescent" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseBincount" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "Tidx" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + input_arg { + name: "size" + type_attr: "Tidx" + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "binary_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseConcat" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "concat_dim" + type: "int" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseConditionalAccumulator" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reduction_type" + type: "string" + default_value { + s: "MEAN" + } + allowed_values { + list { + s: "MEAN" + s: "SUM" + } + } + } + is_stateful: true +} +op { + name: "SparseCountSparseOutput" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + input_arg { + name: "weights" + type_attr: "output_type" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "output_type" + } + output_arg { + name: "output_dense_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "minlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "maxlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "binary_output" + type: "bool" + } + attr { + name: "output_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseCross" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_list_attr: "sparse_types" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "out_type" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "N" + type: "int" + has_minimum: true + } + attr { + name: "hashed_output" + type: "bool" + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + } + attr { + name: "hash_key" + type: "int" + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "internal_type" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } +} +op { + name: "SparseCrossHashed" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_list_attr: "sparse_types" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + input_arg { + name: "num_buckets" + type: DT_INT64 + } + input_arg { + name: "strong_hash" + type: DT_BOOL + } + input_arg { + name: "salt" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type: DT_INT64 + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "N" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } +} +op { + name: "SparseCrossV2" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_list_attr: "sparse_types" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + input_arg { + name: "sep" + type: DT_STRING + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type: DT_STRING + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "N" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } +} +op { + name: "SparseDenseCwiseAdd" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + input_arg { + name: "dense" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseDenseCwiseDiv" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + input_arg { + name: "dense" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseDenseCwiseMul" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + input_arg { + name: "dense" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseFillEmptyRows" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + input_arg { + name: "default_value" + type_attr: "T" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "empty_row_indicator" + type: DT_BOOL + } + output_arg { + name: "reverse_index_map" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseFillEmptyRowsGrad" + input_arg { + name: "reverse_index_map" + type: DT_INT64 + } + input_arg { + name: "grad_values" + type_attr: "T" + } + output_arg { + name: "d_values" + type_attr: "T" + } + output_arg { + name: "d_default_value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseMatMul" + input_arg { + name: "a" + type_attr: "Ta" + } + input_arg { + name: "b" + type_attr: "Tb" + } + output_arg { + name: "product" + type: DT_FLOAT + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "a_is_sparse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "b_is_sparse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Ta" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_BFLOAT16 + } + } + } + attr { + name: "Tb" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_BFLOAT16 + } + } + } +} +op { + name: "SparseMatrixAdd" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type: DT_VARIANT + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + output_arg { + name: "c" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseMatrixMatMul" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_output" + type: "bool" + default_value { + b: false + } + } + attr { + name: "conjugate_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseMatrixMul" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseMatrixNNZ" + input_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + output_arg { + name: "nnz" + type: DT_INT32 + } +} +op { + name: "SparseMatrixOrderingAMD" + input_arg { + name: "input" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_INT32 + } +} +op { + name: "SparseMatrixSoftmax" + input_arg { + name: "logits" + type: DT_VARIANT + } + output_arg { + name: "softmax" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseMatrixSoftmaxGrad" + input_arg { + name: "softmax" + type: DT_VARIANT + } + input_arg { + name: "grad_softmax" + type: DT_VARIANT + } + output_arg { + name: "gradient" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseMatrixSparseCholesky" + input_arg { + name: "input" + type: DT_VARIANT + } + input_arg { + name: "permutation" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseMatrixSparseMatMul" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type: DT_VARIANT + } + output_arg { + name: "c" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_b" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseMatrixTranspose" + input_arg { + name: "input" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "conjugate" + type: "bool" + default_value { + b: false + } + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseMatrixZeros" + input_arg { + name: "dense_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseReduceMax" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReduceMaxSparse" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReduceSum" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReduceSumSparse" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReorder" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseReshape" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "new_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_shape" + type: DT_INT64 + } +} +op { + name: "SparseSegmentMean" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentMeanGrad" + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "output_dim0" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentMeanWithNumSegments" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSqrtN" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSqrtNGrad" + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "output_dim0" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSqrtNWithNumSegments" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSum" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSumWithNumSegments" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSlice" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "shape" + type: DT_INT64 + } + input_arg { + name: "start" + type: DT_INT64 + } + input_arg { + name: "size" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseSliceGrad" + input_arg { + name: "backprop_val_grad" + type_attr: "T" + } + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_start" + type: DT_INT64 + } + input_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "val_grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseSoftmax" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseSoftmaxCrossEntropyWithLogits" + input_arg { + name: "features" + type_attr: "T" + } + input_arg { + name: "labels" + type_attr: "Tlabels" + } + output_arg { + name: "loss" + type_attr: "T" + } + output_arg { + name: "backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tlabels" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSparseMaximum" + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "b_values" + type_attr: "T" + } + input_arg { + name: "b_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseSparseMinimum" + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "b_values" + type_attr: "T" + } + input_arg { + name: "b_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseSplit" + input_arg { + name: "split_dim" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + number_attr: "num_split" + } + output_arg { + name: "output_values" + type_attr: "T" + number_attr: "num_split" + } + output_arg { + name: "output_shape" + type: DT_INT64 + number_attr: "num_split" + } + attr { + name: "num_split" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseTensorDenseAdd" + input_arg { + name: "a_indices" + type_attr: "Tindices" + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type_attr: "Tindices" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseTensorDenseMatMul" + input_arg { + name: "a_indices" + type_attr: "Tindices" + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "adjoint_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_b" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseTensorSliceDataset" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "Tvalues" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Tvalues" + type: "type" + } + is_stateful: true +} +op { + name: "SparseTensorToCSRSparseMatrix" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseToDense" + input_arg { + name: "sparse_indices" + type_attr: "Tindices" + } + input_arg { + name: "output_shape" + type_attr: "Tindices" + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "default_value" + type_attr: "T" + } + output_arg { + name: "dense" + type_attr: "T" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseToSparseSetOperation" + input_arg { + name: "set1_indices" + type: DT_INT64 + } + input_arg { + name: "set1_values" + type_attr: "T" + } + input_arg { + name: "set1_shape" + type: DT_INT64 + } + input_arg { + name: "set2_indices" + type: DT_INT64 + } + input_arg { + name: "set2_values" + type_attr: "T" + } + input_arg { + name: "set2_shape" + type: DT_INT64 + } + output_arg { + name: "result_indices" + type: DT_INT64 + } + output_arg { + name: "result_values" + type_attr: "T" + } + output_arg { + name: "result_shape" + type: DT_INT64 + } + attr { + name: "set_operation" + type: "string" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "Spence" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Split" + input_arg { + name: "split_dim" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num_split" + } + attr { + name: "num_split" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SplitV" + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "size_splits" + type_attr: "Tlen" + } + input_arg { + name: "split_dim" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num_split" + } + attr { + name: "num_split" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tlen" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SqlDataset" + input_arg { + name: "driver_name" + type: DT_STRING + } + input_arg { + name: "data_source_name" + type: DT_STRING + } + input_arg { + name: "query" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Sqrt" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SqrtGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Square" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SquaredDifference" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + is_commutative: true +} +op { + name: "Squeeze" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "squeeze_dims" + type: "list(int)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "Stack" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "elem_type" + type: "type" + } + attr { + name: "stack_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StackClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } +} +op { + name: "StackCloseV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "StackPop" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "elem" + type_attr: "elem_type" + } + attr { + name: "elem_type" + type: "type" + } +} +op { + name: "StackPopV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "elem" + type_attr: "elem_type" + } + attr { + name: "elem_type" + type: "type" + } + is_stateful: true +} +op { + name: "StackPush" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "elem" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "swap_memory" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "StackPushV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "elem" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "swap_memory" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "StackV2" + input_arg { + name: "max_size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "elem_type" + type: "type" + } + attr { + name: "stack_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Stage" + input_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StageClear" + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StagePeek" + input_arg { + name: "index" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StageSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatefulPartitionedCall" + input_arg { + name: "args" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "f" + type: "func" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "config_proto" + type: "string" + default_value { + s: "" + } + } + attr { + name: "executor_type" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatefulRandomBinomial" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "counts" + type_attr: "T" + } + input_arg { + name: "probs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_DOUBLE + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "StatefulStandardNormal" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + deprecation { + version: 29 + explanation: "Use StatefulStandardNormalV2 instead" + } + is_stateful: true +} +op { + name: "StatefulStandardNormalV2" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulTruncatedNormal" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulUniform" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulUniformFullInt" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT64 + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulUniformInt" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + input_arg { + name: "minval" + type_attr: "dtype" + } + input_arg { + name: "maxval" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatelessCase" + input_arg { + name: "branch_index" + type: DT_INT32 + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "branches" + type: "list(func)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } +} +op { + name: "StatelessIf" + input_arg { + name: "cond" + type_attr: "Tcond" + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tcond" + type: "type" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "then_branch" + type: "func" + } + attr { + name: "else_branch" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } +} +op { + name: "StatelessMultinomial" + input_arg { + name: "logits" + type_attr: "T" + } + input_arg { + name: "num_samples" + type: DT_INT32 + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessParameterizedTruncatedNormal" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "means" + type_attr: "dtype" + } + input_arg { + name: "stddevs" + type_attr: "dtype" + } + input_arg { + name: "minvals" + type_attr: "dtype" + } + input_arg { + name: "maxvals" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "StatelessRandomBinomial" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "counts" + type_attr: "T" + } + input_arg { + name: "probs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_DOUBLE + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomGammaV2" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "alpha" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomGetKeyCounterAlg" + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "key" + type: DT_UINT64 + } + output_arg { + name: "counter" + type: DT_UINT64 + } + output_arg { + name: "alg" + type: DT_INT32 + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "StatelessRandomNormal" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomNormalV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomPoisson" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "lam" + type_attr: "Rtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "Rtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniform" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformFullInt" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "StatelessRandomUniformFullIntV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformInt" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "minval" + type_attr: "dtype" + } + input_arg { + name: "maxval" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformIntV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + input_arg { + name: "minval" + type_attr: "dtype" + } + input_arg { + name: "maxval" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessSampleDistortedBoundingBox" + input_arg { + name: "image_size" + type_attr: "T" + } + input_arg { + name: "bounding_boxes" + type: DT_FLOAT + } + input_arg { + name: "min_object_covered" + type: DT_FLOAT + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "begin" + type_attr: "T" + } + output_arg { + name: "size" + type_attr: "T" + } + output_arg { + name: "bboxes" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "aspect_ratio_range" + type: "list(float)" + default_value { + list { + f: 0.75 + f: 1.33 + } + } + } + attr { + name: "area_range" + type: "list(float)" + default_value { + list { + f: 0.05 + f: 1 + } + } + } + attr { + name: "max_attempts" + type: "int" + default_value { + i: 100 + } + } + attr { + name: "use_image_if_no_bounding_boxes" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "StatelessTruncatedNormal" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessTruncatedNormalV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessWhile" + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "cond" + type: "func" + } + attr { + name: "body" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } +} +op { + name: "StaticRegexFullMatch" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "pattern" + type: "string" + } +} +op { + name: "StaticRegexReplace" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "pattern" + type: "string" + } + attr { + name: "rewrite" + type: "string" + } + attr { + name: "replace_global" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "StatsAggregatorHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatsAggregatorHandleV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatsAggregatorSetSummaryWriter" + input_arg { + name: "stats_aggregator" + type: DT_RESOURCE + } + input_arg { + name: "summary" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "StatsAggregatorSummary" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "summary" + type: DT_STRING + } + is_stateful: true +} +op { + name: "StopGradient" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "StridedSlice" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "StridedSliceAssign" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "StridedSliceGrad" + input_arg { + name: "shape" + type_attr: "Index" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "StringFormat" + input_arg { + name: "inputs" + type_list_attr: "T" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "template" + type: "string" + default_value { + s: "%s" + } + } + attr { + name: "placeholder" + type: "string" + default_value { + s: "%s" + } + } + attr { + name: "summarize" + type: "int" + default_value { + i: 3 + } + } +} +op { + name: "StringJoin" + input_arg { + name: "inputs" + type: DT_STRING + number_attr: "N" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "separator" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "StringLength" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT32 + } + attr { + name: "unit" + type: "string" + default_value { + s: "BYTE" + } + allowed_values { + list { + s: "BYTE" + s: "UTF8_CHAR" + } + } + } +} +op { + name: "StringLower" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "encoding" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "StringNGrams" + input_arg { + name: "data" + type: DT_STRING + } + input_arg { + name: "data_splits" + type_attr: "Tsplits" + } + output_arg { + name: "ngrams" + type: DT_STRING + } + output_arg { + name: "ngrams_splits" + type_attr: "Tsplits" + } + attr { + name: "separator" + type: "string" + } + attr { + name: "ngram_widths" + type: "list(int)" + has_minimum: true + } + attr { + name: "left_pad" + type: "string" + } + attr { + name: "right_pad" + type: "string" + } + attr { + name: "pad_width" + type: "int" + } + attr { + name: "preserve_short_sequences" + type: "bool" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StringSplit" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "delimiter" + type: DT_STRING + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type: DT_STRING + } + output_arg { + name: "shape" + type: DT_INT64 + } + attr { + name: "skip_empty" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "StringSplitV2" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "sep" + type: DT_STRING + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type: DT_STRING + } + output_arg { + name: "shape" + type: DT_INT64 + } + attr { + name: "maxsplit" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "StringStrip" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } +} +op { + name: "StringToHashBucket" + input_arg { + name: "string_tensor" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "StringToHashBucketFast" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "StringToHashBucketStrong" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "key" + type: "list(int)" + } +} +op { + name: "StringToNumber" + input_arg { + name: "string_tensor" + type: DT_STRING + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StringUpper" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "encoding" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Sub" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_UINT32 + } + } + } +} +op { + name: "Substr" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "pos" + type_attr: "T" + } + input_arg { + name: "len" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "unit" + type: "string" + default_value { + s: "BYTE" + } + allowed_values { + list { + s: "BYTE" + s: "UTF8_CHAR" + } + } + } +} +op { + name: "Sum" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SummaryWriter" + output_arg { + name: "writer" + type: DT_RESOURCE + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Svd" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "s" + type_attr: "T" + } + output_arg { + name: "u" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_uv" + type: "bool" + default_value { + b: true + } + } + attr { + name: "full_matrices" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Switch" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "pred" + type: DT_BOOL + } + output_arg { + name: "output_false" + type_attr: "T" + } + output_arg { + name: "output_true" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SymbolicGradient" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "f" + type: "func" + } +} +op { + name: "TFRecordDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "TFRecordReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use TFRecordReaderV2" + } + is_stateful: true +} +op { + name: "TFRecordReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TPUCompilationResult" + output_arg { + name: "output" + type: DT_STRING + } +} +op { + name: "TPUCompile" + input_arg { + name: "dynamic_shapes" + type: DT_INT64 + number_attr: "NumDynamicShapes" + } + input_arg { + name: "guaranteed_constants" + type_list_attr: "Tguaranteed_constants" + } + output_arg { + name: "compilation_status" + type: DT_STRING + } + output_arg { + name: "program" + type: DT_STRING + number_attr: "num_computations" + } + output_arg { + name: "may_modify_variables" + type: DT_BOOL + number_attr: "num_computations" + } + attr { + name: "num_computations" + type: "int" + has_minimum: true + } + attr { + name: "function" + type: "func" + } + attr { + name: "metadata" + type: "string" + } + attr { + name: "NumDynamicShapes" + type: "int" + has_minimum: true + } + attr { + name: "Tguaranteed_constants" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "TPUCompileSucceededAssert" + input_arg { + name: "compilation_status" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TPUEmbeddingActivations" + input_arg { + name: "embedding_variable" + type: DT_FLOAT + } + input_arg { + name: "sliced_activations" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + has_minimum: true + } + attr { + name: "lookup_id" + type: "int" + has_minimum: true + } +} +op { + name: "TPUExecute" + input_arg { + name: "args" + type_list_attr: "Targs" + } + input_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "results" + type_list_attr: "Tresults" + } + attr { + name: "Targs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tresults" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "TPUExecuteAndUpdateVariables" + input_arg { + name: "args" + type_list_attr: "Targs" + } + input_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "results" + type_list_attr: "Tresults" + } + attr { + name: "Targs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tresults" + type: "list(type)" + has_minimum: true + } + attr { + name: "device_var_reads_indices" + type: "list(int)" + has_minimum: true + } + attr { + name: "device_var_updates_indices" + type: "list(int)" + has_minimum: true + } + is_stateful: true +} +op { + name: "TPUOrdinalSelector" + output_arg { + name: "device_ordinals" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "TPUPartitionedCall" + input_arg { + name: "args" + type_list_attr: "Tin" + } + input_arg { + name: "device_ordinal" + type: DT_INT32 + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "f" + type: "func" + } + attr { + name: "autotuner_thresh" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TPUPartitionedInput" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "partition_dim" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TPUPartitionedOutput" + input_arg { + name: "inputs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num_splits" + } + attr { + name: "T" + type: "type" + } + attr { + name: "num_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "partition_dim" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TPUReplicateMetadata" + attr { + name: "num_replicas" + type: "int" + has_minimum: true + } + attr { + name: "num_cores_per_replica" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "topology" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_tpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "device_assignment" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "computation_shape" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "host_compute_core" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "padding_map" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "step_marker_location" + type: "string" + default_value { + s: "STEP_MARK_AT_ENTRY" + } + } + attr { + name: "allow_soft_placement" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_spmd_for_xla_partitioning" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "TPUReplicatedInput" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "is_mirrored_variable" + type: "bool" + default_value { + b: false + } + } + attr { + name: "index" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "is_packed" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "TPUReplicatedOutput" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "outputs" + type_attr: "T" + number_attr: "num_replicas" + } + attr { + name: "num_replicas" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "TakeDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "TakeManySparseFromTensorsMap" + input_arg { + name: "sparse_handles" + type: DT_INT64 + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "dtype" + } + output_arg { + name: "sparse_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TakeWhileDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "predicate" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Tan" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Tanh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TanhGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TemporaryVariable" + output_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "var_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TensorArray" + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "dynamic_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clear_after_read" + type: "bool" + default_value { + b: true + } + } + attr { + name: "tensor_array_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayV3" + } + is_stateful: true +} +op { + name: "TensorArrayClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + deprecation { + version: 16 + explanation: "Use TensorArrayCloseV3" + } +} +op { + name: "TensorArrayCloseV2" + input_arg { + name: "handle" + type: DT_STRING + } + deprecation { + version: 26 + explanation: "Use TensorArrayCloseV3" + } +} +op { + name: "TensorArrayCloseV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "TensorArrayConcat" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape_except0" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayGradV3" + } +} +op { + name: "TensorArrayConcatV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape_except0" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } +} +op { + name: "TensorArrayConcatV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape_except0" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + is_stateful: true +} +op { + name: "TensorArrayGather" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayGatherV3" + } +} +op { + name: "TensorArrayGatherV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 26 + explanation: "Use TensorArrayGatherV3" + } +} +op { + name: "TensorArrayGatherV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + is_stateful: true +} +op { + name: "TensorArrayGrad" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "grad_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "source" + type: "string" + } + deprecation { + version: 16 + explanation: "Use TensorArrayGradV3" + } + is_stateful: true +} +op { + name: "TensorArrayGradV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "grad_handle" + type: DT_STRING + } + attr { + name: "source" + type: "string" + } + deprecation { + version: 26 + explanation: "Use TensorArrayGradV3" + } + is_stateful: true +} +op { + name: "TensorArrayGradV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "grad_handle" + type: DT_RESOURCE + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "source" + type: "string" + } + is_stateful: true +} +op { + name: "TensorArrayGradWithShape" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + input_arg { + name: "shape_to_prepend" + type: DT_INT32 + } + output_arg { + name: "grad_handle" + type: DT_RESOURCE + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "source" + type: "string" + } + is_stateful: true +} +op { + name: "TensorArrayPack" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayGatherV3 with RangeOp" + } +} +op { + name: "TensorArrayRead" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + deprecation { + version: 16 + explanation: "Use TensorArrayReadV3" + } +} +op { + name: "TensorArrayReadV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArrayReadV3" + } +} +op { + name: "TensorArrayReadV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "TensorArrayScatter" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 19 + explanation: "Use TensorArrayGradV3" + } +} +op { + name: "TensorArrayScatterV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArrayScatterV3" + } +} +op { + name: "TensorArrayScatterV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "TensorArraySize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "size" + type: DT_INT32 + } + deprecation { + version: 16 + explanation: "Use TensorArraySizeV3" + } +} +op { + name: "TensorArraySizeV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "size" + type: DT_INT32 + } + deprecation { + version: 26 + explanation: "Use TensorArraySizeV3" + } +} +op { + name: "TensorArraySizeV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "size" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "TensorArraySplit" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 16 + explanation: "Use TensorArraySplitV3" + } +} +op { + name: "TensorArraySplitV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArraySplitV3" + } +} +op { + name: "TensorArraySplitV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "TensorArrayUnpack" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 20 + explanation: "Use TensorArrayScatterV3 with RangeOp" + } +} +op { + name: "TensorArrayV2" + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_STRING + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + attr { + name: "dynamic_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clear_after_read" + type: "bool" + default_value { + b: true + } + } + attr { + name: "tensor_array_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use TensorArrayV3" + } + is_stateful: true +} +op { + name: "TensorArrayV3" + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "flow" + type: DT_FLOAT + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + attr { + name: "dynamic_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clear_after_read" + type: "bool" + default_value { + b: true + } + } + attr { + name: "identical_element_shapes" + type: "bool" + default_value { + b: false + } + } + attr { + name: "tensor_array_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TensorArrayWrite" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 16 + explanation: "Use TensorArrayWriteV3" + } +} +op { + name: "TensorArrayWriteV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArrayWriteV3" + } +} +op { + name: "TensorArrayWriteV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "TensorDataset" + input_arg { + name: "components" + type_list_attr: "Toutput_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "TensorForestCreateTreeVariable" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + input_arg { + name: "tree_config" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TensorForestTreeDeserialize" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + input_arg { + name: "tree_config" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TensorForestTreeIsInitializedOp" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "TensorForestTreePredict" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + input_arg { + name: "dense_features" + type: DT_FLOAT + } + output_arg { + name: "logits" + type: DT_FLOAT + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "TensorForestTreeResourceHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TensorForestTreeSerialize" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + output_arg { + name: "tree_config" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TensorForestTreeSize" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + output_arg { + name: "tree_size" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "TensorListConcat" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } +} +op { + name: "TensorListConcatLists" + input_arg { + name: "input_a" + type: DT_VARIANT + } + input_arg { + name: "input_b" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListConcatV2" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "leading_dims" + type: DT_INT64 + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListElementShape" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "element_shape" + type_attr: "shape_type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListFromTensor" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListGather" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListGetItem" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "item" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListLength" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "length" + type: DT_INT32 + } +} +op { + name: "TensorListPopBack" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListPushBack" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListPushBackBatch" + input_arg { + name: "input_handles" + type: DT_VARIANT + } + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "output_handles" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListReserve" + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "num_elements" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListResize" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } +} +op { + name: "TensorListScatter" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListScatterIntoExistingList" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListScatterV2" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "num_elements" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListSetItem" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "item" + type_attr: "element_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListSplit" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListStack" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "num_elements" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "TensorMapErase" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } +} +op { + name: "TensorMapHasKey" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + output_arg { + name: "has_key" + type: DT_BOOL + } + attr { + name: "key_dtype" + type: "type" + } +} +op { + name: "TensorMapInsert" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + input_arg { + name: "value" + type_attr: "value_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } +} +op { + name: "TensorMapLookup" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + output_arg { + name: "value" + type_attr: "value_dtype" + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } +} +op { + name: "TensorMapSize" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "TensorMapStackKeys" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "keys" + type_attr: "key_dtype" + } + attr { + name: "key_dtype" + type: "type" + } +} +op { + name: "TensorScatterAdd" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterMax" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterMin" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterSub" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterUpdate" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorSliceDataset" + input_arg { + name: "components" + type_list_attr: "Toutput_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "TensorStridedSliceUpdate" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TensorSummary" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } + attr { + name: "description" + type: "string" + default_value { + s: "" + } + } + attr { + name: "labels" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "display_name" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "TensorSummaryV2" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "serialized_summary_metadata" + type: DT_STRING + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } +} +op { + name: "TextLineDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "TextLineReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "skip_header_lines" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use TextLineReaderV2" + } + is_stateful: true +} +op { + name: "TextLineReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "skip_header_lines" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "thread_pool" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ThreadPoolHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "num_threads" + type: "int" + } + attr { + name: "max_intra_op_parallelism" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "display_name" + type: "string" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ThreadUnsafeUnigramCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Tile" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "multiples" + type_attr: "Tmultiples" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tmultiples" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TileGrad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "multiples" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 3 + explanation: "TileGrad has been replaced with reduce_sum" + } +} +op { + name: "Timestamp" + output_arg { + name: "ts" + type: DT_DOUBLE + } + is_stateful: true +} +op { + name: "ToBool" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + } +} +op { + name: "TopK" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "indices" + type: DT_INT32 + } + attr { + name: "k" + type: "int" + has_minimum: true + } + attr { + name: "sorted" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + deprecation { + version: 7 + explanation: "Use TopKV2 instead" + } +} +op { + name: "TopKUnique" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "topk" + type: DT_FLOAT + } + output_arg { + name: "topk_indices" + type: DT_INT32 + } + attr { + name: "k" + type: "int" + } +} +op { + name: "TopKV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "indices" + type: DT_INT32 + } + attr { + name: "sorted" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "TopKWithUnique" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "topk" + type: DT_FLOAT + } + output_arg { + name: "topk_indices" + type: DT_INT32 + } + attr { + name: "k" + type: "int" + } +} +op { + name: "Transpose" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "perm" + type_attr: "Tperm" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tperm" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TridiagonalMatMul" + input_arg { + name: "superdiag" + type_attr: "T" + } + input_arg { + name: "maindiag" + type_attr: "T" + } + input_arg { + name: "subdiag" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TridiagonalSolve" + input_arg { + name: "diagonals" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "partial_pivoting" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TruncateDiv" + 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_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TruncateMod" + 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_INT32 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "TruncatedNormal" + input_arg { + name: "shape" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "TryRpc" + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "method" + type: DT_STRING + } + input_arg { + name: "request" + type: DT_STRING + } + output_arg { + name: "response" + type: DT_STRING + } + output_arg { + name: "status_code" + type: DT_INT32 + } + output_arg { + name: "status_message" + type: DT_STRING + } + attr { + name: "protocol" + type: "string" + default_value { + s: "" + } + } + attr { + name: "fail_fast" + type: "bool" + default_value { + b: true + } + } + attr { + name: "timeout_in_ms" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Unbatch" + input_arg { + name: "batched_tensor" + type_attr: "T" + } + input_arg { + name: "batch_index" + type: DT_INT64 + } + input_arg { + name: "id" + type: DT_INT64 + } + output_arg { + name: "unbatched_tensor" + type_attr: "T" + } + attr { + name: "timeout_micros" + type: "int" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "T" + type: "type" + } +} +op { + name: "UnbatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "UnbatchGrad" + input_arg { + name: "original_input" + type_attr: "T" + } + input_arg { + name: "batch_index" + type: DT_INT64 + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "id" + type: DT_INT64 + } + output_arg { + name: "batched_grad" + type_attr: "T" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "T" + type: "type" + } +} +op { + name: "UncompressElement" + input_arg { + name: "compressed" + type: DT_VARIANT + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "UnicodeDecode" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "row_splits" + type_attr: "Tsplits" + } + output_arg { + name: "char_values" + type: DT_INT32 + } + attr { + name: "input_encoding" + type: "string" + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "strict" + s: "replace" + s: "ignore" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "replace_control_characters" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnicodeDecodeWithOffsets" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "row_splits" + type_attr: "Tsplits" + } + output_arg { + name: "char_values" + type: DT_INT32 + } + output_arg { + name: "char_to_byte_starts" + type: DT_INT64 + } + attr { + name: "input_encoding" + type: "string" + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "strict" + s: "replace" + s: "ignore" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "replace_control_characters" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnicodeEncode" + input_arg { + name: "input_values" + type: DT_INT32 + } + input_arg { + name: "input_splits" + type_attr: "Tsplits" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "ignore" + s: "replace" + s: "strict" + } + } + } + attr { + name: "output_encoding" + type: "string" + allowed_values { + list { + s: "UTF-8" + s: "UTF-16-BE" + s: "UTF-32-BE" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnicodeScript" + input_arg { + name: "input" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_INT32 + } +} +op { + name: "UnicodeTranscode" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "input_encoding" + type: "string" + } + attr { + name: "output_encoding" + type: "string" + allowed_values { + list { + s: "UTF-8" + s: "UTF-16-BE" + s: "UTF-32-BE" + } + } + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "strict" + s: "replace" + s: "ignore" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "replace_control_characters" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "UniformCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Unique" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UniqueDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "UniqueV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Taxis" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UniqueWithCounts" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + output_arg { + name: "count" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UniqueWithCountsV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + output_arg { + name: "count" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Taxis" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Unpack" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num" + } + attr { + name: "num" + type: "int" + has_minimum: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "axis" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "UnravelIndex" + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "dims" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "Tidx" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentJoin" + input_arg { + name: "inputs" + type: DT_STRING + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "separator" + type: "string" + default_value { + s: "" + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentMax" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentMin" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentProd" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentSum" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Unstage" + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "UnwrapDatasetVariant" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } +} +op { + name: "UpperBound" + input_arg { + name: "sorted_inputs" + type_attr: "T" + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "VarHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "allowed_devices" + type: "list(string)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "VarIsInitializedOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "Variable" + output_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "VariableShape" + input_arg { + name: "input" + type: DT_RESOURCE + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "VariableV2" + output_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Where" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "index" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_BOOL + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } +} +op { + name: "While" + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "cond" + type: "func" + } + attr { + name: "body" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } + is_stateful: true +} +op { + name: "WholeFileReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "WholeFileReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "WindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "size" + type: DT_INT64 + } + input_arg { + name: "shift" + type: DT_INT64 + } + input_arg { + name: "stride" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "WorkerHeartbeat" + input_arg { + name: "request" + type: DT_STRING + } + output_arg { + name: "response" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WrapDatasetVariant" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } +} +op { + name: "WriteAudioSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_FLOAT + } + attr { + name: "max_outputs" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "WriteFile" + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "contents" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WriteGraphSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tensor" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WriteHistogramSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "WriteImageSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "bad_color" + type: DT_UINT8 + } + attr { + name: "max_images" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_UINT8 + type: DT_FLOAT + type: DT_HALF + } + } + } + is_stateful: true +} +op { + name: "WriteRawProtoSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tensor" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WriteScalarSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "WriteSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "summary_metadata" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "Xdivy" + 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: "XlaBroadcastHelper" + input_arg { + name: "lhs" + description: "the LHS input tensor" + type_attr: "T" + } + input_arg { + name: "rhs" + description: "the RHS input tensor" + type_attr: "T" + } + input_arg { + name: "broadcast_dims" + description: "an XLA-style broadcast dimension specification" + type_attr: "Tindices" + } + output_arg { + name: "lhs_output" + description: "the broadcasted LHS tensor" + type_attr: "T" + } + output_arg { + name: "rhs_output" + description: "the broadcasted RHS tensor" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + summary: "Helper operator for performing XLA-style broadcasts" + description: "Broadcasts `lhs` and `rhs` to the same rank, by adding size 1 dimensions to\nwhichever of `lhs` and `rhs` has the lower rank, using XLA\'s broadcasting rules\nfor binary operators." +} +op { + name: "XlaClusterOutput" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "outputs" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + summary: "Operator that connects the output of an XLA computation to other consumer graph nodes." +} +op { + name: "XlaConv" + input_arg { + name: "lhs" + description: "the input tensor" + type_attr: "T" + } + input_arg { + name: "rhs" + description: "the kernel tensor" + type_attr: "T" + } + input_arg { + name: "window_strides" + description: "the inter-window strides" + type_attr: "Tindices" + } + input_arg { + name: "padding" + description: "the padding to apply at the start and end of each input dimensions" + type_attr: "Tindices" + } + input_arg { + name: "lhs_dilation" + description: "dilation to apply between input elements" + type_attr: "Tindices" + } + input_arg { + name: "rhs_dilation" + description: "dilation to apply between kernel elements" + type_attr: "Tindices" + } + input_arg { + name: "feature_group_count" + description: "number of feature groups for grouped convolution." + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dimension_numbers" + type: "string" + description: "a serialized xla::ConvolutionDimensionNumbers proto." + } + attr { + name: "precision_config" + type: "string" + description: "a serialized xla::PrecisionConfig proto." + } + summary: "Wraps the XLA ConvGeneralDilated operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#conv_convolution\n." +} +op { + name: "XlaDequantize" + input_arg { + name: "input" + description: "Input tensors whose types is uint32, shape is [d0, ..., dn]." + type: DT_UINT32 + } + output_arg { + name: "output" + description: "Output tensors whose types is bloat16. If transpose_output is true,\noutput shape is [dn * 4, dn-1, ..., d1, d0]. If transpose_output\nis false, output shape is [d0,..., dn * 4]." + type: DT_BFLOAT16 + } + attr { + name: "min_range" + type: "float" + description: "The minimum scalar value possibly produced for the input." + } + attr { + name: "max_range" + type: "float" + description: "The maximum scalar value possibly produced for the input." + } + attr { + name: "mode" + type: "string" + description: "String to determine the dequantize mode in {\"MIN_COMBINED\", \"MIN_FIRST\", \"SCALED\"}." + } + attr { + name: "transpose_output" + type: "bool" + description: "Boolean to determine if output is transposed. transpose_output\nis faster when input is large and rank of input is higher than 1." + } + summary: "Takes the packed uint32 input and unpacks the input to uint8 to do" + description: "Dequantization on device." + is_stateful: true +} +op { + name: "XlaDot" + input_arg { + name: "lhs" + description: "the LHS tensor" + type_attr: "T" + } + input_arg { + name: "rhs" + description: "the RHS tensor" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "dimension_numbers" + type: "string" + description: "a serialized xla::DotDimensionNumbers proto." + } + attr { + name: "precision_config" + type: "string" + description: "a serialized xla::PrecisionConfig proto." + } + summary: "Wraps the XLA DotGeneral operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#dotgeneral\n." +} +op { + name: "XlaDynamicSlice" + input_arg { + name: "input" + description: "A `Tensor` of type T." + type_attr: "T" + } + input_arg { + name: "start_indices" + description: "List of N integers containing the slice size for each\ndimension. Each value must be strictly greater than zero, and start + size\nmust be less than or equal to the size of the dimension to avoid\nimplementation defined behavior." + type_attr: "Tindices" + } + input_arg { + name: "size_indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + summary: "Wraps the XLA DynamicSlice operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#dynamicslice\n.\n\nDynamicSlice extracts a sub-array from the input array at dynamic\nstart_indices. The size of the slice in each dimension is passed in\nsize_indices, which specify the end point of exclusive slice intervals in each\ndimension -- [start, start + size). The shape of start_indices must have rank 1,\nwith dimension size equal to the rank of operand." +} +op { + name: "XlaDynamicUpdateSlice" + input_arg { + name: "input" + description: "A `Tensor` of type T." + type_attr: "T" + } + input_arg { + name: "update" + description: "A `Tensor` of type T. Same rank as `input`." + type_attr: "T" + } + input_arg { + name: "indices" + description: "A vector of indices into `input`. Must have length equal to the rank of\n`input`." + type_attr: "Tindices" + } + output_arg { + name: "output" + description: "A `Tensor` of type T." + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + summary: "Wraps the XLA DynamicUpdateSlice operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#dynamicupdateslice\n.\n\nXlaDynamicUpdateSlice generates a result which is the value of the `input`\noperand, with a slice update overwritten at `indices`. The shape of `update`\ndetermines the shape of the sub-array of the result which is updated. The shape\nof indices must be rank == 1, with dimension size equal to the rank of `input`.\n\nHandling of out-of-bounds slice indices is implementation-defined." +} +op { + name: "XlaEinsum" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "equation" + type: "string" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + summary: "An op which supports basic einsum op with 2 inputs and 1 output." + description: "This op has better TPU performance since it doesn\'t have explicitly reshape and\ntranspose operations as tf.einsum does." +} +op { + name: "XlaGather" + input_arg { + name: "operand" + description: "The array we\'re gathering from." + type_attr: "T" + } + input_arg { + name: "start_indices" + description: "Array containing the starting indices of the slices we gather." + type_attr: "Tindices" + } + input_arg { + name: "slice_sizes" + description: "slice_sizes[i] is the bounds for the slice on dimension i." + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "dimension_numbers" + type: "string" + description: "A serialized xla::GatherDimensionNumbers proto." + } + attr { + name: "indices_are_sorted" + type: "bool" + description: "Boolean indicating if the indices are sorted." + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + summary: "Wraps the XLA Gather operator documented at" + description: " https://www.tensorflow.org/xla/operation_semantics#gather" +} +op { + name: "XlaHostCompute" + input_arg { + name: "inputs" + type_list_attr: "Tinputs" + } + output_arg { + name: "outputs" + type_list_attr: "Toutputs" + } + attr { + name: "Tinputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Toutputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "ancestors" + type: "list(string)" + has_minimum: true + } + attr { + name: "shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "shape_inference_graph" + type: "func" + } + attr { + name: "key" + type: "string" + } + attr { + name: "cost_estimate_ns" + type: "int" + default_value { + i: 1000000 + } + } + attr { + name: "tpu_core" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "XlaIf" + input_arg { + name: "cond" + description: "A boolean scalar." + type_attr: "Tcond" + } + input_arg { + name: "inputs" + description: "A list of input tensors." + type_list_attr: "Tin" + } + output_arg { + name: "output" + description: "A list of tensors returned by either then_branch(inputs) or\nelse_branch(inputs). The input shapes of the then_branch and\nelse_branch must match." + type_list_attr: "Tout" + } + attr { + name: "Tcond" + type: "type" + } + attr { + name: "then_branch" + type: "func" + description: "A function takes \'inputs\' and returns a list of tensors,\nwhose types are the same as what else_branch returns." + } + attr { + name: "else_branch" + type: "func" + description: "A function takes \'inputs\' and returns a list of tensors.\nwhose types are the same as what then_branch returns." + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + summary: "output = cond ? then_branch(inputs) : else_branch(inputs)." + is_stateful: true +} +op { + name: "XlaKeyValueSort" + input_arg { + name: "keys" + description: "A `Tensor` of type K." + type_attr: "K" + } + input_arg { + name: "values" + description: "A `Tensor` of type V." + type_attr: "V" + } + output_arg { + name: "sorted_keys" + description: "A `Tensor` of type K." + type_attr: "K" + } + output_arg { + name: "sorted_values" + description: "A `Tensor` of type V." + type_attr: "V" + } + attr { + name: "K" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "V" + type: "type" + } + summary: "Wraps the XLA Sort operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#sort\n.\n\nSorts a tensor. Currently only sorts in ascending order are supported." +} +op { + name: "XlaLaunch" + input_arg { + name: "constants" + type_list_attr: "Tconstants" + } + input_arg { + name: "args" + type_list_attr: "Targs" + } + input_arg { + name: "resources" + type: DT_RESOURCE + number_attr: "Nresources" + } + output_arg { + name: "results" + type_list_attr: "Tresults" + } + attr { + name: "Tconstants" + type: "list(type)" + has_minimum: true + } + attr { + name: "Targs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Nresources" + type: "int" + has_minimum: true + } + attr { + name: "Tresults" + type: "list(type)" + has_minimum: true + } + attr { + name: "function" + type: "func" + } + summary: "XLA Launch Op. For use by the XLA JIT only." + is_stateful: true +} +op { + name: "XlaPad" + input_arg { + name: "input" + description: "A `Tensor` of type T." + type_attr: "T" + } + input_arg { + name: "padding_value" + description: "A scalar `Tensor` of type T." + type_attr: "T" + } + input_arg { + name: "padding_low" + description: "the padding to apply at the start of each input dimensions" + type_attr: "Tindices" + } + input_arg { + name: "padding_high" + description: "the padding to apply at the end of each input dimension." + type_attr: "Tindices" + } + input_arg { + name: "padding_interior" + description: "the padding to apply between each input element." + type_attr: "Tindices" + } + output_arg { + name: "output" + description: "A `Tensor` of type T." + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + summary: "Wraps the XLA Pad operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#pad\n." +} +op { + name: "XlaRecv" + output_arg { + name: "tensor" + description: "The tensor to receive." + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + description: "The type of the tensor." + } + attr { + name: "tensor_name" + type: "string" + description: "A string key that identifies the channel." + } + attr { + name: "shape" + type: "shape" + description: "The shape of the tensor." + } + summary: "Receives the named tensor from another XLA computation. Wraps the XLA Recv" + description: "operator documented at\n https://www.tensorflow.org/performance/xla/operation_semantics#recv ." + is_stateful: true +} +op { + name: "XlaRecvFromHost" + output_arg { + name: "output" + type_attr: "Toutput" + } + attr { + name: "Toutput" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "key" + type: "string" + } + is_stateful: true +} +op { + name: "XlaReduce" + input_arg { + name: "input" + description: "the input tensor" + type_attr: "T" + } + input_arg { + name: "init_value" + description: "a scalar representing the initial value for the reduction" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "dimensions_to_reduce" + type: "list(int)" + description: "dimension numbers over which to reduce" + } + attr { + name: "reducer" + type: "func" + description: "a reducer function to apply" + } + summary: "Wraps the XLA Reduce operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#reduce ." +} +op { + name: "XlaReduceWindow" + input_arg { + name: "input" + description: "the input tensor" + type_attr: "T" + } + input_arg { + name: "init_value" + description: "a scalar representing the initial value for the reduction" + type_attr: "T" + } + input_arg { + name: "window_dimensions" + description: "the shape of the window" + type_attr: "Tindices" + } + input_arg { + name: "window_strides" + description: "the inter-window strides" + type_attr: "Tindices" + } + input_arg { + name: "base_dilations" + type_attr: "Tindices" + } + input_arg { + name: "window_dilations" + type_attr: "Tindices" + } + input_arg { + name: "padding" + description: "the padding to apply at the start and end of each input dimensions" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "computation" + type: "func" + description: "a reducer function to apply" + } + summary: "Wraps the XLA ReduceWindow operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#reducewindow ." +} +op { + name: "XlaReplicaId" + output_arg { + name: "id" + type: DT_INT32 + } + summary: "Replica ID." +} +op { + name: "XlaScatter" + input_arg { + name: "operand" + description: "Array to be scattered into." + type_attr: "T" + } + input_arg { + name: "scatter_indices" + description: "Array containing the starting indices of the slices that must\nbe scattered to." + type_attr: "Tindices" + } + input_arg { + name: "updates" + description: "Array containing the values that must be used for scattering." + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "update_computation" + type: "func" + description: "Computation to be used for combining the existing values in\nthe input array and the updates during scatter." + } + attr { + name: "dimension_numbers" + type: "string" + description: "A serialized xla::ScatterDimensionNumbers proto." + } + attr { + name: "indices_are_sorted" + type: "bool" + description: "Boolean indicating if the indices are sorted." + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + summary: "Wraps the XLA Scatter operator documented at" + description: " https://www.tensorflow.org/xla/operation_semantics#scatter." +} +op { + name: "XlaSelectAndScatter" + input_arg { + name: "operand" + description: "the input tensor" + type_attr: "T" + } + input_arg { + name: "window_dimensions" + description: "the shape of the window" + type_attr: "Tindices" + } + input_arg { + name: "window_strides" + description: "the inter-window strides" + type_attr: "Tindices" + } + input_arg { + name: "padding" + description: "the padding to apply at the start and end of each input dimensions" + type_attr: "Tindices" + } + input_arg { + name: "source" + description: "a tensor of values to scatter" + type_attr: "T" + } + input_arg { + name: "init_value" + description: "a scalar representing the initial value for the output tensor" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "select" + type: "func" + description: "a selection function to apply" + } + attr { + name: "scatter" + type: "func" + description: "a scatter function to apply" + } + summary: "Wraps the XLA SelectAndScatter operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#selectandscatter\n." +} +op { + name: "XlaSelfAdjointEig" + input_arg { + name: "a" + description: "the input tensor." + type_attr: "T" + } + output_arg { + name: "w" + description: "The eigenvalues in ascending order, each repeated according to its\nmultiplicity." + type_attr: "T" + } + output_arg { + name: "v" + description: "The column v[..., :, i] is the normalized eigenvector corresponding to the\neigenvalue w[..., i]." + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + description: "a boolean specifies whether the calculation is done with the lower\ntriangular part or the upper triangular part." + } + attr { + name: "max_iter" + type: "int" + description: "maximum number of sweep update, i.e., the whole lower triangular\npart or upper triangular part based on parameter lower. Heuristically, it has\nbeen argued that approximately logN sweeps are needed in practice (Ref: Golub &\nvan Loan \"Matrix Computation\")." + } + attr { + name: "epsilon" + type: "float" + description: "the tolerance ratio." + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + summary: "Computes the eigen decomposition of a batch of self-adjoint matrices" + description: "(Note: Only real inputs are supported).\n\nComputes the eigenvalues and eigenvectors of the innermost N-by-N matrices in\ntensor such that tensor[...,:,:] * v[..., :,i] = e[..., i] * v[...,:,i], for\ni=0...N-1." +} +op { + name: "XlaSend" + input_arg { + name: "tensor" + description: "The tensor to send." + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + description: "A string key that identifies the channel." + } + summary: "Sends the named tensor to another XLA computation. Wraps the XLA Send operator" + description: "documented at\n https://www.tensorflow.org/performance/xla/operation_semantics#send ." + is_stateful: true +} +op { + name: "XlaSendToHost" + input_arg { + name: "input" + type_attr: "Tinput" + } + attr { + name: "Tinput" + type: "type" + } + attr { + name: "key" + type: "string" + } + is_stateful: true +} +op { + name: "XlaSetBound" + input_arg { + name: "input" + type: DT_INT32 + } + input_arg { + name: "bound" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_INT32 + } + summary: "Set a bound for the given input value as a hint to Xla compiler," + description: " returns the same value." +} +op { + name: "XlaSharding" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + summary: "An op which shards the input based on the given sharding attribute." +} +op { + name: "XlaSort" + input_arg { + name: "input" + description: "A `Tensor` of type T." + type_attr: "T" + } + output_arg { + name: "output" + description: "A `Tensor` of type T." + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + summary: "Wraps the XLA Sort operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#sort\n.\n\nSorts a tensor. Currently only sorts in ascending order are supported." +} +op { + name: "XlaSpmdFullToShardShape" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "manual_sharding" + type: "string" + } + summary: "An op used by XLA SPMD partitioner to switch from automatic partitioning to" + description: "manual partitioning. It annotates the input (full-shape, to be automatically\npartitioned) with the same sharding used by manual partitioning, and outputs a\nshard-shaped tensor to be consumed by later manually-partitioned ops. If the\nshape is not evenly partitionable, the padding region will be masked with 0s." +} +op { + name: "XlaSpmdShardToFullShape" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "manual_sharding" + type: "string" + } + attr { + name: "full_shape" + type: "shape" + } + summary: "An op used by XLA SPMD partitioner to switch from manual partitioning to" + description: "automatic partitioning. It converts the shard-shaped, manually partitioned input\ninto full-shaped tensor to be partitioned automatically with the same sharding\nused by manual partitioning." +} +op { + name: "XlaSvd" + input_arg { + name: "a" + description: "the input tensor." + type_attr: "T" + } + output_arg { + name: "s" + description: "Singular values. The values are sorted in reverse order of magnitude, so\ns[..., 0] is the largest value, s[..., 1] is the second largest, etc." + type_attr: "T" + } + output_arg { + name: "u" + description: "Left singular vectors." + type_attr: "T" + } + output_arg { + name: "v" + description: "Right singular vectors." + type_attr: "T" + } + attr { + name: "max_iter" + type: "int" + description: "maximum number of sweep update, i.e., the whole lower triangular\npart or upper triangular part based on parameter lower. Heuristically, it has\nbeen argued that approximately log(min (M, N)) sweeps are needed in practice\n(Ref: Golub & van Loan \"Matrix Computation\")." + } + attr { + name: "epsilon" + type: "float" + description: "the tolerance ratio." + } + attr { + name: "precision_config" + type: "string" + description: "a serialized xla::PrecisionConfig proto." + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + summary: "Computes the eigen decomposition of a batch of self-adjoint matrices" + description: "(Note: Only real inputs are supported).\n\nComputes the eigenvalues and eigenvectors of the innermost M-by-N matrices in\ntensor such that tensor[...,:,:] = u[..., :, :] * Diag(s[..., :]) * Transpose(v[...,:,:])." +} +op { + name: "XlaVariadicReduce" + input_arg { + name: "input" + description: "the input tensor(s)" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "init_value" + description: "scalar initial value(s) for the reduction" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "N" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "dimensions_to_reduce" + type: "list(int)" + description: "dimension numbers over which to reduce" + } + attr { + name: "reducer" + type: "func" + description: "a reducer function to apply" + } + summary: "Wraps the variadic XLA Reduce operator, documented at" + description: " https://www.tensorflow.org/performance/xla/operation_semantics#variadic_reduce." +} +op { + name: "XlaWhile" + input_arg { + name: "input" + description: "A list of input tensors whose types are T." + type_list_attr: "T" + } + output_arg { + name: "output" + description: "A list of output tensors whose types are T." + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "cond" + type: "func" + description: "A function takes \'input\' and returns a tensor. If the tensor is\na scalar of non-boolean, the scalar is converted to a boolean\naccording to the following rule: if the scalar is a numerical\nvalue, non-zero means True and zero means False; if the scalar is\na string, non-empty means True and empty means False. If the\ntensor is not a scalar, non-emptiness means True and False\notherwise." + } + attr { + name: "body" + type: "func" + description: "A function that takes a list of tensors and returns another\nlist of tensors. Both lists have the same types as specified by T." + } + summary: "output = input; While (Cond(output)) { output = Body(output) }" + is_stateful: true +} +op { + name: "Xlog1py" + 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: "Xlogy" + 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: "ZerosLike" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Zeta" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "q" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ZipDataset" + input_arg { + name: "input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} diff --git a/tensorflow-core/tensorflow-core-api/src/gen/resources/org/tensorflow/op/ops.pb b/tensorflow-core/tensorflow-core-api/src/gen/resources/org/tensorflow/op/ops.pb deleted file mode 100644 index 5472f5f883985bf6f4f266c9cc29668e59833462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1462296 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

UL9-nx&M5+ftDp?%;|kdH)&4OoyvaoFIgf;k7I| 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 TYKxp;oHWt5Q1+q}1C9R&UzUaf From 298606b40f0f6f66873a010daad32a734aa94a4c Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Thu, 29 Apr 2021 14:01:10 -0700 Subject: [PATCH 2/3] Fix formatting Signed-off-by: Ryan Nett --- tensorflow-core/tensorflow-core-api/pom.xml | 40 +++++++-------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/tensorflow-core/tensorflow-core-api/pom.xml b/tensorflow-core/tensorflow-core-api/pom.xml index 1c2a0e29f88..866552aa084 100644 --- a/tensorflow-core/tensorflow-core-api/pom.xml +++ b/tensorflow-core/tensorflow-core-api/pom.xml @@ -1,6 +1,4 @@ - 4.0.0 @@ -14,9 +12,7 @@ jar TensorFlow Core API Library - Platform-dependent native code and pure-Java code for the TensorFlow machine - intelligence library. - + Platform-dependent native code and pure-Java code for the TensorFlow machine intelligence library. false @@ -158,8 +154,7 @@ default-compile - org.tensorflow.processor.operator.OperatorProcessor - + org.tensorflow.processor.operator.OperatorProcessor @@ -169,8 +164,7 @@ - ${project.basedir}/src/gen/annotations - + ${project.basedir}/src/gen/annotations - - ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar + ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar - ${project.build.directory}/native/ - + ${project.build.directory}/native/ From 16d23b20395e9c7bb2a51083f5bdca255608a906 Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Thu, 29 Apr 2021 14:02:02 -0700 Subject: [PATCH 3/3] One more Signed-off-by: Ryan Nett --- tensorflow-core/tensorflow-core-api/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tensorflow-core/tensorflow-core-api/pom.xml b/tensorflow-core/tensorflow-core-api/pom.xml index 866552aa084..9e5df6de251 100644 --- a/tensorflow-core/tensorflow-core-api/pom.xml +++ b/tensorflow-core/tensorflow-core-api/pom.xml @@ -428,8 +428,7 @@ --> - ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar - + ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar ${project.build.directory}/native/