micro-speech / tiny_conv.pbtxt
sylwia-kuros's picture
Upload model files
58ee193 verified
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
}