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_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: "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_INT64 type: DT_INT32 type: DT_UINT8 type: DT_UINT16 type: DT_INT16 type: DT_INT8 type: DT_COMPLEX64 type: DT_COMPLEX128 type: DT_QINT8 type: DT_QUINT8 type: DT_QINT32 type: DT_HALF } } } attr { name: "use_locking" type: "bool" default_value { b: false } } } 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_INT64 type: DT_INT32 type: DT_UINT8 type: DT_UINT16 type: DT_INT16 type: DT_INT8 type: DT_COMPLEX64 type: DT_COMPLEX128 type: DT_QINT8 type: DT_QUINT8 type: DT_QINT32 type: DT_HALF } } } 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: "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: "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: "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" } } 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: "Const" output_arg { name: "output" type_attr: "dtype" } attr { name: "value" type: "tensor" } attr { name: "dtype" type: "type" } } 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" allowed_values { list { 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_QUINT8 type: DT_QINT8 type: DT_QINT32 type: DT_STRING type: DT_BOOL type: DT_COMPLEX128 } } } is_commutative: true } 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: "Fill" input_arg { name: "dims" type: DT_INT32 } input_arg { name: "value" type_attr: "T" } output_arg { name: "output" type_attr: "T" } attr { name: "T" type: "type" } } 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_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: "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_HALF type: DT_FLOAT type: DT_DOUBLE type: DT_INT32 type: DT_COMPLEX64 type: DT_COMPLEX128 } } } } 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_HALF type: DT_FLOAT type: DT_DOUBLE type: DT_INT32 type: DT_INT64 } } } is_commutative: true } 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_INT64 type: DT_INT32 type: DT_UINT8 type: DT_UINT16 type: DT_INT16 type: DT_INT8 type: DT_COMPLEX64 type: DT_COMPLEX128 type: DT_QINT8 type: DT_QUINT8 type: DT_QINT32 type: DT_HALF } } } attr { name: "Tidx" type: "type" default_value { type: DT_INT32 } allowed_values { list { type: DT_INT32 type: DT_INT64 } } } } 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_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: "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_INT64 type: DT_INT32 type: DT_UINT8 type: DT_UINT16 type: DT_INT16 type: DT_INT8 type: DT_COMPLEX64 type: DT_COMPLEX128 type: DT_QINT8 type: DT_QUINT8 type: DT_QINT32 type: DT_HALF } } } attr { name: "Tidx" type: "type" default_value { type: DT_INT32 } allowed_values { list { type: DT_INT32 type: DT_INT64 } } } } 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_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: "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: "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: "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: "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: "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: "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_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_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: "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_INT64 type: DT_INT32 type: DT_UINT8 type: DT_UINT16 type: DT_INT16 type: DT_INT8 type: DT_COMPLEX64 type: DT_COMPLEX128 type: DT_QINT8 type: DT_QUINT8 type: DT_QINT32 type: DT_HALF } } } attr { name: "Tidx" type: "type" default_value { type: DT_INT32 } allowed_values { list { type: DT_INT32 type: DT_INT64 } } } } 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: "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: "ZerosLike" input_arg { name: "x" type_attr: "T" } output_arg { name: "y" type_attr: "T" } attr { name: "T" type: "type" } } } tags: "serve" tensorflow_version: "1.4.1" tensorflow_git_version: "v1.4.0-19-ga52c8d9" } graph_def { node { name: "Placeholder" op: "Placeholder" attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 784 } } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: -1 } dim { size: 784 } } } } } node { name: "Placeholder_1" op: "Placeholder" attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 10 } } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: -1 } dim { size: 10 } } } } } node { name: "layer/zeros" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { dim { size: 784 } dim { size: 10 } } float_val: 0.0 } } } } node { name: "layer/Variable" op: "VariableV2" attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 784 } dim { size: 10 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "layer/Variable/Assign" op: "Assign" input: "layer/Variable" input: "layer/zeros" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "layer/Variable/read" op: "Identity" input: "layer/Variable" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } } node { name: "layer/zeros_1" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { dim { size: 10 } } float_val: 0.0 } } } } node { name: "layer/Variable_1" op: "VariableV2" attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 10 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "layer/Variable_1/Assign" op: "Assign" input: "layer/Variable_1" input: "layer/zeros_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable_1" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "layer/Variable_1/read" op: "Identity" input: "layer/Variable_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable_1" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } } node { name: "layer/MatMul" op: "MatMul" input: "Placeholder" input: "layer/Variable/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 10 } } } } } attr { key: "transpose_a" value { b: false } } attr { key: "transpose_b" value { b: false } } } node { name: "layer/add" op: "Add" input: "layer/MatMul" input: "layer/Variable_1/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 10 } } } } } } node { name: "Rank" 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: 2 } } } } node { name: "Shape" op: "Shape" input: "layer/add" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "Rank_1" 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: 2 } } } } node { name: "Shape_1" op: "Shape" input: "layer/add" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "Sub/y" 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: "Sub" op: "Sub" input: "Rank_1" input: "Sub/y" attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "Slice/begin" op: "Pack" input: "Sub" attr { key: "N" value { i: 1 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "axis" value { i: 0 } } } node { name: "Slice/size" 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: 1 } } } } node { name: "Slice" op: "Slice" input: "Shape_1" input: "Slice/begin" input: "Slice/size" attr { key: "Index" value { type: DT_INT32 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } } node { name: "concat/values_0" 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: -1 } } } } node { name: "concat/axis" 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: 0 } } } } node { name: "concat" op: "ConcatV2" input: "concat/values_0" input: "Slice" input: "concat/axis" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } } node { name: "Reshape" op: "Reshape" input: "layer/add" input: "concat" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: -1 } } } } } } node { name: "Rank_2" 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: 2 } } } } node { name: "Shape_2" op: "Shape" input: "Placeholder_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "Sub_1/y" 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: "Sub_1" op: "Sub" input: "Rank_2" input: "Sub_1/y" attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "Slice_1/begin" op: "Pack" input: "Sub_1" attr { key: "N" value { i: 1 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "axis" value { i: 0 } } } node { name: "Slice_1/size" 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: 1 } } } } node { name: "Slice_1" op: "Slice" input: "Shape_2" input: "Slice_1/begin" input: "Slice_1/size" attr { key: "Index" value { type: DT_INT32 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } } node { name: "concat_1/values_0" 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: -1 } } } } node { name: "concat_1/axis" 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: 0 } } } } node { name: "concat_1" op: "ConcatV2" input: "concat_1/values_0" input: "Slice_1" input: "concat_1/axis" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } } node { name: "Reshape_1" op: "Reshape" input: "Placeholder_1" input: "concat_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: -1 } } } } } } node { name: "SoftmaxCrossEntropyWithLogits" op: "SoftmaxCrossEntropyWithLogits" input: "Reshape" input: "Reshape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } shape { dim { size: -1 } dim { size: -1 } } } } } } node { name: "Sub_2/y" 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: "Sub_2" op: "Sub" input: "Rank" input: "Sub_2/y" attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "Slice_2/begin" 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: 0 } } } } node { name: "Slice_2/size" op: "Pack" input: "Sub_2" attr { key: "N" value { i: 1 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "axis" value { i: 0 } } } node { name: "Slice_2" op: "Slice" input: "Shape" input: "Slice_2/begin" input: "Slice_2/size" attr { key: "Index" value { type: DT_INT32 } } attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } } node { name: "Reshape_2" op: "Reshape" input: "SoftmaxCrossEntropyWithLogits" input: "Slice_2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } } node { name: "Const" 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: 0 } } } } node { name: "Mean" op: "Mean" input: "Reshape_2" input: "Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "keep_dims" value { b: false } } } node { name: "gradients/Shape" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { } } } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "gradients/Const" 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: "gradients/Fill" op: "Fill" input: "gradients/Shape" input: "gradients/Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "gradients/Mean_grad/Reshape/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: 1 } } } } node { name: "gradients/Mean_grad/Reshape" op: "Reshape" input: "gradients/Fill" input: "gradients/Mean_grad/Reshape/shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } } node { name: "gradients/Mean_grad/Shape" op: "Shape" input: "Reshape_2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "gradients/Mean_grad/Tile" op: "Tile" input: "gradients/Mean_grad/Reshape" input: "gradients/Mean_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tmultiples" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } } node { name: "gradients/Mean_grad/Shape_1" op: "Shape" input: "Reshape_2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "gradients/Mean_grad/Shape_2" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { } } } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "gradients/Mean_grad/Const" op: "Const" attr { key: "_class" value { list { s: "loc:@gradients/Mean_grad/Shape_1" } } } 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: 0 } } } } node { name: "gradients/Mean_grad/Prod" op: "Prod" input: "gradients/Mean_grad/Shape_1" input: "gradients/Mean_grad/Const" attr { key: "T" value { type: DT_INT32 } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_class" value { list { s: "loc:@gradients/Mean_grad/Shape_1" } } } attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "keep_dims" value { b: false } } } node { name: "gradients/Mean_grad/Const_1" op: "Const" attr { key: "_class" value { list { s: "loc:@gradients/Mean_grad/Shape_1" } } } 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: 0 } } } } node { name: "gradients/Mean_grad/Prod_1" op: "Prod" input: "gradients/Mean_grad/Shape_2" input: "gradients/Mean_grad/Const_1" attr { key: "T" value { type: DT_INT32 } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_class" value { list { s: "loc:@gradients/Mean_grad/Shape_1" } } } attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "keep_dims" value { b: false } } } node { name: "gradients/Mean_grad/Maximum/y" op: "Const" attr { key: "_class" value { list { s: "loc:@gradients/Mean_grad/Shape_1" } } } 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: "gradients/Mean_grad/Maximum" op: "Maximum" input: "gradients/Mean_grad/Prod_1" input: "gradients/Mean_grad/Maximum/y" attr { key: "T" value { type: DT_INT32 } } attr { key: "_class" value { list { s: "loc:@gradients/Mean_grad/Shape_1" } } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "gradients/Mean_grad/floordiv" op: "FloorDiv" input: "gradients/Mean_grad/Prod" input: "gradients/Mean_grad/Maximum" attr { key: "T" value { type: DT_INT32 } } attr { key: "_class" value { list { s: "loc:@gradients/Mean_grad/Shape_1" } } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "gradients/Mean_grad/Cast" op: "Cast" input: "gradients/Mean_grad/floordiv" attr { key: "DstT" value { type: DT_FLOAT } } attr { key: "SrcT" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "gradients/Mean_grad/truediv" op: "RealDiv" input: "gradients/Mean_grad/Tile" input: "gradients/Mean_grad/Cast" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } } node { name: "gradients/Reshape_2_grad/Shape" op: "Shape" input: "SoftmaxCrossEntropyWithLogits" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "gradients/Reshape_2_grad/Reshape" op: "Reshape" input: "gradients/Mean_grad/truediv" input: "gradients/Reshape_2_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } } node { name: "gradients/zeros_like" op: "ZerosLike" input: "SoftmaxCrossEntropyWithLogits:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: -1 } } } } } } node { name: "gradients/SoftmaxCrossEntropyWithLogits_grad/ExpandDims/dim" 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: "gradients/SoftmaxCrossEntropyWithLogits_grad/ExpandDims" op: "ExpandDims" input: "gradients/Reshape_2_grad/Reshape" input: "gradients/SoftmaxCrossEntropyWithLogits_grad/ExpandDims/dim" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tdim" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 1 } } } } } } node { name: "gradients/SoftmaxCrossEntropyWithLogits_grad/mul" op: "Mul" input: "gradients/SoftmaxCrossEntropyWithLogits_grad/ExpandDims" input: "SoftmaxCrossEntropyWithLogits:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: -1 } } } } } } node { name: "gradients/Reshape_grad/Shape" op: "Shape" input: "layer/add" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "gradients/Reshape_grad/Reshape" op: "Reshape" input: "gradients/SoftmaxCrossEntropyWithLogits_grad/mul" input: "gradients/Reshape_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 10 } } } } } } node { name: "gradients/layer/add_grad/Shape" op: "Shape" input: "layer/MatMul" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 2 } } } } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "gradients/layer/add_grad/Shape_1" 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: 10 } } } } node { name: "gradients/layer/add_grad/BroadcastGradientArgs" op: "BroadcastGradientArgs" input: "gradients/layer/add_grad/Shape" input: "gradients/layer/add_grad/Shape_1" attr { key: "T" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } shape { dim { size: -1 } } } } } } node { name: "gradients/layer/add_grad/Sum" op: "Sum" input: "gradients/Reshape_grad/Reshape" input: "gradients/layer/add_grad/BroadcastGradientArgs" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { unknown_rank: true } } } } attr { key: "keep_dims" value { b: false } } } node { name: "gradients/layer/add_grad/Reshape" op: "Reshape" input: "gradients/layer/add_grad/Sum" input: "gradients/layer/add_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 10 } } } } } } node { name: "gradients/layer/add_grad/Sum_1" op: "Sum" input: "gradients/Reshape_grad/Reshape" input: "gradients/layer/add_grad/BroadcastGradientArgs:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { unknown_rank: true } } } } attr { key: "keep_dims" value { b: false } } } node { name: "gradients/layer/add_grad/Reshape_1" op: "Reshape" input: "gradients/layer/add_grad/Sum_1" input: "gradients/layer/add_grad/Shape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } } node { name: "gradients/layer/add_grad/tuple/group_deps" op: "NoOp" input: "^gradients/layer/add_grad/Reshape" input: "^gradients/layer/add_grad/Reshape_1" } node { name: "gradients/layer/add_grad/tuple/control_dependency" op: "Identity" input: "gradients/layer/add_grad/Reshape" input: "^gradients/layer/add_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@gradients/layer/add_grad/Reshape" } } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 10 } } } } } } node { name: "gradients/layer/add_grad/tuple/control_dependency_1" op: "Identity" input: "gradients/layer/add_grad/Reshape_1" input: "^gradients/layer/add_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@gradients/layer/add_grad/Reshape_1" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } } node { name: "gradients/layer/MatMul_grad/MatMul" op: "MatMul" input: "gradients/layer/add_grad/tuple/control_dependency" input: "layer/Variable/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 784 } } } } } attr { key: "transpose_a" value { b: false } } attr { key: "transpose_b" value { b: true } } } node { name: "gradients/layer/MatMul_grad/MatMul_1" op: "MatMul" input: "Placeholder" input: "gradients/layer/add_grad/tuple/control_dependency" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } attr { key: "transpose_a" value { b: true } } attr { key: "transpose_b" value { b: false } } } node { name: "gradients/layer/MatMul_grad/tuple/group_deps" op: "NoOp" input: "^gradients/layer/MatMul_grad/MatMul" input: "^gradients/layer/MatMul_grad/MatMul_1" } node { name: "gradients/layer/MatMul_grad/tuple/control_dependency" op: "Identity" input: "gradients/layer/MatMul_grad/MatMul" input: "^gradients/layer/MatMul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@gradients/layer/MatMul_grad/MatMul" } } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } dim { size: 784 } } } } } } node { name: "gradients/layer/MatMul_grad/tuple/control_dependency_1" op: "Identity" input: "gradients/layer/MatMul_grad/MatMul_1" input: "^gradients/layer/MatMul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@gradients/layer/MatMul_grad/MatMul_1" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } } node { name: "GradientDescent/learning_rate" 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.5 } } } } node { name: "GradientDescent/update_layer/Variable/ApplyGradientDescent" op: "ApplyGradientDescent" input: "layer/Variable" input: "GradientDescent/learning_rate" input: "gradients/layer/MatMul_grad/tuple/control_dependency_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } attr { key: "use_locking" value { b: false } } } node { name: "GradientDescent/update_layer/Variable_1/ApplyGradientDescent" op: "ApplyGradientDescent" input: "layer/Variable_1" input: "GradientDescent/learning_rate" input: "gradients/layer/add_grad/tuple/control_dependency_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable_1" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } attr { key: "use_locking" value { b: false } } } node { name: "GradientDescent" op: "NoOp" input: "^GradientDescent/update_layer/Variable/ApplyGradientDescent" input: "^GradientDescent/update_layer/Variable_1/ApplyGradientDescent" } node { name: "init" op: "NoOp" input: "^layer/Variable/Assign" input: "^layer/Variable_1/Assign" } node { name: "ArgMax/dimension" 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: "ArgMax" op: "ArgMax" input: "layer/add" input: "ArgMax/dimension" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } attr { key: "output_type" value { type: DT_INT64 } } } node { name: "ArgMax_1/dimension" 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: "ArgMax_1" op: "ArgMax" input: "Placeholder_1" input: "ArgMax_1/dimension" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } attr { key: "output_type" value { type: DT_INT64 } } } node { name: "Equal" op: "Equal" input: "ArgMax" input: "ArgMax_1" attr { key: "T" value { type: DT_INT64 } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } } node { name: "Cast_1" op: "Cast" input: "Equal" attr { key: "DstT" value { type: DT_FLOAT } } attr { key: "SrcT" value { type: DT_BOOL } } attr { key: "_output_shapes" value { list { shape { dim { size: -1 } } } } } } node { name: "Const_1" 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: 0 } } } } node { name: "Mean_1" op: "Mean" input: "Cast_1" input: "Const_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "_output_shapes" value { list { shape { } } } } attr { key: "keep_dims" value { b: false } } } 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_65caff16d5244276b9828b0dab21b157/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" 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" attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "save/SaveV2/tensor_names" op: "Const" 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: "layer/Variable" string_val: "layer/Variable_1" } } } } node { name: "save/SaveV2/shape_and_slices" op: "Const" 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: "layer/Variable" input: "layer/Variable_1" attr { key: "dtypes" value { list { type: DT_FLOAT type: DT_FLOAT } } } } node { name: "save/control_dependency" op: "Identity" input: "save/ShardedFilename" input: "^save/SaveV2" 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" 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" attr { key: "delete_old_dirs" value { b: true } } } node { name: "save/Identity" op: "Identity" input: "save/Const" input: "^save/control_dependency" input: "^save/MergeV2Checkpoints" attr { key: "T" value { type: DT_STRING } } attr { key: "_output_shapes" value { list { shape { } } } } } node { name: "save/RestoreV2/tensor_names" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 1 } } string_val: "layer/Variable" } } } } node { name: "save/RestoreV2/shape_and_slices" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 1 } } string_val: "" } } } } node { name: "save/RestoreV2" op: "RestoreV2" input: "save/Const" input: "save/RestoreV2/tensor_names" input: "save/RestoreV2/shape_and_slices" attr { key: "_output_shapes" value { list { shape { unknown_rank: true } } } } attr { key: "dtypes" value { list { type: DT_FLOAT } } } } node { name: "save/Assign" op: "Assign" input: "layer/Variable" input: "save/RestoreV2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 784 } dim { size: 10 } } } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/RestoreV2_1/tensor_names" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 1 } } string_val: "layer/Variable_1" } } } } node { name: "save/RestoreV2_1/shape_and_slices" op: "Const" attr { key: "_output_shapes" value { list { shape { dim { size: 1 } } } } } attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 1 } } string_val: "" } } } } node { name: "save/RestoreV2_1" op: "RestoreV2" input: "save/Const" input: "save/RestoreV2_1/tensor_names" input: "save/RestoreV2_1/shape_and_slices" attr { key: "_output_shapes" value { list { shape { unknown_rank: true } } } } attr { key: "dtypes" value { list { type: DT_FLOAT } } } } node { name: "save/Assign_1" op: "Assign" input: "layer/Variable_1" input: "save/RestoreV2_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@layer/Variable_1" } } } attr { key: "_output_shapes" value { list { shape { dim { size: 10 } } } } } 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: 24 } } 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: "train_op" value { node_list { value: "GradientDescent" } } } collection_def { key: "trainable_variables" value { bytes_list { value: "\n\020layer/Variable:0\022\025layer/Variable/Assign\032\025layer/Variable/read:02\rlayer/zeros:0" value: "\n\022layer/Variable_1:0\022\027layer/Variable_1/Assign\032\027layer/Variable_1/read:02\017layer/zeros_1:0" } } } collection_def { key: "variables" value { bytes_list { value: "\n\020layer/Variable:0\022\025layer/Variable/Assign\032\025layer/Variable/read:02\rlayer/zeros:0" value: "\n\022layer/Variable_1:0\022\027layer/Variable_1/Assign\032\027layer/Variable_1/read:02\017layer/zeros_1:0" } } } signature_def { key: "serving_default" value { inputs { key: "x" value { name: "Placeholder:0" dtype: DT_FLOAT tensor_shape { dim { size: -1 } dim { size: 784 } } } } outputs { key: "y" value { name: "layer/add:0" dtype: DT_FLOAT tensor_shape { dim { size: -1 } dim { size: 10 } } } } method_name: "tensorflow/serving/predict" } } }