saved_model_schema_version: 1 meta_graphs { meta_info_def { stripped_op_list { 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: "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: "Const" output_arg { name: "output" type_attr: "dtype" } attr { name: "value" type: "tensor" } attr { name: "dtype" type: "type" } } op { name: "Identity" input_arg { name: "input" type_attr: "T" } output_arg { name: "output" type_attr: "T" } attr { name: "T" type: "type" } } 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_COMPLEX64 type: DT_COMPLEX128 } } } } 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: "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: "NoOp" } 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: "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: "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: "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: "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: "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: "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: "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: "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: "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 } } } } 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 } } tags: "serve" tensorflow_version: "1.12.0" tensorflow_git_version: "v1.12.0-rc2-3-ga6d8ffae09" } graph_def { node { name: "input" op: "Placeholder" attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 5 } } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: -1 } dim { size: 5 } } } } } node { name: "random_uniform/shape" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 2 } } tensor_content: "\005\000\000\000\003\000\000\000" } } } } node { name: "random_uniform/min" op: "Const" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0 } } } } node { name: "random_uniform/max" op: "Const" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "random_uniform/RandomUniform" op: "RandomUniform" input: "random_uniform/shape" attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 5 } dim { size: 3 } } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "seed" value { i: 0 } } attr { key: "seed2" value { i: 0 } } } node { name: "random_uniform/sub" op: "Sub" input: "random_uniform/max" input: "random_uniform/min" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "random_uniform/mul" op: "Mul" input: "random_uniform/RandomUniform" input: "random_uniform/sub" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 5 } dim { size: 3 } } } } } } node { name: "random_uniform" op: "Add" input: "random_uniform/mul" input: "random_uniform/min" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 5 } dim { size: 3 } } } } } } node { name: "weights" op: "VariableV2" attr { key: "_output_shapes" value { list { shape { dim { size: 5 } dim { size: 3 } } } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 5 } dim { size: 3 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "weights/Assign" op: "Assign" input: "weights" input: "random_uniform" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@weights" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 5 } dim { size: 3 } } } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "weights/read" op: "Identity" input: "weights" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@weights" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 5 } dim { size: 3 } } } } } } node { name: "random_uniform_1/shape" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 1 } } int_val: 3 } } } } node { name: "random_uniform_1/min" op: "Const" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0 } } } } node { name: "random_uniform_1/max" op: "Const" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "random_uniform_1/RandomUniform" op: "RandomUniform" input: "random_uniform_1/shape" attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 3 } } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "seed" value { i: 0 } } attr { key: "seed2" value { i: 0 } } } node { name: "random_uniform_1/sub" op: "Sub" input: "random_uniform_1/max" input: "random_uniform_1/min" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "random_uniform_1/mul" op: "Mul" input: "random_uniform_1/RandomUniform" input: "random_uniform_1/sub" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 3 } } } } } } node { name: "random_uniform_1" op: "Add" input: "random_uniform_1/mul" input: "random_uniform_1/min" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 3 } } } } } } node { name: "bias" op: "VariableV2" attr { key: "_output_shapes" value { list { shape { dim { size: 3 } } } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 3 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "bias/Assign" op: "Assign" input: "bias" input: "random_uniform_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@bias" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 3 } } } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "bias/read" op: "Identity" input: "bias" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@bias" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 3 } } } } } } node { name: "MatMul" op: "MatMul" input: "input" input: "weights/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 3 } } } } } attr { key: "transpose_a" value { b: false } } attr { key: "transpose_b" value { b: false } } } node { name: "add" op: "Add" input: "MatMul" input: "bias/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 3 } } } } } } node { name: "Relu" op: "Relu" input: "add" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 3 } } } } } } node { name: "output" op: "Softmax" input: "Relu" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 3 } } } } } } node { name: "init" op: "NoOp" input: "^bias/Assign" input: "^weights/Assign" } node { name: "save/Const" op: "Const" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "model" } } } } node { name: "save/StringJoin/inputs_1" op: "Const" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "_temp_6341ee658682497a95c4fd82a2c87cc6/part" } } } } node { name: "save/StringJoin" op: "StringJoin" input: "save/Const" input: "save/StringJoin/inputs_1" attr { key: "N" value { i: 2 } } attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "separator" value { s: "" } } } node { name: "save/num_shards" op: "Const" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 1 } } } } node { name: "save/ShardedFilename/shard" op: "Const" device: "/device:CPU:0" attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 0 } } } } node { name: "save/ShardedFilename" op: "ShardedFilename" input: "save/StringJoin" input: "save/ShardedFilename/shard" input: "save/num_shards" device: "/device:CPU:0" attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "save/SaveV2/tensor_names" op: "Const" device: "/device:CPU:0" attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 2 } } string_val: "bias" string_val: "weights" } } } } node { name: "save/SaveV2/shape_and_slices" op: "Const" device: "/device:CPU:0" attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 2 } } string_val: "" string_val: "" } } } } node { name: "save/SaveV2" op: "SaveV2" input: "save/ShardedFilename" input: "save/SaveV2/tensor_names" input: "save/SaveV2/shape_and_slices" input: "bias" input: "weights" device: "/device:CPU:0" attr { key: "dtypes" value { list { type: DT_FLOAT type: DT_FLOAT } } } } node { name: "save/control_dependency" op: "Identity" input: "save/ShardedFilename" input: "^save/SaveV2" device: "/device:CPU:0" attr { key: "T" value { type: DT_STRING } } attr { key: "_class" value { list { s: "loc:@save/ShardedFilename" } } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "save/MergeV2Checkpoints/checkpoint_prefixes" op: "Pack" input: "save/ShardedFilename" input: "^save/control_dependency" device: "/device:CPU:0" attr { key: "N" value { i: 1 } } attr { key: "T" value { type: DT_STRING } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "axis" value { i: 0 } } } node { name: "save/MergeV2Checkpoints" op: "MergeV2Checkpoints" input: "save/MergeV2Checkpoints/checkpoint_prefixes" input: "save/Const" device: "/device:CPU:0" attr { key: "delete_old_dirs" value { b: true } } } node { name: "save/Identity" op: "Identity" input: "save/Const" input: "^save/MergeV2Checkpoints" input: "^save/control_dependency" device: "/device:CPU:0" attr { key: "T" value { type: DT_STRING } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "save/RestoreV2/tensor_names" op: "Const" device: "/device:CPU:0" attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 2 } } string_val: "bias" string_val: "weights" } } } } node { name: "save/RestoreV2/shape_and_slices" op: "Const" device: "/device:CPU:0" attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 2 } } string_val: "" string_val: "" } } } } node { name: "save/RestoreV2" op: "RestoreV2" input: "save/Const" input: "save/RestoreV2/tensor_names" input: "save/RestoreV2/shape_and_slices" device: "/device:CPU:0" attr { key: "_output_shapes" value { list { shape { unknown_rank: true } shape { unknown_rank: true } } } } attr { key: "dtypes" value { list { type: DT_FLOAT type: DT_FLOAT } } } } node { name: "save/Assign" op: "Assign" input: "bias" input: "save/RestoreV2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@bias" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 3 } } } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/Assign_1" op: "Assign" input: "weights" input: "save/RestoreV2:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@weights" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 5 } dim { size: 3 } } } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/restore_shard" op: "NoOp" input: "^save/Assign" input: "^save/Assign_1" } node { name: "save/restore_all" op: "NoOp" input: "^save/restore_shard" } versions { producer: 27 } } saver_def { filename_tensor_name: "save/Const:0" save_tensor_name: "save/Identity:0" restore_op_name: "save/restore_all" max_to_keep: 5 sharded: true keep_checkpoint_every_n_hours: 10000.0 version: V2 } collection_def { key: "trainable_variables" value { bytes_list { value: "\n\tweights:0\022\016weights/Assign\032\016weights/read:02\020random_uniform:08\001" value: "\n\006bias:0\022\013bias/Assign\032\013bias/read:02\022random_uniform_1:08\001" } } } collection_def { key: "variables" value { bytes_list { value: "\n\tweights:0\022\016weights/Assign\032\016weights/read:02\020random_uniform:08\001" value: "\n\006bias:0\022\013bias/Assign\032\013bias/read:02\022random_uniform_1:08\001" } } } signature_def { key: "serving_default" value { inputs { key: "x" value { name: "input:0" dtype: DT_FLOAT tensor_shape { dim { size: -1 } dim { size: 5 } } } } outputs { key: "y" value { name: "output:0" dtype: DT_FLOAT tensor_shape { dim { size: -1 } dim { size: 3 } } } } method_name: "tensorflow/serving/predict" } } }