node { name: "data/wav_filename" op: "Placeholder" attr { key: "dtype" value { type: DT_STRING } } attr { key: "shape" value { shape { } } } } node { name: "data/ReadFile" op: "ReadFile" input: "data/wav_filename" } node { name: "data/DecodeWav" op: "DecodeWav" input: "data/ReadFile" attr { key: "desired_channels" value { i: 1 } } attr { key: "desired_samples" value { i: 16000 } } } node { name: "data/foreground_volume" op: "Placeholder" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { } } } } node { name: "data/Mul" op: "Mul" input: "data/DecodeWav" input: "data/foreground_volume" attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/time_shift_padding" op: "Placeholder" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "shape" value { shape { dim { size: 2 } dim { size: 2 } } } } } node { name: "data/time_shift_offset" op: "Placeholder" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "shape" value { shape { dim { size: 2 } } } } } node { name: "data/Pad" op: "Pad" input: "data/Mul" input: "data/time_shift_padding" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tpaddings" value { type: DT_INT32 } } } node { name: "data/Slice/size" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 2 } } tensor_content: "\200>\000\000\377\377\377\377" } } } } node { name: "data/Slice" op: "Slice" input: "data/Pad" input: "data/time_shift_offset" input: "data/Slice/size" attr { key: "Index" value { type: DT_INT32 } } attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/background_data" op: "Placeholder" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 16000 } dim { size: 1 } } } } } node { name: "data/background_volume" op: "Placeholder" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { } } } } node { name: "data/Mul_1" op: "Mul" input: "data/background_data" input: "data/background_volume" attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/Add" op: "Add" input: "data/Mul_1" input: "data/Slice" attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/clip_by_value/Minimum/y" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "data/clip_by_value/Minimum" op: "Minimum" input: "data/Add" input: "data/clip_by_value/Minimum/y" attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/clip_by_value/y" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: -1.0 } } } } node { name: "data/clip_by_value" op: "Maximum" input: "data/clip_by_value/Minimum" input: "data/clip_by_value/y" attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/AudioSpectrogram" op: "AudioSpectrogram" input: "data/clip_by_value" attr { key: "magnitude_squared" value { b: true } } attr { key: "stride" value { i: 320 } } attr { key: "window_size" value { i: 480 } } } node { name: "data/ExpandDims/dim" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: -1 } } } } node { name: "data/ExpandDims" op: "ExpandDims" input: "data/AudioSpectrogram" input: "data/ExpandDims/dim" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tdim" value { type: DT_INT32 } } } node { name: "data/spectrogram/tag" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "data/spectrogram" } } } } node { name: "data/spectrogram" op: "ImageSummary" input: "data/spectrogram/tag" input: "data/ExpandDims" attr { key: "T" value { type: DT_FLOAT } } attr { key: "bad_color" value { tensor { dtype: DT_UINT8 tensor_shape { dim { size: 4 } } int_val: 255 int_val: 0 int_val: 0 int_val: 255 } } } attr { key: "max_images" value { i: 1 } } } node { name: "data/Mul_2/y" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 32768.0 } } } } node { name: "data/Mul_2" op: "Mul" input: "data/clip_by_value" input: "data/Mul_2/y" attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/Cast" op: "Cast" input: "data/Mul_2" attr { key: "DstT" value { type: DT_INT16 } } attr { key: "SrcT" value { type: DT_FLOAT } } attr { key: "Truncate" value { b: false } } } node { name: "data/Reshape/shape" op: "Const" 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: "data/Reshape" op: "Reshape" input: "data/Cast" input: "data/Reshape/shape" attr { key: "T" value { type: DT_INT16 } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "data/AudioMicrofrontend" op: "AudioMicrofrontend" input: "data/Reshape" attr { key: "enable_log" value { b: true } } attr { key: "enable_pcan" value { b: true } } attr { key: "even_smoothing" value { f: 0.02500000037252903 } } attr { key: "frame_stride" value { i: 1 } } attr { key: "gain_bits" value { i: 21 } } attr { key: "left_context" value { i: 0 } } attr { key: "lower_band_limit" value { f: 125.0 } } attr { key: "min_signal_remaining" value { f: 0.05000000074505806 } } attr { key: "num_channels" value { i: 40 } } attr { key: "odd_smoothing" value { f: 0.05999999865889549 } } attr { key: "out_scale" value { i: 1 } } attr { key: "out_type" value { type: DT_FLOAT } } attr { key: "pcan_offset" value { f: 80.0 } } attr { key: "pcan_strength" value { f: 0.949999988079071 } } attr { key: "right_context" value { i: 0 } } attr { key: "sample_rate" value { i: 16000 } } attr { key: "scale_shift" value { i: 6 } } attr { key: "smoothing_bits" value { i: 10 } } attr { key: "upper_band_limit" value { f: 7500.0 } } attr { key: "window_size" value { i: 30 } } attr { key: "window_step" value { i: 20 } } attr { key: "zero_padding" value { b: false } } } node { name: "data/Mul_3/y" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0390625 } } } } node { name: "data/Mul_3" op: "Mul" input: "data/AudioMicrofrontend" input: "data/Mul_3/y" attr { key: "T" value { type: DT_FLOAT } } } node { name: "data/ExpandDims_1/dim" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: -1 } } } } node { name: "data/ExpandDims_1" op: "ExpandDims" input: "data/Mul_3" input: "data/ExpandDims_1/dim" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tdim" value { type: DT_INT32 } } } node { name: "data/ExpandDims_2/dim" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 0 } } } } node { name: "data/ExpandDims_2" op: "ExpandDims" input: "data/ExpandDims_1" input: "data/ExpandDims_2/dim" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tdim" value { type: DT_INT32 } } } node { name: "data/micro/tag" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "data/micro" } } } } node { name: "data/micro" op: "ImageSummary" input: "data/micro/tag" input: "data/ExpandDims_2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "bad_color" value { tensor { dtype: DT_UINT8 tensor_shape { dim { size: 4 } } int_val: 255 int_val: 0 int_val: 0 int_val: 255 } } } attr { key: "max_images" value { i: 1 } } } node { name: "data/Merge/MergeSummary" op: "MergeSummary" input: "data/spectrogram" input: "data/micro" attr { key: "N" value { i: 2 } } } node { name: "fingerprint_input" op: "Placeholder" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: -1 } dim { size: 1960 } } } } } node { name: "dropout_rate" op: "Placeholder" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { unknown_rank: true } } } } node { name: "Reshape/shape" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 4 } } tensor_content: "\377\377\377\3771\000\000\000(\000\000\000\001\000\000\000" } } } } node { name: "Reshape" op: "Reshape" input: "fingerprint_input" input: "Reshape/shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "first_weights/Initializer/truncated_normal/shape" op: "Const" attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 4 } } tensor_content: "\n\000\000\000\010\000\000\000\001\000\000\000\010\000\000\000" } } } } node { name: "first_weights/Initializer/truncated_normal/mean" op: "Const" attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0 } } } } node { name: "first_weights/Initializer/truncated_normal/stddev" op: "Const" attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.009999999776482582 } } } } node { name: "first_weights/Initializer/truncated_normal/TruncatedNormal" op: "TruncatedNormal" input: "first_weights/Initializer/truncated_normal/shape" attr { key: "T" value { type: DT_INT32 } } attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "seed" value { i: 0 } } attr { key: "seed2" value { i: 0 } } } node { name: "first_weights/Initializer/truncated_normal/mul" op: "Mul" input: "first_weights/Initializer/truncated_normal/TruncatedNormal" input: "first_weights/Initializer/truncated_normal/stddev" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_weights" } } } } node { name: "first_weights/Initializer/truncated_normal" op: "Add" input: "first_weights/Initializer/truncated_normal/mul" input: "first_weights/Initializer/truncated_normal/mean" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_weights" } } } } node { name: "first_weights" op: "VariableV2" attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 10 } dim { size: 8 } dim { size: 1 } dim { size: 8 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "first_weights/Assign" op: "Assign" input: "first_weights" input: "first_weights/Initializer/truncated_normal" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "first_weights/read" op: "Identity" input: "first_weights" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_weights" } } } } node { name: "first_bias/Initializer/zeros" op: "Const" attr { key: "_class" value { list { s: "loc:@first_bias" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { dim { size: 8 } } float_val: 0.0 } } } } node { name: "first_bias" op: "VariableV2" attr { key: "_class" value { list { s: "loc:@first_bias" } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 8 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "first_bias/Assign" op: "Assign" input: "first_bias" input: "first_bias/Initializer/zeros" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_bias" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "first_bias/read" op: "Identity" input: "first_bias" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_bias" } } } } node { name: "Conv2D" op: "Conv2D" input: "Reshape" input: "first_weights/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "data_format" value { s: "NHWC" } } attr { key: "dilations" value { list { i: 1 i: 1 i: 1 i: 1 } } } attr { key: "explicit_paddings" value { list { } } } attr { key: "padding" value { s: "SAME" } } attr { key: "strides" value { list { i: 1 i: 2 i: 2 i: 1 } } } attr { key: "use_cudnn_on_gpu" value { b: true } } } node { name: "add" op: "AddV2" input: "Conv2D" input: "first_bias/read" attr { key: "T" value { type: DT_FLOAT } } } node { name: "Relu" op: "Relu" input: "add" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/Shape" op: "Shape" input: "Relu" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "dropout/random_uniform/min" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0 } } } } node { name: "dropout/random_uniform/max" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "dropout/random_uniform/RandomUniform" op: "RandomUniform" input: "dropout/Shape" attr { key: "T" value { type: DT_INT32 } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "seed" value { i: 0 } } attr { key: "seed2" value { i: 0 } } } node { name: "dropout/random_uniform/sub" op: "Sub" input: "dropout/random_uniform/max" input: "dropout/random_uniform/min" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/random_uniform/mul" op: "Mul" input: "dropout/random_uniform/RandomUniform" input: "dropout/random_uniform/sub" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/random_uniform" op: "Add" input: "dropout/random_uniform/mul" input: "dropout/random_uniform/min" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/sub/x" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "dropout/sub" op: "Sub" input: "dropout/sub/x" input: "dropout_rate" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/truediv/x" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "dropout/truediv" op: "RealDiv" input: "dropout/truediv/x" input: "dropout/sub" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/GreaterEqual" op: "GreaterEqual" input: "dropout/random_uniform" input: "dropout_rate" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/mul" op: "Mul" input: "Relu" input: "dropout/truediv" attr { key: "T" value { type: DT_FLOAT } } } node { name: "dropout/Cast" op: "Cast" input: "dropout/GreaterEqual" attr { key: "DstT" value { type: DT_FLOAT } } attr { key: "SrcT" value { type: DT_BOOL } } attr { key: "Truncate" value { b: false } } } node { name: "dropout/mul_1" op: "Mul" input: "dropout/mul" input: "dropout/Cast" attr { key: "T" value { type: DT_FLOAT } } } node { name: "Reshape_1/shape" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 2 } } tensor_content: "\377\377\377\377\240\017\000\000" } } } } node { name: "Reshape_1" op: "Reshape" input: "dropout/mul_1" input: "Reshape_1/shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "final_fc_weights/Initializer/truncated_normal/shape" op: "Const" attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 2 } } tensor_content: "\240\017\000\000\004\000\000\000" } } } } node { name: "final_fc_weights/Initializer/truncated_normal/mean" op: "Const" attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0 } } } } node { name: "final_fc_weights/Initializer/truncated_normal/stddev" op: "Const" attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.009999999776482582 } } } } node { name: "final_fc_weights/Initializer/truncated_normal/TruncatedNormal" op: "TruncatedNormal" input: "final_fc_weights/Initializer/truncated_normal/shape" attr { key: "T" value { type: DT_INT32 } } attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "seed" value { i: 0 } } attr { key: "seed2" value { i: 0 } } } node { name: "final_fc_weights/Initializer/truncated_normal/mul" op: "Mul" input: "final_fc_weights/Initializer/truncated_normal/TruncatedNormal" input: "final_fc_weights/Initializer/truncated_normal/stddev" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } } node { name: "final_fc_weights/Initializer/truncated_normal" op: "Add" input: "final_fc_weights/Initializer/truncated_normal/mul" input: "final_fc_weights/Initializer/truncated_normal/mean" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } } node { name: "final_fc_weights" op: "VariableV2" attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 4000 } dim { size: 4 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "final_fc_weights/Assign" op: "Assign" input: "final_fc_weights" input: "final_fc_weights/Initializer/truncated_normal" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "final_fc_weights/read" op: "Identity" input: "final_fc_weights" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } } node { name: "final_fc_bias/Initializer/zeros" op: "Const" attr { key: "_class" value { list { s: "loc:@final_fc_bias" } } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { dim { size: 4 } } float_val: 0.0 } } } } node { name: "final_fc_bias" op: "VariableV2" attr { key: "_class" value { list { s: "loc:@final_fc_bias" } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { dim { size: 4 } } } } attr { key: "shared_name" value { s: "" } } } node { name: "final_fc_bias/Assign" op: "Assign" input: "final_fc_bias" input: "final_fc_bias/Initializer/zeros" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_bias" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "final_fc_bias/read" op: "Identity" input: "final_fc_bias" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_bias" } } } } node { name: "MatMul" op: "MatMul" input: "Reshape_1" input: "final_fc_weights/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "transpose_a" value { b: false } } attr { key: "transpose_b" value { b: false } } } node { name: "add_1" op: "AddV2" input: "MatMul" input: "final_fc_bias/read" attr { key: "T" value { type: DT_FLOAT } } } node { name: "groundtruth_input" op: "Placeholder" attr { key: "dtype" value { type: DT_INT64 } } attr { key: "shape" value { shape { dim { size: -1 } } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/Const" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/Shape" op: "Shape" input: "groundtruth_input" attr { key: "T" value { type: DT_INT64 } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy" op: "SparseSoftmaxCrossEntropyWithLogits" input: "add_1" input: "groundtruth_input" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tlabels" value { type: DT_INT64 } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/weights/shape" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/weights/rank" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 0 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/values/shape" op: "Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/values/rank" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 1 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" op: "NoOp" } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/Mul" op: "Mul" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "T" value { type: DT_FLOAT } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/Const_1" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" 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: "cross_entropy/sparse_softmax_cross_entropy_loss/Sum" op: "Sum" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Mul" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Const_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Equal/y" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Equal" op: "Equal" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Const" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Equal/y" attr { key: "T" value { type: DT_FLOAT } } attr { key: "incompatible_shape_error" value { b: true } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/zeros_like" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 0.0 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/ones_like/Shape" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/ones_like/Const" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/ones_like" op: "Fill" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/ones_like/Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/ones_like/Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "index_type" value { type: DT_INT32 } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Select" op: "Select" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Equal" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/zeros_like" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/ones_like" attr { key: "T" value { type: DT_FLOAT } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/assert_broadcastable/weights/shape" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/assert_broadcastable/weights/rank" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 0 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/assert_broadcastable/values/shape" op: "Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/assert_broadcastable/values/rank" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 1 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/assert_broadcastable/static_scalar_check_success" op: "NoOp" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/ones_like/Shape" op: "Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/assert_broadcastable/static_scalar_check_success" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/ones_like/Const" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/ones_like" op: "Fill" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/ones_like/Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/ones_like/Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "index_type" value { type: DT_INT32 } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights" op: "Mul" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Select" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights/ones_like" attr { key: "T" value { type: DT_FLOAT } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Const" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" 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: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present" op: "Sum" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/broadcast_weights" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present/Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/Const_2" op: "Const" input: "^cross_entropy/sparse_softmax_cross_entropy_loss/assert_broadcastable/static_scalar_check_success" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1" op: "Sum" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Sum" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Const_2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "cross_entropy/sparse_softmax_cross_entropy_loss/value" op: "DivNoNan" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/learning_rate_input" op: "Placeholder" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "shape" value { shape { } } } } node { name: "train/gradients/Shape" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "train/gradients/grad_ys_0" op: "Const" attr { key: "dtype" value { type: DT_FLOAT } } attr { key: "value" value { tensor { dtype: DT_FLOAT tensor_shape { } float_val: 1.0 } } } } node { name: "train/gradients/Fill" op: "Fill" input: "train/gradients/Shape" input: "train/gradients/grad_ys_0" attr { key: "T" value { type: DT_FLOAT } } attr { key: "index_type" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Shape" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Shape_1" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/BroadcastGradientArgs" op: "BroadcastGradientArgs" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Shape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Shape_1" attr { key: "T" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/div_no_nan" op: "DivNoNan" input: "train/gradients/Fill" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Sum" op: "Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/div_no_nan" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/BroadcastGradientArgs" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape" op: "Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Neg" op: "Neg" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/div_no_nan_1" op: "DivNoNan" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Neg" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/div_no_nan_2" op: "DivNoNan" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/div_no_nan_1" input: "cross_entropy/sparse_softmax_cross_entropy_loss/num_present" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/mul" op: "Mul" input: "train/gradients/Fill" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/div_no_nan_2" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Sum_1" op: "Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/mul" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/BroadcastGradientArgs:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape_1" op: "Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Sum_1" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Shape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape_1" } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape" } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape_1" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/Reshape_1" } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Reshape/shape" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Reshape" op: "Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/value_grad/tuple/control_dependency" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Reshape/shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Const" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { } } } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Tile" op: "Tile" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tmultiples" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Reshape/shape" op: "Const" 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: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Reshape" op: "Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_1_grad/Tile" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Reshape/shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Shape" op: "Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Mul" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Tile" op: "Tile" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tmultiples" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Shape" op: "Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Shape_1" op: "Shape" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/BroadcastGradientArgs" op: "BroadcastGradientArgs" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Shape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Shape_1" attr { key: "T" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Mul" op: "Mul" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Tile" input: "cross_entropy/sparse_softmax_cross_entropy_loss/Const" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Sum" op: "Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Mul" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/BroadcastGradientArgs" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape" op: "Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Mul_1" op: "Mul" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Sum_grad/Tile" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Sum_1" op: "Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Mul_1" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/BroadcastGradientArgs:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape_1" op: "Reshape" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Sum_1" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Shape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape_1" } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape" } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape_1" input: "^train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/Reshape_1" } } } } node { name: "train/gradients/zeros_like" op: "ZerosLike" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy:1" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/PreventGradient" op: "PreventGradient" input: "cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "message" value { s: "Currently there is no way to take the second derivative of sparse_softmax_cross_entropy_with_logits due to the fused implementation\'s interaction with tf.gradients()" } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/ExpandDims/dim" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: -1 } } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/ExpandDims" op: "ExpandDims" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/Mul_grad/tuple/control_dependency" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/ExpandDims/dim" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tdim" value { type: DT_INT32 } } } node { name: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/mul" op: "Mul" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/ExpandDims" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/PreventGradient" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/add_1_grad/Shape" op: "Shape" input: "MatMul" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/add_1_grad/Shape_1" op: "Shape" input: "final_fc_bias/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/add_1_grad/BroadcastGradientArgs" op: "BroadcastGradientArgs" input: "train/gradients/add_1_grad/Shape" input: "train/gradients/add_1_grad/Shape_1" attr { key: "T" value { type: DT_INT32 } } } node { name: "train/gradients/add_1_grad/Sum" op: "Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/mul" input: "train/gradients/add_1_grad/BroadcastGradientArgs" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/add_1_grad/Reshape" op: "Reshape" input: "train/gradients/add_1_grad/Sum" input: "train/gradients/add_1_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/add_1_grad/Sum_1" op: "Sum" input: "train/gradients/cross_entropy/sparse_softmax_cross_entropy_loss/xentropy/xentropy_grad/mul" input: "train/gradients/add_1_grad/BroadcastGradientArgs:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/add_1_grad/Reshape_1" op: "Reshape" input: "train/gradients/add_1_grad/Sum_1" input: "train/gradients/add_1_grad/Shape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/add_1_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/add_1_grad/Reshape" input: "^train/gradients/add_1_grad/Reshape_1" } node { name: "train/gradients/add_1_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/add_1_grad/Reshape" input: "^train/gradients/add_1_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/add_1_grad/Reshape" } } } } node { name: "train/gradients/add_1_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/add_1_grad/Reshape_1" input: "^train/gradients/add_1_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/add_1_grad/Reshape_1" } } } } node { name: "train/gradients/MatMul_grad/MatMul" op: "MatMul" input: "train/gradients/add_1_grad/tuple/control_dependency" input: "final_fc_weights/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "transpose_a" value { b: false } } attr { key: "transpose_b" value { b: true } } } node { name: "train/gradients/MatMul_grad/MatMul_1" op: "MatMul" input: "Reshape_1" input: "train/gradients/add_1_grad/tuple/control_dependency" attr { key: "T" value { type: DT_FLOAT } } attr { key: "transpose_a" value { b: true } } attr { key: "transpose_b" value { b: false } } } node { name: "train/gradients/MatMul_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/MatMul_grad/MatMul" input: "^train/gradients/MatMul_grad/MatMul_1" } node { name: "train/gradients/MatMul_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/MatMul_grad/MatMul" input: "^train/gradients/MatMul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/MatMul_grad/MatMul" } } } } node { name: "train/gradients/MatMul_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/MatMul_grad/MatMul_1" input: "^train/gradients/MatMul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/MatMul_grad/MatMul_1" } } } } node { name: "train/gradients/Reshape_1_grad/Shape" op: "Shape" input: "dropout/mul_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/Reshape_1_grad/Reshape" op: "Reshape" input: "train/gradients/MatMul_grad/tuple/control_dependency" input: "train/gradients/Reshape_1_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_1_grad/Shape" op: "Shape" input: "dropout/mul" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_1_grad/Shape_1" op: "Shape" input: "dropout/Cast" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_1_grad/BroadcastGradientArgs" op: "BroadcastGradientArgs" input: "train/gradients/dropout/mul_1_grad/Shape" input: "train/gradients/dropout/mul_1_grad/Shape_1" attr { key: "T" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_1_grad/Mul" op: "Mul" input: "train/gradients/Reshape_1_grad/Reshape" input: "dropout/Cast" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/dropout/mul_1_grad/Sum" op: "Sum" input: "train/gradients/dropout/mul_1_grad/Mul" input: "train/gradients/dropout/mul_1_grad/BroadcastGradientArgs" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/dropout/mul_1_grad/Reshape" op: "Reshape" input: "train/gradients/dropout/mul_1_grad/Sum" input: "train/gradients/dropout/mul_1_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_1_grad/Mul_1" op: "Mul" input: "dropout/mul" input: "train/gradients/Reshape_1_grad/Reshape" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/dropout/mul_1_grad/Sum_1" op: "Sum" input: "train/gradients/dropout/mul_1_grad/Mul_1" input: "train/gradients/dropout/mul_1_grad/BroadcastGradientArgs:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/dropout/mul_1_grad/Reshape_1" op: "Reshape" input: "train/gradients/dropout/mul_1_grad/Sum_1" input: "train/gradients/dropout/mul_1_grad/Shape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_1_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/dropout/mul_1_grad/Reshape" input: "^train/gradients/dropout/mul_1_grad/Reshape_1" } node { name: "train/gradients/dropout/mul_1_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/dropout/mul_1_grad/Reshape" input: "^train/gradients/dropout/mul_1_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/dropout/mul_1_grad/Reshape" } } } } node { name: "train/gradients/dropout/mul_1_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/dropout/mul_1_grad/Reshape_1" input: "^train/gradients/dropout/mul_1_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/dropout/mul_1_grad/Reshape_1" } } } } node { name: "train/gradients/dropout/mul_grad/Shape" op: "Shape" input: "Relu" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_grad/Shape_1" op: "Shape" input: "dropout/truediv" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_grad/BroadcastGradientArgs" op: "BroadcastGradientArgs" input: "train/gradients/dropout/mul_grad/Shape" input: "train/gradients/dropout/mul_grad/Shape_1" attr { key: "T" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_grad/Mul" op: "Mul" input: "train/gradients/dropout/mul_1_grad/tuple/control_dependency" input: "dropout/truediv" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/dropout/mul_grad/Sum" op: "Sum" input: "train/gradients/dropout/mul_grad/Mul" input: "train/gradients/dropout/mul_grad/BroadcastGradientArgs" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/dropout/mul_grad/Reshape" op: "Reshape" input: "train/gradients/dropout/mul_grad/Sum" input: "train/gradients/dropout/mul_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_grad/Mul_1" op: "Mul" input: "Relu" input: "train/gradients/dropout/mul_1_grad/tuple/control_dependency" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/dropout/mul_grad/Sum_1" op: "Sum" input: "train/gradients/dropout/mul_grad/Mul_1" input: "train/gradients/dropout/mul_grad/BroadcastGradientArgs:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/dropout/mul_grad/Reshape_1" op: "Reshape" input: "train/gradients/dropout/mul_grad/Sum_1" input: "train/gradients/dropout/mul_grad/Shape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/dropout/mul_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/dropout/mul_grad/Reshape" input: "^train/gradients/dropout/mul_grad/Reshape_1" } node { name: "train/gradients/dropout/mul_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/dropout/mul_grad/Reshape" input: "^train/gradients/dropout/mul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/dropout/mul_grad/Reshape" } } } } node { name: "train/gradients/dropout/mul_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/dropout/mul_grad/Reshape_1" input: "^train/gradients/dropout/mul_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/dropout/mul_grad/Reshape_1" } } } } node { name: "train/gradients/Relu_grad/ReluGrad" op: "ReluGrad" input: "train/gradients/dropout/mul_grad/tuple/control_dependency" input: "Relu" attr { key: "T" value { type: DT_FLOAT } } } node { name: "train/gradients/add_grad/Shape" op: "Shape" input: "Conv2D" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/add_grad/Shape_1" op: "Shape" input: "first_bias/read" attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/add_grad/BroadcastGradientArgs" op: "BroadcastGradientArgs" input: "train/gradients/add_grad/Shape" input: "train/gradients/add_grad/Shape_1" attr { key: "T" value { type: DT_INT32 } } } node { name: "train/gradients/add_grad/Sum" op: "Sum" input: "train/gradients/Relu_grad/ReluGrad" input: "train/gradients/add_grad/BroadcastGradientArgs" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/add_grad/Reshape" op: "Reshape" input: "train/gradients/add_grad/Sum" input: "train/gradients/add_grad/Shape" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/add_grad/Sum_1" op: "Sum" input: "train/gradients/Relu_grad/ReluGrad" input: "train/gradients/add_grad/BroadcastGradientArgs:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "train/gradients/add_grad/Reshape_1" op: "Reshape" input: "train/gradients/add_grad/Sum_1" input: "train/gradients/add_grad/Shape_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tshape" value { type: DT_INT32 } } } node { name: "train/gradients/add_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/add_grad/Reshape" input: "^train/gradients/add_grad/Reshape_1" } node { name: "train/gradients/add_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/add_grad/Reshape" input: "^train/gradients/add_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/add_grad/Reshape" } } } } node { name: "train/gradients/add_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/add_grad/Reshape_1" input: "^train/gradients/add_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/add_grad/Reshape_1" } } } } node { name: "train/gradients/Conv2D_grad/ShapeN" op: "ShapeN" input: "Reshape" input: "first_weights/read" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_FLOAT } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "train/gradients/Conv2D_grad/Conv2DBackpropInput" op: "Conv2DBackpropInput" input: "train/gradients/Conv2D_grad/ShapeN" input: "first_weights/read" input: "train/gradients/add_grad/tuple/control_dependency" attr { key: "T" value { type: DT_FLOAT } } attr { key: "data_format" value { s: "NHWC" } } attr { key: "dilations" value { list { i: 1 i: 1 i: 1 i: 1 } } } attr { key: "explicit_paddings" value { list { } } } attr { key: "padding" value { s: "SAME" } } attr { key: "strides" value { list { i: 1 i: 2 i: 2 i: 1 } } } attr { key: "use_cudnn_on_gpu" value { b: true } } } node { name: "train/gradients/Conv2D_grad/Conv2DBackpropFilter" op: "Conv2DBackpropFilter" input: "Reshape" input: "train/gradients/Conv2D_grad/ShapeN:1" input: "train/gradients/add_grad/tuple/control_dependency" attr { key: "T" value { type: DT_FLOAT } } attr { key: "data_format" value { s: "NHWC" } } attr { key: "dilations" value { list { i: 1 i: 1 i: 1 i: 1 } } } attr { key: "explicit_paddings" value { list { } } } attr { key: "padding" value { s: "SAME" } } attr { key: "strides" value { list { i: 1 i: 2 i: 2 i: 1 } } } attr { key: "use_cudnn_on_gpu" value { b: true } } } node { name: "train/gradients/Conv2D_grad/tuple/group_deps" op: "NoOp" input: "^train/gradients/Conv2D_grad/Conv2DBackpropFilter" input: "^train/gradients/Conv2D_grad/Conv2DBackpropInput" } node { name: "train/gradients/Conv2D_grad/tuple/control_dependency" op: "Identity" input: "train/gradients/Conv2D_grad/Conv2DBackpropInput" input: "^train/gradients/Conv2D_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/Conv2D_grad/Conv2DBackpropInput" } } } } node { name: "train/gradients/Conv2D_grad/tuple/control_dependency_1" op: "Identity" input: "train/gradients/Conv2D_grad/Conv2DBackpropFilter" input: "^train/gradients/Conv2D_grad/tuple/group_deps" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@train/gradients/Conv2D_grad/Conv2DBackpropFilter" } } } } node { name: "train/GradientDescent/update_first_weights/ApplyGradientDescent" op: "ApplyGradientDescent" input: "first_weights" input: "train/learning_rate_input" input: "train/gradients/Conv2D_grad/tuple/control_dependency_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "use_locking" value { b: false } } } node { name: "train/GradientDescent/update_first_bias/ApplyGradientDescent" op: "ApplyGradientDescent" input: "first_bias" input: "train/learning_rate_input" input: "train/gradients/add_grad/tuple/control_dependency_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_bias" } } } attr { key: "use_locking" value { b: false } } } node { name: "train/GradientDescent/update_final_fc_weights/ApplyGradientDescent" op: "ApplyGradientDescent" input: "final_fc_weights" input: "train/learning_rate_input" input: "train/gradients/MatMul_grad/tuple/control_dependency_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "use_locking" value { b: false } } } node { name: "train/GradientDescent/update_final_fc_bias/ApplyGradientDescent" op: "ApplyGradientDescent" input: "final_fc_bias" input: "train/learning_rate_input" input: "train/gradients/add_1_grad/tuple/control_dependency_1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_bias" } } } attr { key: "use_locking" value { b: false } } } node { name: "train/GradientDescent" op: "NoOp" input: "^train/GradientDescent/update_final_fc_bias/ApplyGradientDescent" input: "^train/GradientDescent/update_final_fc_weights/ApplyGradientDescent" input: "^train/GradientDescent/update_first_bias/ApplyGradientDescent" input: "^train/GradientDescent/update_first_weights/ApplyGradientDescent" } node { name: "ArgMax/dimension" op: "Const" 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: "add_1" input: "ArgMax/dimension" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "output_type" value { type: DT_INT64 } } } node { name: "Equal" op: "Equal" input: "ArgMax" input: "groundtruth_input" attr { key: "T" value { type: DT_INT64 } } attr { key: "incompatible_shape_error" value { b: true } } } node { name: "confusion_matrix/assert_non_negative/Const" op: "Const" attr { key: "dtype" value { type: DT_INT64 } } attr { key: "value" value { tensor { dtype: DT_INT64 tensor_shape { } int64_val: 0 } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/LessEqual" op: "LessEqual" input: "confusion_matrix/assert_non_negative/Const" input: "groundtruth_input" attr { key: "T" value { type: DT_INT64 } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Const" op: "Const" 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: "confusion_matrix/assert_non_negative/assert_less_equal/All" op: "All" input: "confusion_matrix/assert_non_negative/assert_less_equal/LessEqual" input: "confusion_matrix/assert_non_negative/assert_less_equal/Const" attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/Const" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`labels` contains negative values" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/Const_1" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x >= 0 did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/Const_2" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (groundtruth_input:0) = " } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Switch" op: "Switch" input: "confusion_matrix/assert_non_negative/assert_less_equal/All" input: "confusion_matrix/assert_non_negative/assert_less_equal/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_t" op: "Identity" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Switch:1" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_f" op: "Identity" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Switch" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/pred_id" op: "Identity" input: "confusion_matrix/assert_non_negative/assert_less_equal/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/NoOp" op: "NoOp" input: "^confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_t" } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/control_dependency" op: "Identity" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_t" input: "^confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/NoOp" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_t" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/data_0" op: "Const" input: "^confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`labels` contains negative values" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/data_1" op: "Const" input: "^confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x >= 0 did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/data_2" op: "Const" input: "^confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (groundtruth_input:0) = " } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert" op: "Assert" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/Switch" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/data_0" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/data_1" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/data_2" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/Switch_1" attr { key: "T" value { list { type: DT_STRING type: DT_STRING type: DT_STRING type: DT_INT64 } } } attr { key: "summarize" value { i: 3 } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/Switch" op: "Switch" input: "confusion_matrix/assert_non_negative/assert_less_equal/All" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_non_negative/assert_less_equal/All" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert/Switch_1" op: "Switch" input: "groundtruth_input" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@groundtruth_input" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/control_dependency_1" op: "Identity" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_f" input: "^confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Assert" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/switch_f" } } } } node { name: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Merge" op: "Merge" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/control_dependency_1" input: "confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/control_dependency" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/control_dependency" op: "Identity" input: "groundtruth_input" input: "^confusion_matrix/assert_non_negative/assert_less_equal/Assert/AssertGuard/Merge" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@groundtruth_input" } } } } node { name: "confusion_matrix/assert_non_negative_1/Const" op: "Const" attr { key: "dtype" value { type: DT_INT64 } } attr { key: "value" value { tensor { dtype: DT_INT64 tensor_shape { } int64_val: 0 } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/LessEqual" op: "LessEqual" input: "confusion_matrix/assert_non_negative_1/Const" input: "ArgMax" attr { key: "T" value { type: DT_INT64 } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Const" op: "Const" 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: "confusion_matrix/assert_non_negative_1/assert_less_equal/All" op: "All" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/LessEqual" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Const" attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/Const" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`predictions` contains negative values" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/Const_1" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x >= 0 did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/Const_2" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (ArgMax:0) = " } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Switch" op: "Switch" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/All" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_t" op: "Identity" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Switch:1" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_f" op: "Identity" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Switch" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/pred_id" op: "Identity" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/NoOp" op: "NoOp" input: "^confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_t" } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/control_dependency" op: "Identity" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_t" input: "^confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/NoOp" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_t" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/data_0" op: "Const" input: "^confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`predictions` contains negative values" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/data_1" op: "Const" input: "^confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x >= 0 did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/data_2" op: "Const" input: "^confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (ArgMax:0) = " } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert" op: "Assert" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/Switch" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/data_0" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/data_1" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/data_2" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/Switch_1" attr { key: "T" value { list { type: DT_STRING type: DT_STRING type: DT_STRING type: DT_INT64 } } } attr { key: "summarize" value { i: 3 } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/Switch" op: "Switch" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/All" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_non_negative_1/assert_less_equal/All" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert/Switch_1" op: "Switch" input: "ArgMax" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@ArgMax" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/control_dependency_1" op: "Identity" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_f" input: "^confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Assert" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/switch_f" } } } } node { name: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Merge" op: "Merge" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/control_dependency_1" input: "confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/control_dependency" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/control_dependency_1" op: "Identity" input: "ArgMax" input: "^confusion_matrix/assert_non_negative_1/assert_less_equal/Assert/AssertGuard/Merge" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@ArgMax" } } } } node { name: "confusion_matrix/Cast/x" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 4 } } } } node { name: "confusion_matrix/Cast" op: "Cast" input: "confusion_matrix/Cast/x" attr { key: "DstT" value { type: DT_INT64 } } attr { key: "SrcT" value { type: DT_INT32 } } attr { key: "Truncate" value { b: false } } } node { name: "confusion_matrix/assert_less/Less" op: "Less" input: "confusion_matrix/control_dependency" input: "confusion_matrix/Cast" attr { key: "T" value { type: DT_INT64 } } } node { name: "confusion_matrix/assert_less/Const" op: "Const" 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: "confusion_matrix/assert_less/All" op: "All" input: "confusion_matrix/assert_less/Less" input: "confusion_matrix/assert_less/Const" attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "confusion_matrix/assert_less/Assert/Const" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`labels` out of bound" } } } } node { name: "confusion_matrix/assert_less/Assert/Const_1" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x < y did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_less/Assert/Const_2" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (confusion_matrix/control_dependency:0) = " } } } } node { name: "confusion_matrix/assert_less/Assert/Const_3" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "y (confusion_matrix/Cast:0) = " } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Switch" op: "Switch" input: "confusion_matrix/assert_less/All" input: "confusion_matrix/assert_less/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/switch_t" op: "Identity" input: "confusion_matrix/assert_less/Assert/AssertGuard/Switch:1" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/switch_f" op: "Identity" input: "confusion_matrix/assert_less/Assert/AssertGuard/Switch" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/pred_id" op: "Identity" input: "confusion_matrix/assert_less/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/NoOp" op: "NoOp" input: "^confusion_matrix/assert_less/Assert/AssertGuard/switch_t" } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/control_dependency" op: "Identity" input: "confusion_matrix/assert_less/Assert/AssertGuard/switch_t" input: "^confusion_matrix/assert_less/Assert/AssertGuard/NoOp" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_less/Assert/AssertGuard/switch_t" } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_0" op: "Const" input: "^confusion_matrix/assert_less/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`labels` out of bound" } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_1" op: "Const" input: "^confusion_matrix/assert_less/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x < y did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_2" op: "Const" input: "^confusion_matrix/assert_less/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (confusion_matrix/control_dependency:0) = " } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_4" op: "Const" input: "^confusion_matrix/assert_less/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "y (confusion_matrix/Cast:0) = " } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert" op: "Assert" input: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch" input: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_0" input: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_1" input: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_2" input: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch_1" input: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_4" input: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch_2" attr { key: "T" value { list { type: DT_STRING type: DT_STRING type: DT_STRING type: DT_INT64 type: DT_STRING type: DT_INT64 } } } attr { key: "summarize" value { i: 3 } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch" op: "Switch" input: "confusion_matrix/assert_less/All" input: "confusion_matrix/assert_less/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_less/All" } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch_1" op: "Switch" input: "confusion_matrix/control_dependency" input: "confusion_matrix/assert_less/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@groundtruth_input" } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch_2" op: "Switch" input: "confusion_matrix/Cast" input: "confusion_matrix/assert_less/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/Cast" } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/control_dependency_1" op: "Identity" input: "confusion_matrix/assert_less/Assert/AssertGuard/switch_f" input: "^confusion_matrix/assert_less/Assert/AssertGuard/Assert" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_less/Assert/AssertGuard/switch_f" } } } } node { name: "confusion_matrix/assert_less/Assert/AssertGuard/Merge" op: "Merge" input: "confusion_matrix/assert_less/Assert/AssertGuard/control_dependency_1" input: "confusion_matrix/assert_less/Assert/AssertGuard/control_dependency" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/control_dependency_2" op: "Identity" input: "confusion_matrix/control_dependency" input: "^confusion_matrix/assert_less/Assert/AssertGuard/Merge" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@groundtruth_input" } } } } node { name: "confusion_matrix/assert_less_1/Less" op: "Less" input: "confusion_matrix/control_dependency_1" input: "confusion_matrix/Cast" attr { key: "T" value { type: DT_INT64 } } } node { name: "confusion_matrix/assert_less_1/Const" op: "Const" 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: "confusion_matrix/assert_less_1/All" op: "All" input: "confusion_matrix/assert_less_1/Less" input: "confusion_matrix/assert_less_1/Const" attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "confusion_matrix/assert_less_1/Assert/Const" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`predictions` out of bound" } } } } node { name: "confusion_matrix/assert_less_1/Assert/Const_1" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x < y did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_less_1/Assert/Const_2" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (confusion_matrix/control_dependency_1:0) = " } } } } node { name: "confusion_matrix/assert_less_1/Assert/Const_3" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "y (confusion_matrix/Cast:0) = " } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Switch" op: "Switch" input: "confusion_matrix/assert_less_1/All" input: "confusion_matrix/assert_less_1/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/switch_t" op: "Identity" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Switch:1" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/switch_f" op: "Identity" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Switch" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/pred_id" op: "Identity" input: "confusion_matrix/assert_less_1/All" attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/NoOp" op: "NoOp" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/switch_t" } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/control_dependency" op: "Identity" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/switch_t" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/NoOp" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_less_1/Assert/AssertGuard/switch_t" } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_0" op: "Const" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "`predictions` out of bound" } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_1" op: "Const" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "Condition x < y did not hold element-wise:" } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_2" op: "Const" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "x (confusion_matrix/control_dependency_1:0) = " } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_4" op: "Const" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/switch_f" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "y (confusion_matrix/Cast:0) = " } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert" op: "Assert" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/Switch" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_0" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_1" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_2" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/Switch_1" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/data_4" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/Switch_2" attr { key: "T" value { list { type: DT_STRING type: DT_STRING type: DT_STRING type: DT_INT64 type: DT_STRING type: DT_INT64 } } } attr { key: "summarize" value { i: 3 } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/Switch" op: "Switch" input: "confusion_matrix/assert_less_1/All" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_less_1/All" } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/Switch_1" op: "Switch" input: "confusion_matrix/control_dependency_1" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@ArgMax" } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Assert/Switch_2" op: "Switch" input: "confusion_matrix/Cast" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/pred_id" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/Cast" } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/control_dependency_1" op: "Identity" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/switch_f" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/Assert" attr { key: "T" value { type: DT_BOOL } } attr { key: "_class" value { list { s: "loc:@confusion_matrix/assert_less_1/Assert/AssertGuard/switch_f" } } } } node { name: "confusion_matrix/assert_less_1/Assert/AssertGuard/Merge" op: "Merge" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/control_dependency_1" input: "confusion_matrix/assert_less_1/Assert/AssertGuard/control_dependency" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_BOOL } } } node { name: "confusion_matrix/control_dependency_3" op: "Identity" input: "confusion_matrix/control_dependency_1" input: "^confusion_matrix/assert_less_1/Assert/AssertGuard/Merge" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@ArgMax" } } } } node { name: "confusion_matrix/stack" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { dim { size: 2 } } tensor_content: "\004\000\000\000\004\000\000\000" } } } } node { name: "confusion_matrix/stack_1" op: "Pack" input: "confusion_matrix/control_dependency_2" input: "confusion_matrix/control_dependency_3" attr { key: "N" value { i: 2 } } attr { key: "T" value { type: DT_INT64 } } attr { key: "axis" value { i: 1 } } } node { name: "confusion_matrix/ones_like/Shape" op: "Shape" input: "confusion_matrix/control_dependency_3" attr { key: "T" value { type: DT_INT64 } } attr { key: "out_type" value { type: DT_INT32 } } } node { name: "confusion_matrix/ones_like/Const" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 1 } } } } node { name: "confusion_matrix/ones_like" op: "Fill" input: "confusion_matrix/ones_like/Shape" input: "confusion_matrix/ones_like/Const" attr { key: "T" value { type: DT_INT32 } } attr { key: "index_type" value { type: DT_INT32 } } } node { name: "confusion_matrix/Cast_1" op: "Cast" input: "confusion_matrix/stack" attr { key: "DstT" value { type: DT_INT64 } } attr { key: "SrcT" value { type: DT_INT32 } } attr { key: "Truncate" value { b: false } } } node { name: "confusion_matrix/zeros/Const" op: "Const" attr { key: "dtype" value { type: DT_INT32 } } attr { key: "value" value { tensor { dtype: DT_INT32 tensor_shape { } int_val: 0 } } } } node { name: "confusion_matrix/zeros" op: "Fill" input: "confusion_matrix/stack" input: "confusion_matrix/zeros/Const" attr { key: "T" value { type: DT_INT32 } } attr { key: "index_type" value { type: DT_INT32 } } } node { name: "confusion_matrix/SparseTensorDenseAdd" op: "SparseTensorDenseAdd" input: "confusion_matrix/stack_1" input: "confusion_matrix/ones_like" input: "confusion_matrix/Cast_1" input: "confusion_matrix/zeros" attr { key: "T" value { type: DT_INT32 } } attr { key: "Tindices" value { type: DT_INT64 } } } node { name: "Cast" op: "Cast" input: "Equal" attr { key: "DstT" value { type: DT_FLOAT } } attr { key: "SrcT" value { type: DT_BOOL } } attr { key: "Truncate" value { b: false } } } node { name: "Const" op: "Const" 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: "Cast" input: "Const" attr { key: "T" value { type: DT_FLOAT } } attr { key: "Tidx" value { type: DT_INT32 } } attr { key: "keep_dims" value { b: false } } } node { name: "eval/cross_entropy/tags" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "eval/cross_entropy" } } } } node { name: "eval/cross_entropy" op: "ScalarSummary" input: "eval/cross_entropy/tags" input: "cross_entropy/sparse_softmax_cross_entropy_loss/value" attr { key: "T" value { type: DT_FLOAT } } } node { name: "eval/accuracy/tags" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "eval/accuracy" } } } } node { name: "eval/accuracy" op: "ScalarSummary" input: "eval/accuracy/tags" input: "Mean" attr { key: "T" value { type: DT_FLOAT } } } node { name: "global_step/Initializer/zeros" op: "Const" attr { key: "_class" value { list { s: "loc:@global_step" } } } attr { key: "dtype" value { type: DT_INT64 } } attr { key: "value" value { tensor { dtype: DT_INT64 tensor_shape { } int64_val: 0 } } } } node { name: "global_step" op: "VariableV2" attr { key: "_class" value { list { s: "loc:@global_step" } } } attr { key: "container" value { s: "" } } attr { key: "dtype" value { type: DT_INT64 } } attr { key: "shape" value { shape { } } } attr { key: "shared_name" value { s: "" } } } node { name: "global_step/Assign" op: "Assign" input: "global_step" input: "global_step/Initializer/zeros" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@global_step" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "global_step/read" op: "Identity" input: "global_step" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@global_step" } } } } node { name: "add_2/y" op: "Const" attr { key: "dtype" value { type: DT_INT64 } } attr { key: "value" value { tensor { dtype: DT_INT64 tensor_shape { } int64_val: 1 } } } } node { name: "add_2" op: "AddV2" input: "global_step/read" input: "add_2/y" attr { key: "T" value { type: DT_INT64 } } } node { name: "Assign" op: "Assign" input: "global_step" input: "add_2" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@global_step" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/filename/input" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { } string_val: "model" } } } } node { name: "save/filename" op: "PlaceholderWithDefault" input: "save/filename/input" attr { key: "dtype" value { type: DT_STRING } } attr { key: "shape" value { shape { } } } } node { name: "save/Const" op: "PlaceholderWithDefault" input: "save/filename" attr { key: "dtype" value { type: DT_STRING } } attr { key: "shape" value { shape { } } } } node { name: "save/SaveV2/tensor_names" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 5 } } string_val: "final_fc_bias" string_val: "final_fc_weights" string_val: "first_bias" string_val: "first_weights" string_val: "global_step" } } } } node { name: "save/SaveV2/shape_and_slices" op: "Const" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 5 } } string_val: "" string_val: "" string_val: "" string_val: "" string_val: "" } } } } node { name: "save/SaveV2" op: "SaveV2" input: "save/Const" input: "save/SaveV2/tensor_names" input: "save/SaveV2/shape_and_slices" input: "final_fc_bias" input: "final_fc_weights" input: "first_bias" input: "first_weights" input: "global_step" attr { key: "dtypes" value { list { type: DT_FLOAT type: DT_FLOAT type: DT_FLOAT type: DT_FLOAT type: DT_INT64 } } } } node { name: "save/control_dependency" op: "Identity" input: "save/Const" input: "^save/SaveV2" attr { key: "T" value { type: DT_STRING } } attr { key: "_class" value { list { s: "loc:@save/Const" } } } } node { name: "save/RestoreV2/tensor_names" op: "Const" device: "/device:CPU:0" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 5 } } string_val: "final_fc_bias" string_val: "final_fc_weights" string_val: "first_bias" string_val: "first_weights" string_val: "global_step" } } } } node { name: "save/RestoreV2/shape_and_slices" op: "Const" device: "/device:CPU:0" attr { key: "dtype" value { type: DT_STRING } } attr { key: "value" value { tensor { dtype: DT_STRING tensor_shape { dim { size: 5 } } string_val: "" string_val: "" string_val: "" 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: "dtypes" value { list { type: DT_FLOAT type: DT_FLOAT type: DT_FLOAT type: DT_FLOAT type: DT_INT64 } } } } node { name: "save/Assign" op: "Assign" input: "final_fc_bias" input: "save/RestoreV2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_bias" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/Assign_1" op: "Assign" input: "final_fc_weights" input: "save/RestoreV2:1" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@final_fc_weights" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/Assign_2" op: "Assign" input: "first_bias" input: "save/RestoreV2:2" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_bias" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/Assign_3" op: "Assign" input: "first_weights" input: "save/RestoreV2:3" attr { key: "T" value { type: DT_FLOAT } } attr { key: "_class" value { list { s: "loc:@first_weights" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/Assign_4" op: "Assign" input: "global_step" input: "save/RestoreV2:4" attr { key: "T" value { type: DT_INT64 } } attr { key: "_class" value { list { s: "loc:@global_step" } } } attr { key: "use_locking" value { b: true } } attr { key: "validate_shape" value { b: true } } } node { name: "save/restore_all" op: "NoOp" input: "^save/Assign" input: "^save/Assign_1" input: "^save/Assign_2" input: "^save/Assign_3" input: "^save/Assign_4" } node { name: "Merge/MergeSummary" op: "MergeSummary" input: "eval/cross_entropy" input: "eval/accuracy" attr { key: "N" value { i: 2 } } } node { name: "init" op: "NoOp" input: "^final_fc_bias/Assign" input: "^final_fc_weights/Assign" input: "^first_bias/Assign" input: "^first_weights/Assign" input: "^global_step/Assign" } versions { producer: 134 }