diff --git a/README.md b/README.md index 636b38d92..03b9c9b17 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,7 @@ Models | Ca [Pix2Pix](https://github.com/phillipi/pix2pix) | √ | × | × | [VQA](https://github.com/iamaaditya/VQA_Demo) | √ | √ | √ | [Denoising Auto-Encoder](https://blog.keras.io/building-autoencoders-in-keras.html) | × | √ | √ | +[CapsNet](https://arxiv.org/abs/1710.09829) | × | √ | √ | Note: For models that use a custom LRN layer (Alexnet), Keras expects the custom layer to be passed when it is loaded from json. LRN.py is located in keras_app/custom_layers. [Alexnet import for Keras](https://github.com/Cloud-CV/Fabrik/blob/master/tutorials/keras_custom_layer_usage.md) diff --git a/example/keras/capsnet.json b/example/keras/capsnet.json new file mode 100644 index 000000000..5cfa174c9 --- /dev/null +++ b/example/keras/capsnet.json @@ -0,0 +1,414 @@ +{ + "class_name": "Model", + "keras_version": "2.0.8", + "config": { + "layers": [ + { + "class_name": "InputLayer", + "config": { + "dtype": "float32", + "batch_input_shape": [ + null, + 28, + 28, + 1 + ], + "name": "Input", + "sparse": false + }, + "inbound_nodes": [], + "name": "Input" + }, + { + "class_name": "Conv2D", + "config": { + "kernel_constraint": null, + "kernel_initializer": { + "class_name": "VarianceScaling", + "config": { + "distribution": "uniform", + "scale": 1.0, + "seed": null, + "mode": "fan_avg" + } + }, + "name": "conv1", + "bias_regularizer": null, + "bias_constraint": null, + "activation": "relu", + "trainable": true, + "data_format": "channels_last", + "padding": "valid", + "strides": [ + 1, + 1 + ], + "dilation_rate": [ + 1, + 1 + ], + "kernel_regularizer": null, + "filters": 256, + "bias_initializer": { + "class_name": "Zeros", + "config": {} + }, + "use_bias": true, + "activity_regularizer": null, + "kernel_size": [ + 9, + 9 + ] + }, + "inbound_nodes": [ + [ + [ + "Input", + 0, + 0, + {} + ] + ] + ], + "name": "conv1" + }, + { + "class_name": "Conv2D", + "config": { + "kernel_constraint": null, + "kernel_initializer": { + "class_name": "VarianceScaling", + "config": { + "distribution": "uniform", + "scale": 1.0, + "seed": null, + "mode": "fan_avg" + } + }, + "name": "primarycap_conv2d", + "bias_regularizer": null, + "bias_constraint": null, + "activation": "linear", + "trainable": true, + "data_format": "channels_last", + "padding": "valid", + "strides": [ + 2, + 2 + ], + "dilation_rate": [ + 1, + 1 + ], + "kernel_regularizer": null, + "filters": 256, + "bias_initializer": { + "class_name": "Zeros", + "config": {} + }, + "use_bias": true, + "activity_regularizer": null, + "kernel_size": [ + 9, + 9 + ] + }, + "inbound_nodes": [ + [ + [ + "conv1", + 0, + 0, + {} + ] + ] + ], + "name": "primarycap_conv2d" + }, + { + "class_name": "Reshape", + "config": { + "target_shape": [ + 1152, + 8 + ], + "trainable": true, + "name": "primarycap_reshape" + }, + "inbound_nodes": [ + [ + [ + "primarycap_conv2d", + 0, + 0, + {} + ] + ] + ], + "name": "primarycap_reshape" + }, + { + "class_name": "Squash", + "config": { + "trainable": true, + "name": "primarycap_sqash", + "axis": -1 + }, + "inbound_nodes": [ + [ + [ + "primarycap_reshape", + 0, + 0, + {} + ] + ] + ], + "name": "primarycap_sqash" + }, + { + "class_name": "CapsuleLayer", + "config": { + "num_routing": 3, + "dim_capsule": 16, + "trainable": true, + "name": "digitcaps", + "num_capsule": 10 + }, + "inbound_nodes": [ + [ + [ + "primarycap_sqash", + 0, + 0, + {} + ] + ] + ], + "name": "digitcaps" + }, + { + "class_name": "InputLayer", + "config": { + "dtype": "float32", + "batch_input_shape": [ + null, + 10 + ], + "name": "input_1", + "sparse": false + }, + "inbound_nodes": [], + "name": "input_1" + }, + { + "class_name": "MaskCapsule", + "config": { + "trainable": true, + "name": "mask_capsule_1" + }, + "inbound_nodes": [ + [ + [ + "digitcaps", + 0, + 0, + {} + ], + [ + "input_1", + 0, + 0, + {} + ] + ] + ], + "name": "mask_capsule_1" + }, + { + "class_name": "Dense", + "config": { + "kernel_initializer": { + "class_name": "VarianceScaling", + "config": { + "distribution": "uniform", + "scale": 1.0, + "seed": null, + "mode": "fan_avg" + } + }, + "name": "dense_1", + "kernel_constraint": null, + "bias_regularizer": null, + "bias_constraint": null, + "activation": "relu", + "trainable": true, + "kernel_regularizer": null, + "bias_initializer": { + "class_name": "Zeros", + "config": {} + }, + "units": 512, + "use_bias": true, + "activity_regularizer": null + }, + "inbound_nodes": [ + [ + [ + "mask_capsule_1", + 0, + 0, + {} + ] + ] + ], + "name": "dense_1" + }, + { + "class_name": "Dense", + "config": { + "kernel_initializer": { + "class_name": "VarianceScaling", + "config": { + "distribution": "uniform", + "scale": 1.0, + "seed": null, + "mode": "fan_avg" + } + }, + "name": "dense_2", + "kernel_constraint": null, + "bias_regularizer": null, + "bias_constraint": null, + "activation": "relu", + "trainable": true, + "kernel_regularizer": null, + "bias_initializer": { + "class_name": "Zeros", + "config": {} + }, + "units": 1024, + "use_bias": true, + "activity_regularizer": null + }, + "inbound_nodes": [ + [ + [ + "dense_1", + 0, + 0, + {} + ] + ] + ], + "name": "dense_2" + }, + { + "class_name": "Dense", + "config": { + "kernel_initializer": { + "class_name": "VarianceScaling", + "config": { + "distribution": "uniform", + "scale": 1.0, + "seed": null, + "mode": "fan_avg" + } + }, + "name": "dense_3", + "kernel_constraint": null, + "bias_regularizer": null, + "bias_constraint": null, + "activation": "sigmoid", + "trainable": true, + "kernel_regularizer": null, + "bias_initializer": { + "class_name": "Zeros", + "config": {} + }, + "units": 784, + "use_bias": true, + "activity_regularizer": null + }, + "inbound_nodes": [ + [ + [ + "dense_2", + 0, + 0, + {} + ] + ] + ], + "name": "dense_3" + }, + { + "class_name": "Length", + "config": { + "trainable": true, + "name": "capsnet" + }, + "inbound_nodes": [ + [ + [ + "digitcaps", + 0, + 0, + {} + ] + ] + ], + "name": "capsnet" + }, + { + "class_name": "Reshape", + "config": { + "target_shape": [ + 28, + 28, + 1 + ], + "trainable": true, + "name": "out_recon" + }, + "inbound_nodes": [ + [ + [ + "dense_3", + 0, + 0, + {} + ] + ] + ], + "name": "out_recon" + } + ], + "input_layers": [ + [ + "Input", + 0, + 0 + ], + [ + "input_1", + 0, + 0 + ] + ], + "output_layers": [ + [ + "capsnet", + 0, + 0 + ], + [ + "out_recon", + 0, + 0 + ] + ], + "name": "CapsNet" + }, + "backend": "tensorflow" +} \ No newline at end of file diff --git a/example/tensorflow/Capsulelayers.pbtxt b/example/tensorflow/Capsulelayers.pbtxt new file mode 100644 index 000000000..94d43bef2 --- /dev/null +++ b/example/tensorflow/Capsulelayers.pbtxt @@ -0,0 +1,24587 @@ +node { + name: "input_1" + op: "Placeholder" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } +} +node { + name: "input_2" + op: "Placeholder" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 28 + } + dim { + size: 28 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: -1 + } + dim { + size: 28 + } + dim { + size: 28 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "conv2d_1/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + tensor_content: "\t\000\000\000\t\000\000\000\001\000\000\000\000\001\000\000" + } + } + } +} +node { + name: "conv2d_1/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_1/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.111111111939 + } + } + } +} +node { + name: "conv2d_1/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "conv2d_1/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 763311 + } + } +} +node { + name: "conv2d_1/truncated_normal/mul" + op: "Mul" + input: "conv2d_1/truncated_normal/TruncatedNormal" + input: "conv2d_1/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1/truncated_normal" + op: "Add" + input: "conv2d_1/truncated_normal/mul" + input: "conv2d_1/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_1/kernel/Assign" + op: "Assign" + input: "conv2d_1/kernel" + input: "conv2d_1/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_1/kernel/read" + op: "Identity" + input: "conv2d_1/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 256 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_1/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_1/bias/Assign" + op: "Assign" + input: "conv2d_1/bias" + input: "conv2d_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_1/bias/read" + op: "Identity" + input: "conv2d_1/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1/convolution/dilation_rate" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\001\000\000\000\001\000\000\000" + } + } + } +} +node { + name: "conv2d_1/convolution" + op: "Conv2D" + input: "input_2" + input: "conv2d_1/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 20 + } + dim { + size: 20 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "use_cudnn_on_gpu" + value { + b: true + } + } +} +node { + name: "conv2d_1/BiasAdd" + op: "BiasAdd" + input: "conv2d_1/convolution" + input: "conv2d_1/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 20 + } + dim { + size: 20 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_1/Relu" + op: "Relu" + input: "conv2d_1/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 20 + } + dim { + size: 20 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + tensor_content: "\t\000\000\000\t\000\000\000\000\001\000\000\000\001\000\000" + } + } + } +} +node { + name: "conv2d_2/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_2/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.00694444449618 + } + } + } +} +node { + name: "conv2d_2/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "conv2d_2/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 6872 + } + } +} +node { + name: "conv2d_2/truncated_normal/mul" + op: "Mul" + input: "conv2d_2/truncated_normal/TruncatedNormal" + input: "conv2d_2/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2/truncated_normal" + op: "Add" + input: "conv2d_2/truncated_normal/mul" + input: "conv2d_2/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_2/kernel/Assign" + op: "Assign" + input: "conv2d_2/kernel" + input: "conv2d_2/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_2/kernel/read" + op: "Identity" + input: "conv2d_2/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 256 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_2/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_2/bias/Assign" + op: "Assign" + input: "conv2d_2/bias" + input: "conv2d_2/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_2/bias/read" + op: "Identity" + input: "conv2d_2/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2/convolution/dilation_rate" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\001\000\000\000\001\000\000\000" + } + } + } +} +node { + name: "conv2d_2/convolution" + op: "Conv2D" + input: "activation_1/Relu" + input: "conv2d_2/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 6 + } + dim { + size: 6 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } + attr { + key: "use_cudnn_on_gpu" + value { + b: true + } + } +} +node { + name: "conv2d_2/BiasAdd" + op: "BiasAdd" + input: "conv2d_2/convolution" + input: "conv2d_2/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 6 + } + dim { + size: 6 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "reshape_1/Reshape/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\377\377\377\377\010\000\000\000\200\004\000\000" + } + } + } +} +node { + name: "reshape_1/Reshape" + op: "Reshape" + input: "conv2d_2/BiasAdd" + input: "reshape_1/Reshape/shape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "squash_1/Square" + op: "Square" + input: "reshape_1/Reshape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "squash_1/Sum/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "squash_1/Sum" + op: "Sum" + input: "squash_1/Square" + input: "squash_1/Sum/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "squash_1/add/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "squash_1/add" + op: "Add" + input: "squash_1/add/x" + input: "squash_1/Sum" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1/div" + op: "RealDiv" + input: "squash_1/Sum" + input: "squash_1/add" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1/add_1/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "squash_1/add_1" + op: "Add" + input: "squash_1/Sum" + input: "squash_1/add_1/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "squash_1/Const_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "squash_1/clip_by_value/Minimum" + op: "Minimum" + input: "squash_1/add_1" + input: "squash_1/Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1/clip_by_value" + op: "Maximum" + input: "squash_1/clip_by_value/Minimum" + input: "squash_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1/Sqrt" + op: "Sqrt" + input: "squash_1/clip_by_value" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1/div_1" + op: "RealDiv" + input: "squash_1/div" + input: "squash_1/Sqrt" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1/mul" + op: "Mul" + input: "squash_1/div_1" + input: "reshape_1/Reshape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "capsule_layer_2/random_uniform/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + tensor_content: "\010\000\000\000\n\000\000\000\200\004\000\000\020\000\000\000" + } + } + } +} +node { + name: "capsule_layer_2/random_uniform/min" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: -1.0 + } + } + } +} +node { + name: "capsule_layer_2/random_uniform/max" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2/random_uniform/RandomUniform" + op: "RandomUniform" + input: "capsule_layer_2/random_uniform/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 4014443 + } + } +} +node { + name: "capsule_layer_2/random_uniform/sub" + op: "Sub" + input: "capsule_layer_2/random_uniform/max" + input: "capsule_layer_2/random_uniform/min" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/random_uniform/mul" + op: "Mul" + input: "capsule_layer_2/random_uniform/RandomUniform" + input: "capsule_layer_2/random_uniform/sub" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/random_uniform" + op: "Add" + input: "capsule_layer_2/random_uniform/mul" + input: "capsule_layer_2/random_uniform/min" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/W" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2/W/Assign" + op: "Assign" + input: "capsule_layer_2/W" + input: "capsule_layer_2/random_uniform" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/W" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "capsule_layer_2/W/read" + op: "Identity" + input: "capsule_layer_2/W" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/W" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2/b" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2/b/Assign" + op: "Assign" + input: "capsule_layer_2/b" + input: "capsule_layer_2/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/b" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "capsule_layer_2/b/read" + op: "Identity" + input: "capsule_layer_2/b" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/b" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2/c" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2/c/Assign" + op: "Assign" + input: "capsule_layer_2/c" + input: "capsule_layer_2/Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/c" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "capsule_layer_2/c/read" + op: "Identity" + input: "capsule_layer_2/c" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/c" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims" + op: "ExpandDims" + input: "squash_1/mul" + input: "capsule_layer_2/ExpandDims/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/split/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2/split" + op: "Split" + input: "capsule_layer_2/split/split_dim" + input: "capsule_layer_2/ExpandDims" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + dim { + size: 1152 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/concat/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2/concat" + op: "ConcatV2" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/split" + input: "capsule_layer_2/concat/axis" + attr { + key: "N" + value { + i: 10 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "capsule_layer_2/map/Shape" + op: "Shape" + input: "capsule_layer_2/concat" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2/map/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/map/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/strided_slice" + op: "StridedSlice" + input: "capsule_layer_2/map/Shape" + input: "capsule_layer_2/map/strided_slice/stack" + input: "capsule_layer_2/map/strided_slice/stack_1" + input: "capsule_layer_2/map/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/map/TensorArray" + op: "TensorArrayV3" + input: "capsule_layer_2/map/strided_slice" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + shape { + } + } + } + } + attr { + key: "clear_after_read" + value { + b: true + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "dynamic_size" + value { + b: false + } + } + attr { + key: "element_shape" + value { + shape { + unknown_rank: true + } + } + } + attr { + key: "tensor_array_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/Shape" + op: "Shape" + input: "capsule_layer_2/concat" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/strided_slice" + op: "StridedSlice" + input: "capsule_layer_2/map/TensorArrayUnstack/Shape" + input: "capsule_layer_2/map/TensorArrayUnstack/strided_slice/stack" + input: "capsule_layer_2/map/TensorArrayUnstack/strided_slice/stack_1" + input: "capsule_layer_2/map/TensorArrayUnstack/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/range/start" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/range/delta" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/range" + op: "Range" + input: "capsule_layer_2/map/TensorArrayUnstack/range/start" + input: "capsule_layer_2/map/TensorArrayUnstack/strided_slice" + input: "capsule_layer_2/map/TensorArrayUnstack/range/delta" + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3" + op: "TensorArrayScatterV3" + input: "capsule_layer_2/map/TensorArray" + input: "capsule_layer_2/map/TensorArrayUnstack/range" + input: "capsule_layer_2/concat" + input: "capsule_layer_2/map/TensorArray:1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/concat" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArray_1" + op: "TensorArrayV3" + input: "capsule_layer_2/map/strided_slice" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + shape { + } + } + } + } + attr { + key: "clear_after_read" + value { + b: true + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "dynamic_size" + value { + b: false + } + } + attr { + key: "element_shape" + value { + shape { + unknown_rank: true + } + } + } + attr { + key: "tensor_array_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2/map/while/Enter" + op: "Enter" + input: "capsule_layer_2/map/Const" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: false + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2/map/while/Enter_1" + op: "Enter" + input: "capsule_layer_2/map/TensorArray_1:1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: false + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2/map/while/Merge" + op: "Merge" + input: "capsule_layer_2/map/while/Enter" + input: "capsule_layer_2/map/while/NextIteration" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Merge_1" + op: "Merge" + input: "capsule_layer_2/map/while/Enter_1" + input: "capsule_layer_2/map/while/NextIteration_1" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Less/Enter" + op: "Enter" + input: "capsule_layer_2/map/strided_slice" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2/map/while/Less" + op: "Less" + input: "capsule_layer_2/map/while/Merge" + input: "capsule_layer_2/map/while/Less/Enter" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/LoopCond" + op: "LoopCond" + input: "capsule_layer_2/map/while/Less" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Switch" + op: "Switch" + input: "capsule_layer_2/map/while/Merge" + input: "capsule_layer_2/map/while/LoopCond" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/while/Merge" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Switch_1" + op: "Switch" + input: "capsule_layer_2/map/while/Merge_1" + input: "capsule_layer_2/map/while/LoopCond" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/while/Merge_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Identity" + op: "Identity" + input: "capsule_layer_2/map/while/Switch:1" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Identity_1" + op: "Identity" + input: "capsule_layer_2/map/while/Switch_1:1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/TensorArrayReadV3/Enter" + op: "Enter" + input: "capsule_layer_2/map/TensorArray" + attr { + key: "T" + value { + type: DT_RESOURCE + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2/map/while/TensorArrayReadV3/Enter_1" + op: "Enter" + input: "capsule_layer_2/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2/map/while/TensorArrayReadV3" + op: "TensorArrayReadV3" + input: "capsule_layer_2/map/while/TensorArrayReadV3/Enter" + input: "capsule_layer_2/map/while/Identity" + input: "capsule_layer_2/map/while/TensorArrayReadV3/Enter_1" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } +} +node { + name: "capsule_layer_2/map/while/Shape" + op: "Const" + input: "^capsule_layer_2/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\010\000\000\000\n\000\000\000\200\004\000\000" + } + } + } +} +node { + name: "capsule_layer_2/map/while/concat/values_1" + op: "Const" + input: "^capsule_layer_2/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/while/concat/axis" + op: "Const" + input: "^capsule_layer_2/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/map/while/concat" + op: "ConcatV2" + input: "capsule_layer_2/map/while/Shape" + input: "capsule_layer_2/map/while/concat/values_1" + input: "capsule_layer_2/map/while/concat/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Reshape" + op: "Reshape" + input: "capsule_layer_2/map/while/TensorArrayReadV3" + input: "capsule_layer_2/map/while/concat" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/MatMul/Enter" + op: "Enter" + input: "capsule_layer_2/W/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2/map/while/MatMul" + op: "BatchMatMul" + input: "capsule_layer_2/map/while/Reshape" + input: "capsule_layer_2/map/while/MatMul/Enter" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "adj_x" + value { + b: true + } + } + attr { + key: "adj_y" + value { + b: false + } + } +} +node { + name: "capsule_layer_2/map/while/Squeeze" + op: "Squeeze" + input: "capsule_layer_2/map/while/MatMul" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "squeeze_dims" + value { + list { + i: 2 + } + } + } +} +node { + name: "capsule_layer_2/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter" + op: "Enter" + input: "capsule_layer_2/map/TensorArray_1" + attr { + key: "T" + value { + type: DT_RESOURCE + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/while/Squeeze" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2/map/while/TensorArrayWrite/TensorArrayWriteV3" + op: "TensorArrayWriteV3" + input: "capsule_layer_2/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter" + input: "capsule_layer_2/map/while/Identity" + input: "capsule_layer_2/map/while/Squeeze" + input: "capsule_layer_2/map/while/Identity_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/while/Squeeze" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/add/y" + op: "Const" + input: "^capsule_layer_2/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/while/add" + op: "Add" + input: "capsule_layer_2/map/while/Identity" + input: "capsule_layer_2/map/while/add/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/NextIteration" + op: "NextIteration" + input: "capsule_layer_2/map/while/add" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/NextIteration_1" + op: "NextIteration" + input: "capsule_layer_2/map/while/TensorArrayWrite/TensorArrayWriteV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Exit" + op: "Exit" + input: "capsule_layer_2/map/while/Switch" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/while/Exit_1" + op: "Exit" + input: "capsule_layer_2/map/while/Switch_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayStack/TensorArraySizeV3" + op: "TensorArraySizeV3" + input: "capsule_layer_2/map/TensorArray_1" + input: "capsule_layer_2/map/while/Exit_1" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayStack/range/start" + op: "Const" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayStack/range/delta" + op: "Const" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayStack/range" + op: "Range" + input: "capsule_layer_2/map/TensorArrayStack/range/start" + input: "capsule_layer_2/map/TensorArrayStack/TensorArraySizeV3" + input: "capsule_layer_2/map/TensorArrayStack/range/delta" + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/map/TensorArrayStack/TensorArrayGatherV3" + op: "TensorArrayGatherV3" + input: "capsule_layer_2/map/TensorArray_1" + input: "capsule_layer_2/map/TensorArrayStack/range" + input: "capsule_layer_2/map/while/Exit_1" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "element_shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } +} +node { + name: "capsule_layer_2/Shape" + op: "Shape" + input: "capsule_layer_2/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2/ExpandDims_1/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_1" + op: "ExpandDims" + input: "capsule_layer_2/b/read" + input: "capsule_layer_2/ExpandDims_1/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_2/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_2" + op: "ExpandDims" + input: "capsule_layer_2/c/read" + input: "capsule_layer_2/ExpandDims_2/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Shape_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\001\000\000\000\010\000\000\000\n\000\000\000" + } + } + } +} +node { + name: "capsule_layer_2/Rank" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2/Shape_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\001\000\000\000\010\000\000\000\n\000\000\000" + } + } + } +} +node { + name: "capsule_layer_2/Sub/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Sub" + op: "Sub" + input: "capsule_layer_2/Rank" + input: "capsule_layer_2/Sub/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/Slice/begin" + op: "Pack" + input: "capsule_layer_2/Sub" + attr { + key: "N" + value { + i: 1 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2/Slice/size" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Slice" + op: "Slice" + input: "capsule_layer_2/Shape_2" + input: "capsule_layer_2/Slice/begin" + input: "capsule_layer_2/Slice/size" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/concat_1/values_0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/concat_1/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/concat_1" + op: "ConcatV2" + input: "capsule_layer_2/concat_1/values_0" + input: "capsule_layer_2/Slice" + input: "capsule_layer_2/concat_1/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Reshape" + op: "Reshape" + input: "capsule_layer_2/ExpandDims_1" + input: "capsule_layer_2/concat_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Softmax" + op: "Softmax" + input: "capsule_layer_2/Reshape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Reshape_1" + op: "Reshape" + input: "capsule_layer_2/Softmax" + input: "capsule_layer_2/Shape_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_3/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_3" + op: "ExpandDims" + input: "capsule_layer_2/Reshape_1" + input: "capsule_layer_2/ExpandDims_3/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_3" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/split_1/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/split_1" + op: "Split" + input: "capsule_layer_2/split_1/split_dim" + input: "capsule_layer_2/ExpandDims_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/concat_2/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2/concat_2" + op: "ConcatV2" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/split_1" + input: "capsule_layer_2/concat_2/axis" + attr { + key: "N" + value { + i: 16 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul" + op: "Mul" + input: "capsule_layer_2/concat_2" + input: "capsule_layer_2/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Sum" + op: "Sum" + input: "capsule_layer_2/mul" + input: "capsule_layer_2/Sum/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2/Square" + op: "Square" + input: "capsule_layer_2/Sum" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum_1/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/Sum_1" + op: "Sum" + input: "capsule_layer_2/Square" + input: "capsule_layer_2/Sum_1/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "capsule_layer_2/add/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2/add" + op: "Add" + input: "capsule_layer_2/add/x" + input: "capsule_layer_2/Sum_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/div" + op: "RealDiv" + input: "capsule_layer_2/Sum_1" + input: "capsule_layer_2/add" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/add_1/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "capsule_layer_2/add_1" + op: "Add" + input: "capsule_layer_2/Sum_1" + input: "capsule_layer_2/add_1/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_4" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2/Const_5" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "capsule_layer_2/clip_by_value/Minimum" + op: "Minimum" + input: "capsule_layer_2/add_1" + input: "capsule_layer_2/Const_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/clip_by_value" + op: "Maximum" + input: "capsule_layer_2/clip_by_value/Minimum" + input: "capsule_layer_2/Const_4" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sqrt" + op: "Sqrt" + input: "capsule_layer_2/clip_by_value" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/div_1" + op: "RealDiv" + input: "capsule_layer_2/div" + input: "capsule_layer_2/Sqrt" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul_1" + op: "Mul" + input: "capsule_layer_2/div_1" + input: "capsule_layer_2/Sum" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_4/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_4" + op: "ExpandDims" + input: "capsule_layer_2/mul_1" + input: "capsule_layer_2/ExpandDims_4/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/strided_slice" + op: "StridedSlice" + input: "capsule_layer_2/Shape" + input: "capsule_layer_2/strided_slice/stack" + input: "capsule_layer_2/strided_slice/stack_1" + input: "capsule_layer_2/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/Tile/multiples/0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Tile/multiples/2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Tile/multiples/3" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Tile/multiples" + op: "Pack" + input: "capsule_layer_2/Tile/multiples/0" + input: "capsule_layer_2/strided_slice" + input: "capsule_layer_2/Tile/multiples/2" + input: "capsule_layer_2/Tile/multiples/3" + attr { + key: "N" + value { + i: 4 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2/Tile" + op: "Tile" + input: "capsule_layer_2/ExpandDims_4" + input: "capsule_layer_2/Tile/multiples" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tmultiples" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul_2" + op: "Mul" + input: "capsule_layer_2/map/TensorArrayStack/TensorArrayGatherV3" + input: "capsule_layer_2/Tile" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum_2/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/Sum_2" + op: "Sum" + input: "capsule_layer_2/mul_2" + input: "capsule_layer_2/Sum_2/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2/add_2" + op: "Add" + input: "capsule_layer_2/ExpandDims_1" + input: "capsule_layer_2/Sum_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Shape_3" + op: "Shape" + input: "capsule_layer_2/add_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2/Rank_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2/Shape_4" + op: "Shape" + input: "capsule_layer_2/add_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2/Sub_1/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Sub_1" + op: "Sub" + input: "capsule_layer_2/Rank_1" + input: "capsule_layer_2/Sub_1/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/Slice_1/begin" + op: "Pack" + input: "capsule_layer_2/Sub_1" + attr { + key: "N" + value { + i: 1 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2/Slice_1/size" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Slice_1" + op: "Slice" + input: "capsule_layer_2/Shape_4" + input: "capsule_layer_2/Slice_1/begin" + input: "capsule_layer_2/Slice_1/size" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/concat_3/values_0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/concat_3/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/concat_3" + op: "ConcatV2" + input: "capsule_layer_2/concat_3/values_0" + input: "capsule_layer_2/Slice_1" + input: "capsule_layer_2/concat_3/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Reshape_2" + op: "Reshape" + input: "capsule_layer_2/add_2" + input: "capsule_layer_2/concat_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Softmax_1" + op: "Softmax" + input: "capsule_layer_2/Reshape_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Reshape_3" + op: "Reshape" + input: "capsule_layer_2/Softmax_1" + input: "capsule_layer_2/Shape_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_5/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_5" + op: "ExpandDims" + input: "capsule_layer_2/Reshape_3" + input: "capsule_layer_2/ExpandDims_5/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_6" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/split_2/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/split_2" + op: "Split" + input: "capsule_layer_2/split_2/split_dim" + input: "capsule_layer_2/ExpandDims_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/concat_4/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2/concat_4" + op: "ConcatV2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/split_2" + input: "capsule_layer_2/concat_4/axis" + attr { + key: "N" + value { + i: 16 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul_3" + op: "Mul" + input: "capsule_layer_2/concat_4" + input: "capsule_layer_2/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum_3/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Sum_3" + op: "Sum" + input: "capsule_layer_2/mul_3" + input: "capsule_layer_2/Sum_3/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2/Square_1" + op: "Square" + input: "capsule_layer_2/Sum_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum_4/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/Sum_4" + op: "Sum" + input: "capsule_layer_2/Square_1" + input: "capsule_layer_2/Sum_4/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "capsule_layer_2/add_3/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2/add_3" + op: "Add" + input: "capsule_layer_2/add_3/x" + input: "capsule_layer_2/Sum_4" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/div_2" + op: "RealDiv" + input: "capsule_layer_2/Sum_4" + input: "capsule_layer_2/add_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/add_4/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "capsule_layer_2/add_4" + op: "Add" + input: "capsule_layer_2/Sum_4" + input: "capsule_layer_2/add_4/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_7" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2/Const_8" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "capsule_layer_2/clip_by_value_1/Minimum" + op: "Minimum" + input: "capsule_layer_2/add_4" + input: "capsule_layer_2/Const_8" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/clip_by_value_1" + op: "Maximum" + input: "capsule_layer_2/clip_by_value_1/Minimum" + input: "capsule_layer_2/Const_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sqrt_1" + op: "Sqrt" + input: "capsule_layer_2/clip_by_value_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/div_3" + op: "RealDiv" + input: "capsule_layer_2/div_2" + input: "capsule_layer_2/Sqrt_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul_4" + op: "Mul" + input: "capsule_layer_2/div_3" + input: "capsule_layer_2/Sum_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_6/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_6" + op: "ExpandDims" + input: "capsule_layer_2/mul_4" + input: "capsule_layer_2/ExpandDims_6/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/strided_slice_1/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/strided_slice_1/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2/strided_slice_1/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/strided_slice_1" + op: "StridedSlice" + input: "capsule_layer_2/Shape" + input: "capsule_layer_2/strided_slice_1/stack" + input: "capsule_layer_2/strided_slice_1/stack_1" + input: "capsule_layer_2/strided_slice_1/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/Tile_1/multiples/0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Tile_1/multiples/2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Tile_1/multiples/3" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Tile_1/multiples" + op: "Pack" + input: "capsule_layer_2/Tile_1/multiples/0" + input: "capsule_layer_2/strided_slice_1" + input: "capsule_layer_2/Tile_1/multiples/2" + input: "capsule_layer_2/Tile_1/multiples/3" + attr { + key: "N" + value { + i: 4 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2/Tile_1" + op: "Tile" + input: "capsule_layer_2/ExpandDims_6" + input: "capsule_layer_2/Tile_1/multiples" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tmultiples" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul_5" + op: "Mul" + input: "capsule_layer_2/map/TensorArrayStack/TensorArrayGatherV3" + input: "capsule_layer_2/Tile_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum_5/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/Sum_5" + op: "Sum" + input: "capsule_layer_2/mul_5" + input: "capsule_layer_2/Sum_5/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2/add_5" + op: "Add" + input: "capsule_layer_2/add_2" + input: "capsule_layer_2/Sum_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Shape_5" + op: "Shape" + input: "capsule_layer_2/add_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2/Rank_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2/Shape_6" + op: "Shape" + input: "capsule_layer_2/add_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2/Sub_2/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Sub_2" + op: "Sub" + input: "capsule_layer_2/Rank_2" + input: "capsule_layer_2/Sub_2/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2/Slice_2/begin" + op: "Pack" + input: "capsule_layer_2/Sub_2" + attr { + key: "N" + value { + i: 1 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2/Slice_2/size" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Slice_2" + op: "Slice" + input: "capsule_layer_2/Shape_6" + input: "capsule_layer_2/Slice_2/begin" + input: "capsule_layer_2/Slice_2/size" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/concat_5/values_0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/concat_5/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2/concat_5" + op: "ConcatV2" + input: "capsule_layer_2/concat_5/values_0" + input: "capsule_layer_2/Slice_2" + input: "capsule_layer_2/concat_5/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Reshape_4" + op: "Reshape" + input: "capsule_layer_2/add_5" + input: "capsule_layer_2/concat_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Softmax_2" + op: "Softmax" + input: "capsule_layer_2/Reshape_4" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Reshape_5" + op: "Reshape" + input: "capsule_layer_2/Softmax_2" + input: "capsule_layer_2/Shape_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_7/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/ExpandDims_7" + op: "ExpandDims" + input: "capsule_layer_2/Reshape_5" + input: "capsule_layer_2/ExpandDims_7/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_9" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/split_3/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/split_3" + op: "Split" + input: "capsule_layer_2/split_3/split_dim" + input: "capsule_layer_2/ExpandDims_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2/concat_6/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2/concat_6" + op: "ConcatV2" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/split_3" + input: "capsule_layer_2/concat_6/axis" + attr { + key: "N" + value { + i: 16 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul_6" + op: "Mul" + input: "capsule_layer_2/concat_6" + input: "capsule_layer_2/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum_6/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2/Sum_6" + op: "Sum" + input: "capsule_layer_2/mul_6" + input: "capsule_layer_2/Sum_6/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2/Square_2" + op: "Square" + input: "capsule_layer_2/Sum_6" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sum_7/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2/Sum_7" + op: "Sum" + input: "capsule_layer_2/Square_2" + input: "capsule_layer_2/Sum_7/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "capsule_layer_2/add_6/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2/add_6" + op: "Add" + input: "capsule_layer_2/add_6/x" + input: "capsule_layer_2/Sum_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/div_4" + op: "RealDiv" + input: "capsule_layer_2/Sum_7" + input: "capsule_layer_2/add_6" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/add_7/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "capsule_layer_2/add_7" + op: "Add" + input: "capsule_layer_2/Sum_7" + input: "capsule_layer_2/add_7/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Const_10" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2/Const_11" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "capsule_layer_2/clip_by_value_2/Minimum" + op: "Minimum" + input: "capsule_layer_2/add_7" + input: "capsule_layer_2/Const_11" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/clip_by_value_2" + op: "Maximum" + input: "capsule_layer_2/clip_by_value_2/Minimum" + input: "capsule_layer_2/Const_10" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/Sqrt_2" + op: "Sqrt" + input: "capsule_layer_2/clip_by_value_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/div_5" + op: "RealDiv" + input: "capsule_layer_2/div_4" + input: "capsule_layer_2/Sqrt_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2/mul_7" + op: "Mul" + input: "capsule_layer_2/div_5" + input: "capsule_layer_2/Sum_6" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "length_1/Square" + op: "Square" + input: "capsule_layer_2/mul_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "length_1/Sum/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "length_1/Sum" + op: "Sum" + input: "length_1/Square" + input: "length_1/Sum/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "length_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "length_1/Const_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "length_1/clip_by_value/Minimum" + op: "Minimum" + input: "length_1/Sum" + input: "length_1/Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "length_1/clip_by_value" + op: "Maximum" + input: "length_1/clip_by_value/Minimum" + input: "length_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "length_1/Sqrt" + op: "Sqrt" + input: "length_1/clip_by_value" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "mask_capsule_1/ExpandDims/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "mask_capsule_1/ExpandDims" + op: "ExpandDims" + input: "input_1" + input: "mask_capsule_1/ExpandDims/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "mask_capsule_1/mul" + op: "Mul" + input: "capsule_layer_2/mul_7" + input: "mask_capsule_1/ExpandDims" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "mask_capsule_1/Shape" + op: "Shape" + input: "mask_capsule_1/mul" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "mask_capsule_1/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "mask_capsule_1/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "mask_capsule_1/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "mask_capsule_1/strided_slice" + op: "StridedSlice" + input: "mask_capsule_1/Shape" + input: "mask_capsule_1/strided_slice/stack" + input: "mask_capsule_1/strided_slice/stack_1" + input: "mask_capsule_1/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 1 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 0 + } + } +} +node { + name: "mask_capsule_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "mask_capsule_1/Prod" + op: "Prod" + input: "mask_capsule_1/strided_slice" + input: "mask_capsule_1/Const" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "mask_capsule_1/stack/0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "mask_capsule_1/stack" + op: "Pack" + input: "mask_capsule_1/stack/0" + input: "mask_capsule_1/Prod" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "mask_capsule_1/Reshape" + op: "Reshape" + input: "mask_capsule_1/mul" + input: "mask_capsule_1/stack" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "dense_1/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\240\000\000\000\000\002\000\000" + } + } + } +} +node { + name: "dense_1/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_1/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0790569409728 + } + } + } +} +node { + name: "dense_1/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "dense_1/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 1435693 + } + } +} +node { + name: "dense_1/truncated_normal/mul" + op: "Mul" + input: "dense_1/truncated_normal/TruncatedNormal" + input: "dense_1/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1/truncated_normal" + op: "Add" + input: "dense_1/truncated_normal/mul" + input: "dense_1/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_1/kernel/Assign" + op: "Assign" + input: "dense_1/kernel" + input: "dense_1/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_1/kernel/read" + op: "Identity" + input: "dense_1/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 512 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_1/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 512 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_1/bias/Assign" + op: "Assign" + input: "dense_1/bias" + input: "dense_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_1/bias/read" + op: "Identity" + input: "dense_1/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1/MatMul" + op: "MatMul" + input: "mask_capsule_1/Reshape" + input: "dense_1/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "transpose_a" + value { + b: false + } + } + attr { + key: "transpose_b" + value { + b: false + } + } +} +node { + name: "dense_1/BiasAdd" + op: "BiasAdd" + input: "dense_1/MatMul" + input: "dense_1/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_2/Relu" + op: "Relu" + input: "dense_1/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_2/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\000\002\000\000\000\004\000\000" + } + } + } +} +node { + name: "dense_2/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_2/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0441941730678 + } + } + } +} +node { + name: "dense_2/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "dense_2/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 9637120 + } + } +} +node { + name: "dense_2/truncated_normal/mul" + op: "Mul" + input: "dense_2/truncated_normal/TruncatedNormal" + input: "dense_2/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2/truncated_normal" + op: "Add" + input: "dense_2/truncated_normal/mul" + input: "dense_2/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_2/kernel/Assign" + op: "Assign" + input: "dense_2/kernel" + input: "dense_2/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_2/kernel/read" + op: "Identity" + input: "dense_2/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1024 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_2/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1024 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_2/bias/Assign" + op: "Assign" + input: "dense_2/bias" + input: "dense_2/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_2/bias/read" + op: "Identity" + input: "dense_2/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2/MatMul" + op: "MatMul" + input: "activation_2/Relu" + input: "dense_2/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "transpose_a" + value { + b: false + } + } + attr { + key: "transpose_b" + value { + b: false + } + } +} +node { + name: "dense_2/BiasAdd" + op: "BiasAdd" + input: "dense_2/MatMul" + input: "dense_2/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_3/Relu" + op: "Relu" + input: "dense_2/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_3/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\000\004\000\000\020\003\000\000" + } + } + } +} +node { + name: "dense_3/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_3/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.03125 + } + } + } +} +node { + name: "dense_3/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "dense_3/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 2283979 + } + } +} +node { + name: "dense_3/truncated_normal/mul" + op: "Mul" + input: "dense_3/truncated_normal/TruncatedNormal" + input: "dense_3/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3/truncated_normal" + op: "Add" + input: "dense_3/truncated_normal/mul" + input: "dense_3/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_3/kernel/Assign" + op: "Assign" + input: "dense_3/kernel" + input: "dense_3/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_3/kernel/read" + op: "Identity" + input: "dense_3/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 784 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_3/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 784 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_3/bias/Assign" + op: "Assign" + input: "dense_3/bias" + input: "dense_3/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_3/bias/read" + op: "Identity" + input: "dense_3/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3/MatMul" + op: "MatMul" + input: "activation_3/Relu" + input: "dense_3/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "transpose_a" + value { + b: false + } + } + attr { + key: "transpose_b" + value { + b: false + } + } +} +node { + name: "dense_3/BiasAdd" + op: "BiasAdd" + input: "dense_3/MatMul" + input: "dense_3/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_4/Sigmoid" + op: "Sigmoid" + input: "dense_3/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "reshape_2/Reshape/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + 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\377\034\000\000\000\001\000\000\000\034\000\000\000" + } + } + } +} +node { + name: "reshape_2/Reshape" + op: "Reshape" + input: "activation_4/Sigmoid" + input: "reshape_2/Reshape/shape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 28 + } + dim { + size: 1 + } + dim { + size: 28 + } + } + } + } + } +} +node { + name: "input_2_1" + op: "Placeholder" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 28 + } + dim { + size: 28 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: -1 + } + dim { + size: 28 + } + dim { + size: 28 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "input_1_1" + op: "Placeholder" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } +} +node { + name: "conv2d_1_1/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + tensor_content: "\t\000\000\000\t\000\000\000\001\000\000\000\000\001\000\000" + } + } + } +} +node { + name: "conv2d_1_1/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_1_1/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.111111111939 + } + } + } +} +node { + name: "conv2d_1_1/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "conv2d_1_1/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 1659099 + } + } +} +node { + name: "conv2d_1_1/truncated_normal/mul" + op: "Mul" + input: "conv2d_1_1/truncated_normal/TruncatedNormal" + input: "conv2d_1_1/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1_1/truncated_normal" + op: "Add" + input: "conv2d_1_1/truncated_normal/mul" + input: "conv2d_1_1/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1_1/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_1_1/kernel/Assign" + op: "Assign" + input: "conv2d_1_1/kernel" + input: "conv2d_1_1/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_1_1/kernel/read" + op: "Identity" + input: "conv2d_1_1/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 1 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 256 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_1_1/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_1_1/bias/Assign" + op: "Assign" + input: "conv2d_1_1/bias" + input: "conv2d_1_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_1_1/bias/read" + op: "Identity" + input: "conv2d_1_1/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_1_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_1_1/convolution/dilation_rate" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\001\000\000\000\001\000\000\000" + } + } + } +} +node { + name: "conv2d_1_1/convolution" + op: "Conv2D" + input: "input_2_1" + input: "conv2d_1_1/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 20 + } + dim { + size: 20 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "use_cudnn_on_gpu" + value { + b: true + } + } +} +node { + name: "conv2d_1_1/BiasAdd" + op: "BiasAdd" + input: "conv2d_1_1/convolution" + input: "conv2d_1_1/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 20 + } + dim { + size: 20 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_1_1/Relu" + op: "Relu" + input: "conv2d_1_1/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 20 + } + dim { + size: 20 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2_1/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + tensor_content: "\t\000\000\000\t\000\000\000\000\001\000\000\000\001\000\000" + } + } + } +} +node { + name: "conv2d_2_1/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_2_1/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.00694444449618 + } + } + } +} +node { + name: "conv2d_2_1/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "conv2d_2_1/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 4761021 + } + } +} +node { + name: "conv2d_2_1/truncated_normal/mul" + op: "Mul" + input: "conv2d_2_1/truncated_normal/TruncatedNormal" + input: "conv2d_2_1/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2_1/truncated_normal" + op: "Add" + input: "conv2d_2_1/truncated_normal/mul" + input: "conv2d_2_1/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2_1/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_2_1/kernel/Assign" + op: "Assign" + input: "conv2d_2_1/kernel" + input: "conv2d_2_1/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_2_1/kernel/read" + op: "Identity" + input: "conv2d_2_1/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 256 + } + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 256 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "conv2d_2_1/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 256 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "conv2d_2_1/bias/Assign" + op: "Assign" + input: "conv2d_2_1/bias" + input: "conv2d_2_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "conv2d_2_1/bias/read" + op: "Identity" + input: "conv2d_2_1/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@conv2d_2_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 256 + } + } + } + } + } +} +node { + name: "conv2d_2_1/convolution/dilation_rate" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\001\000\000\000\001\000\000\000" + } + } + } +} +node { + name: "conv2d_2_1/convolution" + op: "Conv2D" + input: "activation_1_1/Relu" + input: "conv2d_2_1/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 6 + } + dim { + size: 6 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } + attr { + key: "use_cudnn_on_gpu" + value { + b: true + } + } +} +node { + name: "conv2d_2_1/BiasAdd" + op: "BiasAdd" + input: "conv2d_2_1/convolution" + input: "conv2d_2_1/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 6 + } + dim { + size: 6 + } + dim { + size: 256 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "reshape_1_1/Reshape/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\377\377\377\377\010\000\000\000\200\004\000\000" + } + } + } +} +node { + name: "reshape_1_1/Reshape" + op: "Reshape" + input: "conv2d_2_1/BiasAdd" + input: "reshape_1_1/Reshape/shape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "squash_1_1/Square" + op: "Square" + input: "reshape_1_1/Reshape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "squash_1_1/Sum/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "squash_1_1/Sum" + op: "Sum" + input: "squash_1_1/Square" + input: "squash_1_1/Sum/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "squash_1_1/add/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "squash_1_1/add" + op: "Add" + input: "squash_1_1/add/x" + input: "squash_1_1/Sum" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1_1/div" + op: "RealDiv" + input: "squash_1_1/Sum" + input: "squash_1_1/add" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1_1/add_1/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "squash_1_1/add_1" + op: "Add" + input: "squash_1_1/Sum" + input: "squash_1_1/add_1/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "squash_1_1/Const_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "squash_1_1/clip_by_value/Minimum" + op: "Minimum" + input: "squash_1_1/add_1" + input: "squash_1_1/Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1_1/clip_by_value" + op: "Maximum" + input: "squash_1_1/clip_by_value/Minimum" + input: "squash_1_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1_1/Sqrt" + op: "Sqrt" + input: "squash_1_1/clip_by_value" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1_1/div_1" + op: "RealDiv" + input: "squash_1_1/div" + input: "squash_1_1/Sqrt" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "squash_1_1/mul" + op: "Mul" + input: "squash_1_1/div_1" + input: "reshape_1_1/Reshape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/random_uniform/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + tensor_content: "\010\000\000\000\n\000\000\000\200\004\000\000\020\000\000\000" + } + } + } +} +node { + name: "capsule_layer_2_1/random_uniform/min" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: -1.0 + } + } + } +} +node { + name: "capsule_layer_2_1/random_uniform/max" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2_1/random_uniform/RandomUniform" + op: "RandomUniform" + input: "capsule_layer_2_1/random_uniform/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 554449 + } + } +} +node { + name: "capsule_layer_2_1/random_uniform/sub" + op: "Sub" + input: "capsule_layer_2_1/random_uniform/max" + input: "capsule_layer_2_1/random_uniform/min" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/random_uniform/mul" + op: "Mul" + input: "capsule_layer_2_1/random_uniform/RandomUniform" + input: "capsule_layer_2_1/random_uniform/sub" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/random_uniform" + op: "Add" + input: "capsule_layer_2_1/random_uniform/mul" + input: "capsule_layer_2_1/random_uniform/min" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/W" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2_1/W/Assign" + op: "Assign" + input: "capsule_layer_2_1/W" + input: "capsule_layer_2_1/random_uniform" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/W" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "capsule_layer_2_1/W/read" + op: "Identity" + input: "capsule_layer_2_1/W" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/W" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2_1/b" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2_1/b/Assign" + op: "Assign" + input: "capsule_layer_2_1/b" + input: "capsule_layer_2_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/b" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "capsule_layer_2_1/b/read" + op: "Identity" + input: "capsule_layer_2_1/b" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/b" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2_1/c" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2_1/c/Assign" + op: "Assign" + input: "capsule_layer_2_1/c" + input: "capsule_layer_2_1/Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/c" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "capsule_layer_2_1/c/read" + op: "Identity" + input: "capsule_layer_2_1/c" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/c" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims" + op: "ExpandDims" + input: "squash_1_1/mul" + input: "capsule_layer_2_1/ExpandDims/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/split/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2_1/split" + op: "Split" + input: "capsule_layer_2_1/split/split_dim" + input: "capsule_layer_2_1/ExpandDims" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 1 + } + dim { + size: 1152 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/concat/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2_1/concat" + op: "ConcatV2" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/split" + input: "capsule_layer_2_1/concat/axis" + attr { + key: "N" + value { + i: 10 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/Shape" + op: "Shape" + input: "capsule_layer_2_1/concat" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2_1/map/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/map/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/strided_slice" + op: "StridedSlice" + input: "capsule_layer_2_1/map/Shape" + input: "capsule_layer_2_1/map/strided_slice/stack" + input: "capsule_layer_2_1/map/strided_slice/stack_1" + input: "capsule_layer_2_1/map/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArray" + op: "TensorArrayV3" + input: "capsule_layer_2_1/map/strided_slice" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + shape { + } + } + } + } + attr { + key: "clear_after_read" + value { + b: true + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "dynamic_size" + value { + b: false + } + } + attr { + key: "element_shape" + value { + shape { + unknown_rank: true + } + } + } + attr { + key: "tensor_array_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/Shape" + op: "Shape" + input: "capsule_layer_2_1/concat" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice" + op: "StridedSlice" + input: "capsule_layer_2_1/map/TensorArrayUnstack/Shape" + input: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice/stack" + input: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice/stack_1" + input: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/range/start" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/range/delta" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/range" + op: "Range" + input: "capsule_layer_2_1/map/TensorArrayUnstack/range/start" + input: "capsule_layer_2_1/map/TensorArrayUnstack/strided_slice" + input: "capsule_layer_2_1/map/TensorArrayUnstack/range/delta" + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3" + op: "TensorArrayScatterV3" + input: "capsule_layer_2_1/map/TensorArray" + input: "capsule_layer_2_1/map/TensorArrayUnstack/range" + input: "capsule_layer_2_1/concat" + input: "capsule_layer_2_1/map/TensorArray:1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/concat" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArray_1" + op: "TensorArrayV3" + input: "capsule_layer_2_1/map/strided_slice" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + shape { + } + } + } + } + attr { + key: "clear_after_read" + value { + b: true + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "dynamic_size" + value { + b: false + } + } + attr { + key: "element_shape" + value { + shape { + unknown_rank: true + } + } + } + attr { + key: "tensor_array_name" + value { + s: "" + } + } +} +node { + name: "capsule_layer_2_1/map/while/Enter" + op: "Enter" + input: "capsule_layer_2_1/map/Const" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2_1/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: false + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2_1/map/while/Enter_1" + op: "Enter" + input: "capsule_layer_2_1/map/TensorArray_1:1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2_1/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: false + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2_1/map/while/Merge" + op: "Merge" + input: "capsule_layer_2_1/map/while/Enter" + input: "capsule_layer_2_1/map/while/NextIteration" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Merge_1" + op: "Merge" + input: "capsule_layer_2_1/map/while/Enter_1" + input: "capsule_layer_2_1/map/while/NextIteration_1" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Less/Enter" + op: "Enter" + input: "capsule_layer_2_1/map/strided_slice" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2_1/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2_1/map/while/Less" + op: "Less" + input: "capsule_layer_2_1/map/while/Merge" + input: "capsule_layer_2_1/map/while/Less/Enter" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/LoopCond" + op: "LoopCond" + input: "capsule_layer_2_1/map/while/Less" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Switch" + op: "Switch" + input: "capsule_layer_2_1/map/while/Merge" + input: "capsule_layer_2_1/map/while/LoopCond" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/while/Merge" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Switch_1" + op: "Switch" + input: "capsule_layer_2_1/map/while/Merge_1" + input: "capsule_layer_2_1/map/while/LoopCond" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/while/Merge_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Identity" + op: "Identity" + input: "capsule_layer_2_1/map/while/Switch:1" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Identity_1" + op: "Identity" + input: "capsule_layer_2_1/map/while/Switch_1:1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/TensorArrayReadV3/Enter" + op: "Enter" + input: "capsule_layer_2_1/map/TensorArray" + attr { + key: "T" + value { + type: DT_RESOURCE + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2_1/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2_1/map/while/TensorArrayReadV3/Enter_1" + op: "Enter" + input: "capsule_layer_2_1/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2_1/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2_1/map/while/TensorArrayReadV3" + op: "TensorArrayReadV3" + input: "capsule_layer_2_1/map/while/TensorArrayReadV3/Enter" + input: "capsule_layer_2_1/map/while/Identity" + input: "capsule_layer_2_1/map/while/TensorArrayReadV3/Enter_1" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } +} +node { + name: "capsule_layer_2_1/map/while/Shape" + op: "Const" + input: "^capsule_layer_2_1/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\010\000\000\000\n\000\000\000\200\004\000\000" + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/concat/values_1" + op: "Const" + input: "^capsule_layer_2_1/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/concat/axis" + op: "Const" + input: "^capsule_layer_2_1/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/concat" + op: "ConcatV2" + input: "capsule_layer_2_1/map/while/Shape" + input: "capsule_layer_2_1/map/while/concat/values_1" + input: "capsule_layer_2_1/map/while/concat/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Reshape" + op: "Reshape" + input: "capsule_layer_2_1/map/while/TensorArrayReadV3" + input: "capsule_layer_2_1/map/while/concat" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/MatMul/Enter" + op: "Enter" + input: "capsule_layer_2_1/W/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1152 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2_1/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2_1/map/while/MatMul" + op: "BatchMatMul" + input: "capsule_layer_2_1/map/while/Reshape" + input: "capsule_layer_2_1/map/while/MatMul/Enter" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "adj_x" + value { + b: true + } + } + attr { + key: "adj_y" + value { + b: false + } + } +} +node { + name: "capsule_layer_2_1/map/while/Squeeze" + op: "Squeeze" + input: "capsule_layer_2_1/map/while/MatMul" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "squeeze_dims" + value { + list { + i: 2 + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter" + op: "Enter" + input: "capsule_layer_2_1/map/TensorArray_1" + attr { + key: "T" + value { + type: DT_RESOURCE + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/while/Squeeze" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "frame_name" + value { + s: "capsule_layer_2_1/map/while/while_context" + } + } + attr { + key: "is_constant" + value { + b: true + } + } + attr { + key: "parallel_iterations" + value { + i: 10 + } + } +} +node { + name: "capsule_layer_2_1/map/while/TensorArrayWrite/TensorArrayWriteV3" + op: "TensorArrayWriteV3" + input: "capsule_layer_2_1/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter" + input: "capsule_layer_2_1/map/while/Identity" + input: "capsule_layer_2_1/map/while/Squeeze" + input: "capsule_layer_2_1/map/while/Identity_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/while/Squeeze" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/add/y" + op: "Const" + input: "^capsule_layer_2_1/map/while/Identity" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/add" + op: "Add" + input: "capsule_layer_2_1/map/while/Identity" + input: "capsule_layer_2_1/map/while/add/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/NextIteration" + op: "NextIteration" + input: "capsule_layer_2_1/map/while/add" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/NextIteration_1" + op: "NextIteration" + input: "capsule_layer_2_1/map/while/TensorArrayWrite/TensorArrayWriteV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Exit" + op: "Exit" + input: "capsule_layer_2_1/map/while/Switch" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/while/Exit_1" + op: "Exit" + input: "capsule_layer_2_1/map/while/Switch_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayStack/TensorArraySizeV3" + op: "TensorArraySizeV3" + input: "capsule_layer_2_1/map/TensorArray_1" + input: "capsule_layer_2_1/map/while/Exit_1" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayStack/range/start" + op: "Const" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayStack/range/delta" + op: "Const" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayStack/range" + op: "Range" + input: "capsule_layer_2_1/map/TensorArrayStack/range/start" + input: "capsule_layer_2_1/map/TensorArrayStack/TensorArraySizeV3" + input: "capsule_layer_2_1/map/TensorArrayStack/range/delta" + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/map/TensorArrayStack/TensorArrayGatherV3" + op: "TensorArrayGatherV3" + input: "capsule_layer_2_1/map/TensorArray_1" + input: "capsule_layer_2_1/map/TensorArrayStack/range" + input: "capsule_layer_2_1/map/while/Exit_1" + attr { + key: "_class" + value { + list { + s: "loc:@capsule_layer_2_1/map/TensorArray_1" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "element_shape" + value { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } +} +node { + name: "capsule_layer_2_1/Shape" + op: "Shape" + input: "capsule_layer_2_1/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_1/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_1" + op: "ExpandDims" + input: "capsule_layer_2_1/b/read" + input: "capsule_layer_2_1/ExpandDims_1/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_2/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_2" + op: "ExpandDims" + input: "capsule_layer_2_1/c/read" + input: "capsule_layer_2_1/ExpandDims_2/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Shape_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\001\000\000\000\010\000\000\000\n\000\000\000" + } + } + } +} +node { + name: "capsule_layer_2_1/Rank" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2_1/Shape_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 3 + } + } + tensor_content: "\001\000\000\000\010\000\000\000\n\000\000\000" + } + } + } +} +node { + name: "capsule_layer_2_1/Sub/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sub" + op: "Sub" + input: "capsule_layer_2_1/Rank" + input: "capsule_layer_2_1/Sub/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/Slice/begin" + op: "Pack" + input: "capsule_layer_2_1/Sub" + attr { + key: "N" + value { + i: 1 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2_1/Slice/size" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Slice" + op: "Slice" + input: "capsule_layer_2_1/Shape_2" + input: "capsule_layer_2_1/Slice/begin" + input: "capsule_layer_2_1/Slice/size" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/concat_1/values_0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_1/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_1" + op: "ConcatV2" + input: "capsule_layer_2_1/concat_1/values_0" + input: "capsule_layer_2_1/Slice" + input: "capsule_layer_2_1/concat_1/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Reshape" + op: "Reshape" + input: "capsule_layer_2_1/ExpandDims_1" + input: "capsule_layer_2_1/concat_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Softmax" + op: "Softmax" + input: "capsule_layer_2_1/Reshape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Reshape_1" + op: "Reshape" + input: "capsule_layer_2_1/Softmax" + input: "capsule_layer_2_1/Shape_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_3/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_3" + op: "ExpandDims" + input: "capsule_layer_2_1/Reshape_1" + input: "capsule_layer_2_1/ExpandDims_3/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_3" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/split_1/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/split_1" + op: "Split" + input: "capsule_layer_2_1/split_1/split_dim" + input: "capsule_layer_2_1/ExpandDims_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/concat_2/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_2" + op: "ConcatV2" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/split_1" + input: "capsule_layer_2_1/concat_2/axis" + attr { + key: "N" + value { + i: 16 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul" + op: "Mul" + input: "capsule_layer_2_1/concat_2" + input: "capsule_layer_2_1/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum" + op: "Sum" + input: "capsule_layer_2_1/mul" + input: "capsule_layer_2_1/Sum/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2_1/Square" + op: "Square" + input: "capsule_layer_2_1/Sum" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_1/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_1" + op: "Sum" + input: "capsule_layer_2_1/Square" + input: "capsule_layer_2_1/Sum_1/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "capsule_layer_2_1/add/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2_1/add" + op: "Add" + input: "capsule_layer_2_1/add/x" + input: "capsule_layer_2_1/Sum_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/div" + op: "RealDiv" + input: "capsule_layer_2_1/Sum_1" + input: "capsule_layer_2_1/add" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/add_1/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "capsule_layer_2_1/add_1" + op: "Add" + input: "capsule_layer_2_1/Sum_1" + input: "capsule_layer_2_1/add_1/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_4" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2_1/Const_5" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "capsule_layer_2_1/clip_by_value/Minimum" + op: "Minimum" + input: "capsule_layer_2_1/add_1" + input: "capsule_layer_2_1/Const_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/clip_by_value" + op: "Maximum" + input: "capsule_layer_2_1/clip_by_value/Minimum" + input: "capsule_layer_2_1/Const_4" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sqrt" + op: "Sqrt" + input: "capsule_layer_2_1/clip_by_value" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/div_1" + op: "RealDiv" + input: "capsule_layer_2_1/div" + input: "capsule_layer_2_1/Sqrt" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul_1" + op: "Mul" + input: "capsule_layer_2_1/div_1" + input: "capsule_layer_2_1/Sum" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_4/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_4" + op: "ExpandDims" + input: "capsule_layer_2_1/mul_1" + input: "capsule_layer_2_1/ExpandDims_4/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice" + op: "StridedSlice" + input: "capsule_layer_2_1/Shape" + input: "capsule_layer_2_1/strided_slice/stack" + input: "capsule_layer_2_1/strided_slice/stack_1" + input: "capsule_layer_2_1/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/Tile/multiples/0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Tile/multiples/2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Tile/multiples/3" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Tile/multiples" + op: "Pack" + input: "capsule_layer_2_1/Tile/multiples/0" + input: "capsule_layer_2_1/strided_slice" + input: "capsule_layer_2_1/Tile/multiples/2" + input: "capsule_layer_2_1/Tile/multiples/3" + attr { + key: "N" + value { + i: 4 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2_1/Tile" + op: "Tile" + input: "capsule_layer_2_1/ExpandDims_4" + input: "capsule_layer_2_1/Tile/multiples" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tmultiples" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul_2" + op: "Mul" + input: "capsule_layer_2_1/map/TensorArrayStack/TensorArrayGatherV3" + input: "capsule_layer_2_1/Tile" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_2/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_2" + op: "Sum" + input: "capsule_layer_2_1/mul_2" + input: "capsule_layer_2_1/Sum_2/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2_1/add_2" + op: "Add" + input: "capsule_layer_2_1/ExpandDims_1" + input: "capsule_layer_2_1/Sum_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Shape_3" + op: "Shape" + input: "capsule_layer_2_1/add_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2_1/Rank_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2_1/Shape_4" + op: "Shape" + input: "capsule_layer_2_1/add_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2_1/Sub_1/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sub_1" + op: "Sub" + input: "capsule_layer_2_1/Rank_1" + input: "capsule_layer_2_1/Sub_1/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/Slice_1/begin" + op: "Pack" + input: "capsule_layer_2_1/Sub_1" + attr { + key: "N" + value { + i: 1 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2_1/Slice_1/size" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Slice_1" + op: "Slice" + input: "capsule_layer_2_1/Shape_4" + input: "capsule_layer_2_1/Slice_1/begin" + input: "capsule_layer_2_1/Slice_1/size" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/concat_3/values_0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_3/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_3" + op: "ConcatV2" + input: "capsule_layer_2_1/concat_3/values_0" + input: "capsule_layer_2_1/Slice_1" + input: "capsule_layer_2_1/concat_3/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Reshape_2" + op: "Reshape" + input: "capsule_layer_2_1/add_2" + input: "capsule_layer_2_1/concat_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Softmax_1" + op: "Softmax" + input: "capsule_layer_2_1/Reshape_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Reshape_3" + op: "Reshape" + input: "capsule_layer_2_1/Softmax_1" + input: "capsule_layer_2_1/Shape_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_5/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_5" + op: "ExpandDims" + input: "capsule_layer_2_1/Reshape_3" + input: "capsule_layer_2_1/ExpandDims_5/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_6" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/split_2/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/split_2" + op: "Split" + input: "capsule_layer_2_1/split_2/split_dim" + input: "capsule_layer_2_1/ExpandDims_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/concat_4/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_4" + op: "ConcatV2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/split_2" + input: "capsule_layer_2_1/concat_4/axis" + attr { + key: "N" + value { + i: 16 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul_3" + op: "Mul" + input: "capsule_layer_2_1/concat_4" + input: "capsule_layer_2_1/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_3/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_3" + op: "Sum" + input: "capsule_layer_2_1/mul_3" + input: "capsule_layer_2_1/Sum_3/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2_1/Square_1" + op: "Square" + input: "capsule_layer_2_1/Sum_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_4/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_4" + op: "Sum" + input: "capsule_layer_2_1/Square_1" + input: "capsule_layer_2_1/Sum_4/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "capsule_layer_2_1/add_3/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2_1/add_3" + op: "Add" + input: "capsule_layer_2_1/add_3/x" + input: "capsule_layer_2_1/Sum_4" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/div_2" + op: "RealDiv" + input: "capsule_layer_2_1/Sum_4" + input: "capsule_layer_2_1/add_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/add_4/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "capsule_layer_2_1/add_4" + op: "Add" + input: "capsule_layer_2_1/Sum_4" + input: "capsule_layer_2_1/add_4/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_7" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2_1/Const_8" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "capsule_layer_2_1/clip_by_value_1/Minimum" + op: "Minimum" + input: "capsule_layer_2_1/add_4" + input: "capsule_layer_2_1/Const_8" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/clip_by_value_1" + op: "Maximum" + input: "capsule_layer_2_1/clip_by_value_1/Minimum" + input: "capsule_layer_2_1/Const_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sqrt_1" + op: "Sqrt" + input: "capsule_layer_2_1/clip_by_value_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/div_3" + op: "RealDiv" + input: "capsule_layer_2_1/div_2" + input: "capsule_layer_2_1/Sqrt_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul_4" + op: "Mul" + input: "capsule_layer_2_1/div_3" + input: "capsule_layer_2_1/Sum_3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_6/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_6" + op: "ExpandDims" + input: "capsule_layer_2_1/mul_4" + input: "capsule_layer_2_1/ExpandDims_6/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice_1/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice_1/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 2 + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice_1/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/strided_slice_1" + op: "StridedSlice" + input: "capsule_layer_2_1/Shape" + input: "capsule_layer_2_1/strided_slice_1/stack" + input: "capsule_layer_2_1/strided_slice_1/stack_1" + input: "capsule_layer_2_1/strided_slice_1/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 0 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/Tile_1/multiples/0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Tile_1/multiples/2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Tile_1/multiples/3" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Tile_1/multiples" + op: "Pack" + input: "capsule_layer_2_1/Tile_1/multiples/0" + input: "capsule_layer_2_1/strided_slice_1" + input: "capsule_layer_2_1/Tile_1/multiples/2" + input: "capsule_layer_2_1/Tile_1/multiples/3" + attr { + key: "N" + value { + i: 4 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2_1/Tile_1" + op: "Tile" + input: "capsule_layer_2_1/ExpandDims_6" + input: "capsule_layer_2_1/Tile_1/multiples" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tmultiples" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul_5" + op: "Mul" + input: "capsule_layer_2_1/map/TensorArrayStack/TensorArrayGatherV3" + input: "capsule_layer_2_1/Tile_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_5/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_5" + op: "Sum" + input: "capsule_layer_2_1/mul_5" + input: "capsule_layer_2_1/Sum_5/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2_1/add_5" + op: "Add" + input: "capsule_layer_2_1/add_2" + input: "capsule_layer_2_1/Sum_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Shape_5" + op: "Shape" + input: "capsule_layer_2_1/add_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2_1/Rank_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2_1/Shape_6" + op: "Shape" + input: "capsule_layer_2_1/add_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "capsule_layer_2_1/Sub_2/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sub_2" + op: "Sub" + input: "capsule_layer_2_1/Rank_2" + input: "capsule_layer_2_1/Sub_2/y" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } +} +node { + name: "capsule_layer_2_1/Slice_2/begin" + op: "Pack" + input: "capsule_layer_2_1/Sub_2" + attr { + key: "N" + value { + i: 1 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "capsule_layer_2_1/Slice_2/size" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Slice_2" + op: "Slice" + input: "capsule_layer_2_1/Shape_6" + input: "capsule_layer_2_1/Slice_2/begin" + input: "capsule_layer_2_1/Slice_2/size" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/concat_5/values_0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_5/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_5" + op: "ConcatV2" + input: "capsule_layer_2_1/concat_5/values_0" + input: "capsule_layer_2_1/Slice_2" + input: "capsule_layer_2_1/concat_5/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Reshape_4" + op: "Reshape" + input: "capsule_layer_2_1/add_5" + input: "capsule_layer_2_1/concat_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Softmax_2" + op: "Softmax" + input: "capsule_layer_2_1/Reshape_4" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Reshape_5" + op: "Reshape" + input: "capsule_layer_2_1/Softmax_2" + input: "capsule_layer_2_1/Shape_5" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_7/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/ExpandDims_7" + op: "ExpandDims" + input: "capsule_layer_2_1/Reshape_5" + input: "capsule_layer_2_1/ExpandDims_7/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_9" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/split_3/split_dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/split_3" + op: "Split" + input: "capsule_layer_2_1/split_3/split_dim" + input: "capsule_layer_2_1/ExpandDims_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "num_split" + value { + i: 1 + } + } +} +node { + name: "capsule_layer_2_1/concat_6/axis" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "capsule_layer_2_1/concat_6" + op: "ConcatV2" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/split_3" + input: "capsule_layer_2_1/concat_6/axis" + attr { + key: "N" + value { + i: 16 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul_6" + op: "Mul" + input: "capsule_layer_2_1/concat_6" + input: "capsule_layer_2_1/map/TensorArrayStack/TensorArrayGatherV3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 8 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_6/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_6" + op: "Sum" + input: "capsule_layer_2_1/mul_6" + input: "capsule_layer_2_1/Sum_6/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "capsule_layer_2_1/Square_2" + op: "Square" + input: "capsule_layer_2_1/Sum_6" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_7/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "capsule_layer_2_1/Sum_7" + op: "Sum" + input: "capsule_layer_2_1/Square_2" + input: "capsule_layer_2_1/Sum_7/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "capsule_layer_2_1/add_6/x" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "capsule_layer_2_1/add_6" + op: "Add" + input: "capsule_layer_2_1/add_6/x" + input: "capsule_layer_2_1/Sum_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/div_4" + op: "RealDiv" + input: "capsule_layer_2_1/Sum_7" + input: "capsule_layer_2_1/add_6" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/add_7/y" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.00000001169e-07 + } + } + } +} +node { + name: "capsule_layer_2_1/add_7" + op: "Add" + input: "capsule_layer_2_1/Sum_7" + input: "capsule_layer_2_1/add_7/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Const_10" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "capsule_layer_2_1/Const_11" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "capsule_layer_2_1/clip_by_value_2/Minimum" + op: "Minimum" + input: "capsule_layer_2_1/add_7" + input: "capsule_layer_2_1/Const_11" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/clip_by_value_2" + op: "Maximum" + input: "capsule_layer_2_1/clip_by_value_2/Minimum" + input: "capsule_layer_2_1/Const_10" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/Sqrt_2" + op: "Sqrt" + input: "capsule_layer_2_1/clip_by_value_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/div_5" + op: "RealDiv" + input: "capsule_layer_2_1/div_4" + input: "capsule_layer_2_1/Sqrt_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "capsule_layer_2_1/mul_7" + op: "Mul" + input: "capsule_layer_2_1/div_5" + input: "capsule_layer_2_1/Sum_6" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "mask_capsule_1_1/ExpandDims/dim" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "mask_capsule_1_1/ExpandDims" + op: "ExpandDims" + input: "input_1_1" + input: "mask_capsule_1_1/ExpandDims/dim" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tdim" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 1 + } + } + } + } + } +} +node { + name: "mask_capsule_1_1/mul" + op: "Mul" + input: "capsule_layer_2_1/mul_7" + input: "mask_capsule_1_1/ExpandDims" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "mask_capsule_1_1/Shape" + op: "Shape" + input: "mask_capsule_1_1/mul" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 3 + } + } + } + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "mask_capsule_1_1/strided_slice/stack" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "mask_capsule_1_1/strided_slice/stack_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "mask_capsule_1_1/strided_slice/stack_2" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "mask_capsule_1_1/strided_slice" + op: "StridedSlice" + input: "mask_capsule_1_1/Shape" + input: "mask_capsule_1_1/strided_slice/stack" + input: "mask_capsule_1_1/strided_slice/stack_1" + input: "mask_capsule_1_1/strided_slice/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "begin_mask" + value { + i: 0 + } + } + attr { + key: "ellipsis_mask" + value { + i: 0 + } + } + attr { + key: "end_mask" + value { + i: 1 + } + } + attr { + key: "new_axis_mask" + value { + i: 0 + } + } + attr { + key: "shrink_axis_mask" + value { + i: 0 + } + } +} +node { + name: "mask_capsule_1_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "mask_capsule_1_1/Prod" + op: "Prod" + input: "mask_capsule_1_1/strided_slice" + input: "mask_capsule_1_1/Const" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "mask_capsule_1_1/stack/0" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "mask_capsule_1_1/stack" + op: "Pack" + input: "mask_capsule_1_1/stack/0" + input: "mask_capsule_1_1/Prod" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} +node { + name: "mask_capsule_1_1/Reshape" + op: "Reshape" + input: "mask_capsule_1_1/mul" + input: "mask_capsule_1_1/stack" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: -1 + } + } + } + } + } +} +node { + name: "dense_1_1/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\240\000\000\000\000\002\000\000" + } + } + } +} +node { + name: "dense_1_1/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_1_1/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0790569409728 + } + } + } +} +node { + name: "dense_1_1/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "dense_1_1/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 187633 + } + } +} +node { + name: "dense_1_1/truncated_normal/mul" + op: "Mul" + input: "dense_1_1/truncated_normal/TruncatedNormal" + input: "dense_1_1/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1_1/truncated_normal" + op: "Add" + input: "dense_1_1/truncated_normal/mul" + input: "dense_1_1/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1_1/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_1_1/kernel/Assign" + op: "Assign" + input: "dense_1_1/kernel" + input: "dense_1_1/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_1_1/kernel/read" + op: "Identity" + input: "dense_1_1/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 160 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 512 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_1_1/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 512 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_1_1/bias/Assign" + op: "Assign" + input: "dense_1_1/bias" + input: "dense_1_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_1_1/bias/read" + op: "Identity" + input: "dense_1_1/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_1_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_1_1/MatMul" + op: "MatMul" + input: "mask_capsule_1_1/Reshape" + input: "dense_1_1/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "transpose_a" + value { + b: false + } + } + attr { + key: "transpose_b" + value { + b: false + } + } +} +node { + name: "dense_1_1/BiasAdd" + op: "BiasAdd" + input: "dense_1_1/MatMul" + input: "dense_1_1/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 512 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_2_1/Relu" + op: "Relu" + input: "dense_1_1/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 512 + } + } + } + } + } +} +node { + name: "dense_2_1/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\000\002\000\000\000\004\000\000" + } + } + } +} +node { + name: "dense_2_1/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_2_1/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0441941730678 + } + } + } +} +node { + name: "dense_2_1/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "dense_2_1/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 6778894 + } + } +} +node { + name: "dense_2_1/truncated_normal/mul" + op: "Mul" + input: "dense_2_1/truncated_normal/TruncatedNormal" + input: "dense_2_1/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2_1/truncated_normal" + op: "Add" + input: "dense_2_1/truncated_normal/mul" + input: "dense_2_1/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2_1/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_2_1/kernel/Assign" + op: "Assign" + input: "dense_2_1/kernel" + input: "dense_2_1/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_2_1/kernel/read" + op: "Identity" + input: "dense_2_1/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 512 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1024 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_2_1/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1024 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_2_1/bias/Assign" + op: "Assign" + input: "dense_2_1/bias" + input: "dense_2_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_2_1/bias/read" + op: "Identity" + input: "dense_2_1/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_2_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_2_1/MatMul" + op: "MatMul" + input: "activation_2_1/Relu" + input: "dense_2_1/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "transpose_a" + value { + b: false + } + } + attr { + key: "transpose_b" + value { + b: false + } + } +} +node { + name: "dense_2_1/BiasAdd" + op: "BiasAdd" + input: "dense_2_1/MatMul" + input: "dense_2_1/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1024 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_3_1/Relu" + op: "Relu" + input: "dense_2_1/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 1024 + } + } + } + } + } +} +node { + name: "dense_3_1/truncated_normal/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 2 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + tensor_content: "\000\004\000\000\020\003\000\000" + } + } + } +} +node { + name: "dense_3_1/truncated_normal/mean" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_3_1/truncated_normal/stddev" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.03125 + } + } + } +} +node { + name: "dense_3_1/truncated_normal/TruncatedNormal" + op: "TruncatedNormal" + input: "dense_3_1/truncated_normal/shape" + attr { + key: "T" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "seed" + value { + i: 87654321 + } + } + attr { + key: "seed2" + value { + i: 5323536 + } + } +} +node { + name: "dense_3_1/truncated_normal/mul" + op: "Mul" + input: "dense_3_1/truncated_normal/TruncatedNormal" + input: "dense_3_1/truncated_normal/stddev" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3_1/truncated_normal" + op: "Add" + input: "dense_3_1/truncated_normal/mul" + input: "dense_3_1/truncated_normal/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3_1/kernel" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_3_1/kernel/Assign" + op: "Assign" + input: "dense_3_1/kernel" + input: "dense_3_1/truncated_normal" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_3_1/kernel/read" + op: "Identity" + input: "dense_3_1/kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3_1/kernel" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 1024 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 784 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "dense_3_1/bias" + op: "VariableV2" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } + attr { + key: "container" + value { + s: "" + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 784 + } + } + } + } + attr { + key: "shared_name" + value { + s: "" + } + } +} +node { + name: "dense_3_1/bias/Assign" + op: "Assign" + input: "dense_3_1/bias" + input: "dense_3_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } + attr { + key: "use_locking" + value { + b: true + } + } + attr { + key: "validate_shape" + value { + b: true + } + } +} +node { + name: "dense_3_1/bias/read" + op: "Identity" + input: "dense_3_1/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@dense_3_1/bias" + } + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 784 + } + } + } + } + } +} +node { + name: "dense_3_1/MatMul" + op: "MatMul" + input: "activation_3_1/Relu" + input: "dense_3_1/kernel/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "transpose_a" + value { + b: false + } + } + attr { + key: "transpose_b" + value { + b: false + } + } +} +node { + name: "dense_3_1/BiasAdd" + op: "BiasAdd" + input: "dense_3_1/MatMul" + input: "dense_3_1/bias/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 784 + } + } + } + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "activation_4_1/Sigmoid" + op: "Sigmoid" + input: "dense_3_1/BiasAdd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 784 + } + } + } + } + } +} +node { + name: "length_1_1/Square" + op: "Square" + input: "capsule_layer_2_1/mul_7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + dim { + size: 16 + } + } + } + } + } +} +node { + name: "length_1_1/Sum/reduction_indices" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "length_1_1/Sum" + op: "Sum" + input: "length_1_1/Square" + input: "length_1_1/Sum/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } + attr { + key: "keep_dims" + value { + b: false + } + } +} +node { + name: "length_1_1/Const" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.0 + } + } + } +} +node { + name: "length_1_1/Const_1" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + } + } + } + } + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: inf + } + } + } +} +node { + name: "length_1_1/clip_by_value/Minimum" + op: "Minimum" + input: "length_1_1/Sum" + input: "length_1_1/Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "length_1_1/clip_by_value" + op: "Maximum" + input: "length_1_1/clip_by_value/Minimum" + input: "length_1_1/Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "length_1_1/Sqrt" + op: "Sqrt" + input: "length_1_1/clip_by_value" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 10 + } + } + } + } + } +} +node { + name: "reshape_2_1/Reshape/shape" + op: "Const" + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: 4 + } + } + } + } + } + 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\377\034\000\000\000\001\000\000\000\034\000\000\000" + } + } + } +} +node { + name: "reshape_2_1/Reshape" + op: "Reshape" + input: "activation_4_1/Sigmoid" + input: "reshape_2_1/Reshape/shape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } + attr { + key: "_output_shapes" + value { + list { + shape { + dim { + size: -1 + } + dim { + size: 28 + } + dim { + size: 1 + } + dim { + size: 28 + } + } + } + } + } +} +node { + name: "init" + op: "NoOp" + input: "^conv2d_1/kernel/Assign" + input: "^conv2d_1/bias/Assign" + input: "^conv2d_2/kernel/Assign" + input: "^conv2d_2/bias/Assign" + input: "^capsule_layer_2/W/Assign" + input: "^capsule_layer_2/b/Assign" + input: "^capsule_layer_2/c/Assign" + input: "^dense_1/kernel/Assign" + input: "^dense_1/bias/Assign" + input: "^dense_2/kernel/Assign" + input: "^dense_2/bias/Assign" + input: "^dense_3/kernel/Assign" + input: "^dense_3/bias/Assign" + input: "^conv2d_1_1/kernel/Assign" + input: "^conv2d_1_1/bias/Assign" + input: "^conv2d_2_1/kernel/Assign" + input: "^conv2d_2_1/bias/Assign" + input: "^capsule_layer_2_1/W/Assign" + input: "^capsule_layer_2_1/b/Assign" + input: "^capsule_layer_2_1/c/Assign" + input: "^dense_1_1/kernel/Assign" + input: "^dense_1_1/bias/Assign" + input: "^dense_2_1/kernel/Assign" + input: "^dense_2_1/bias/Assign" + input: "^dense_3_1/kernel/Assign" + input: "^dense_3_1/bias/Assign" +} +versions { + producer: 24 +} diff --git a/ide/static/img/zoo/capsnet.png b/ide/static/img/zoo/capsnet.png new file mode 100644 index 000000000..b502c4db3 Binary files /dev/null and b/ide/static/img/zoo/capsnet.png differ diff --git a/ide/static/js/content.js b/ide/static/js/content.js index 9a0c92d4c..02f1e15c4 100644 --- a/ide/static/js/content.js +++ b/ide/static/js/content.js @@ -558,6 +558,7 @@ class Content extends React.Component { var filter_layers = ["Convolution", "Deconvolution"]; var fc_layers = ["InnerProduct", "Embed", "Recurrent", "LSTM"]; + var capsule_layer = ["CapsuleLayer"]; if(filter_layers.includes(layer.info.type)) { // if layer is Conv or DeConv calculating total parameter of the layer using: @@ -573,6 +574,16 @@ class Content extends React.Component { weight_params = layer.shape['input'][0] * kernel_params * layer.params['num_output'][0]; bias_params += layer.params['num_output'][0]; } + else if(capsule_layer.includes(layer.info.type)) { + // if layer is CapsuleLayer calculating total parameters of the layer using: + // Weight parameters: In_caps * Out_caps * In_dim * Out_dim + // Bias parameters: 2 * In_caps * Out_caps + var w_shape = [layer.shape['input'][1], layer.params['num_capsule'][0], + layer.shape['input'][0], layer.params['dim_capsule'][0]] + var b_shape = [layer.shape['input'][1], layer.params['num_capsule'][0]] + weight_params = w_shape[0] * w_shape[1] * w_shape[2] * w_shape[3] + bias_params = 2 * b_shape[0] * b_shape[1] + } else if(fc_layers.includes(layer.info.type)) { // if layer is one of Recurrent layer or Fully Connected layers calculate parameters using: // Num_Input * Num_Ouput diff --git a/ide/static/js/data.js b/ide/static/js/data.js index 41bfb7119..3bb5ec1a1 100644 --- a/ide/static/js/data.js +++ b/ide/static/js/data.js @@ -1343,6 +1343,48 @@ export default { }, learn: true }, + CapsuleLayer: { + name:'capsule_layer', + color:'#ffeb3b', + endpoint:{ + src:['Bottom'], + trg:['Top'] + }, + params: { + num_capsule: { + name:'No. of Capsules', + value: '', + type: 'number', + required: true + }, + dim_capsule: { + name:'Dimension of the Capsule', + value: '', + type: 'number', + required: true + }, + num_routing: { + name: 'No. of routings', + value: '', + type: 'number', + required: true + }, + caffe: { + name: 'Available Caffe', + value: false, + type: 'checkbox', + required: false + } + }, + props: { + name: { + name:'Name', + value: '', + type: 'text' + } + }, + learn: true + }, /* ********** Recurrent Layers ********** */ Recurrent: { // Only Caffe name: 'recurrent', @@ -3065,36 +3107,36 @@ export default { }, learn: true }, - Linear: { // Only Keras - name: 'linear', - color: '#009688', - endpoint: { - src: ['Bottom'], - trg: ['Top'] - }, - params: { - inplace: { - name: 'Inplace operation', - value: true, - type: 'checkbox', - required: false - }, - caffe: { - name: 'Available Caffe', - value: false, - type: 'checkbox', - required: false - } - }, - props: { - name: { - name: 'Name', - value: '', - type: 'text' - } - }, - learn: false - }, + Squash: { + name: 'squash', + color: '#0329f4', + endpoint: { + src: ['Bottom'], + trg: ['Top'] + }, + params: { + axis: { + name: 'Axis', + value: -1, + type: 'number', + required:false + }, + caffe: { + name: 'Available Caffe', + value: false, + type: 'checkbox', + required: false + } + }, + props:{ + name: { + name:'Name', + value: '', + type: 'text' + } + }, + learn: false + }, /* ********** Utility Layers ********** */ Flatten: { name: 'flatten', @@ -3633,6 +3675,54 @@ export default { }, learn: false }, + Length: { + name:'length', + color: '#ffeb3c', + endpoint: { + src:['Bottom'], + trg:['Top'] + }, + params: { + caffe: { + name:'Available Caffe', + value: false, + type: 'checkbox', + required: false + } + }, + props: { + name: { + name: 'Name', + value: '', + type: 'text' + } + }, + learn: false + }, + MaskCapsule: { + name:'mask_capsule', + color: '#ff98c0', + endpoint: { + src:['Bottom'], + trg:['Top'] + }, + params: { + caffe: { + name:'Available Caffe', + value: false, + type: 'checkbox', + required: false + } + }, + props:{ + name: { + name: "Name", + value: '', + type: 'text' + } + }, + learn: false + }, /* ********** Loss Layers ********** */ MultinomialLogisticLoss: { // Only Caffe name: 'multinomial logistic loss', diff --git a/ide/static/js/modelElement.js b/ide/static/js/modelElement.js index dbf326e3b..c6c1d94d5 100644 --- a/ide/static/js/modelElement.js +++ b/ide/static/js/modelElement.js @@ -6,6 +6,7 @@ class ModelElement extends React.Component { } render() { if (this.props.children){ + console.log(this.props) return (
this.props.importNet('sample'+this.props.framework, this.props.id)}> diff --git a/ide/static/js/modelZoo.js b/ide/static/js/modelZoo.js index 0538c708b..d182aae7d 100644 --- a/ide/static/js/modelZoo.js +++ b/ide/static/js/modelZoo.js @@ -151,6 +151,7 @@ class ModelZoo extends React.Component { +
diff --git a/ide/static/js/pane.js b/ide/static/js/pane.js index cf35ba3fd..64c6935e7 100644 --- a/ide/static/js/pane.js +++ b/ide/static/js/pane.js @@ -161,6 +161,9 @@ class Pane extends React.Component { Depthwise Convolution + Capsule Layer
@@ -252,7 +255,10 @@ class Pane extends React.Component { id="Masking_Button">Masking Slice + id="Length_Button">Length + Mask Capsule @@ -324,7 +330,7 @@ class Pane extends React.Component { id="Scale_Button">Scale Linear + id="Squash_Button">Squash diff --git a/ide/tasks.py b/ide/tasks.py index 24fe8c8df..6bb14ee9a 100644 --- a/ide/tasks.py +++ b/ide/tasks.py @@ -13,7 +13,7 @@ from keras_app.views.layers_export import data, convolution, deconvolution, pooling, dense, dropout, embed,\ recurrent, batch_norm, activation, flatten, reshape, eltwise, concat, upsample, locally_connected,\ permute, repeat_vector, regularization, masking, gaussian_noise, gaussian_dropout, alpha_dropout, \ - bidirectional, time_distributed, lrn, depthwiseConv + bidirectional, time_distributed, lrn, depthwiseConv, capsule_layer, squash, length, mask_capsule from keras_app.custom_layers import config as custom_layers_config from keras.models import model_from_json import tensorflow as tf @@ -111,7 +111,11 @@ def export_keras_json(net, net_name, is_tf, reply_channel): } custom_layers_map = { - 'LRN': lrn + 'LRN': lrn, + 'CapsuleLayer': capsule_layer, + 'Length': length, + 'MaskCapsule': mask_capsule, + 'Squash': squash } # Remove any duplicate activation layers (timedistributed and bidirectional layers) @@ -200,7 +204,6 @@ def isProcessPossible(layerId): }) }) return - while(len(stack)): if ('Loss' in net[layerId]['info']['type'] or net[layerId]['info']['type'] == 'Accuracy'): @@ -214,6 +217,10 @@ def isProcessPossible(layerId): if (net[layerId]['info']['type'] != 'Scale'): layer_in = [net_out[inputId] for inputId in net[layerId]['connection']['input']] + # Handling MaskCapsule layer seperately + if (net[layerId]['info']['type'] == 'MaskCapsule'): + layer_in = [[net_out[inputId] + for inputId in net[layerId]['connection']['input']]] # Need to check if next layer is Scale if (net[layerId]['info']['type'] == 'BatchNorm'): idNext = net[layerId]['connection']['output'][0] @@ -310,8 +317,16 @@ def isProcessPossible(layerId): json_str = json_str.strip("'<>() ").replace('\'', '\"') lrnLayer = imp.load_source('LRN', BASE_DIR + '/keras_app/custom_layers/lrn.py') - - model = model_from_json(json_str, {'LRN': lrnLayer.LRN}) + capsuleLayer = imp.load_source('CapsuleLayer', BASE_DIR + '/keras_app/custom_layers/capsule_layer.py') + maskcapsuleLayer = imp.load_source('MaskCapsule', + BASE_DIR + '/keras_app/custom_layers/mask_capsule.py') + squashLayer = imp.load_source('Squash', BASE_DIR + '/keras_app/custom_layers/squash.py') + lengthLayer = imp.load_source('Length', BASE_DIR + '/keras_app/custom_layers/length.py') + + model = model_from_json(json_str, {'LRN': lrnLayer.LRN, 'CapsuleLayer': capsuleLayer.CapsuleLayer, + 'MaskCapsule': maskcapsuleLayer.MaskCapsule, + 'Length': lengthLayer.Length, + 'Squash': squashLayer.Squash}) sess = K.get_session() tf.train.write_graph(sess.graph.as_graph_def(add_shapes=True), output_fld, diff --git a/ide/utils/shapes.py b/ide/utils/shapes.py index 34da58860..5c1c26eb8 100644 --- a/ide/utils/shapes.py +++ b/ide/utils/shapes.py @@ -139,6 +139,15 @@ def repeat(layer): return shape +def capsule(layer): + if (layer['info']['type'] == "CapsuleLayer"): + return [layer['params']['dim_capsule'], layer['params']['num_capsule']] + elif (layer['info']['type'] == "MaskCapsule"): + return [layer['shape']['input'][0][0] * layer['shape']['input'][0][1]] + else: + return [layer['shape']['input'][0]] + + def handle_concat_layer(outputLayer, inputLayer): if('input' not in outputLayer['shape']): shape = inputLayer['shape']['output'][:] @@ -149,6 +158,17 @@ def handle_concat_layer(outputLayer, inputLayer): return shape +def handle_mask_capsule_layer_input(inlayer, masklayer): + if inlayer['info']['type'] == "CapsuleLayer": + shape = inlayer['shape']['output'][:] + return shape + else: + shape = [] + shape.append(masklayer['shape']['input'][:]) + shape.append(inlayer['shape']['output'][:]) + return shape + + def get_layer_shape(layer): # separating checking the type of layer inorder to make it modular # which can be reused in case we only want to get shapes of a single @@ -161,6 +181,9 @@ def get_layer_shape(layer): elif(layer['info']['type'] in ['Convolution', 'Pooling', 'Deconvolution', 'DepthwiseConv']): return filter(layer) + elif(layer['info']['type'] in ['CapsuleLayer', 'Length', 'MaskCapsule']): + return capsule(layer) + elif(layer['info']['type'] in ['InnerProduct', 'Recurrent', 'RNN', 'LSTM', 'Embed']): return output(layer) @@ -208,7 +231,6 @@ def get_shapes(net): while(len(queue)): # using deque as stack layerId = queue.pop() - if(net[layerId]['info']['type'] in dataLayers): net[layerId]['shape']['input'], net[layerId]['shape']['output'] = get_layer_shape(net[layerId]) else: @@ -219,6 +241,9 @@ def get_shapes(net): # Handling Concat layer separately if (net[outputId]['info']['type'] == "Concat"): net[outputId]['shape']['input'] = handle_concat_layer(net[outputId], net[layerId]) + elif (net[outputId]['info']['type'] == "MaskCapsule"): + net[outputId]['shape']['input'] = handle_mask_capsule_layer_input(net[layerId], + net[outputId]) else: net[outputId]['shape']['input'] = net[layerId]['shape']['output'][:] diff --git a/keras_app/custom_layers/capsule_layer.py b/keras_app/custom_layers/capsule_layer.py new file mode 100644 index 000000000..41bf36019 --- /dev/null +++ b/keras_app/custom_layers/capsule_layer.py @@ -0,0 +1,65 @@ +from keras.layers.core import Layer +from keras import backend as K +import keras + + +def squash_activation(vectors, axis=-1): + s_squared_norm = K.sum(K.square(vectors), axis, keepdims=True) + scale = s_squared_norm / (1 + s_squared_norm) / K.sqrt(s_squared_norm + 1e-7) + return scale * vectors + + +class CapsuleLayer(Layer): + def __init__(self, num_capsule, dim_capsule, num_routing=3, **kwargs): + super(CapsuleLayer, self).__init__(**kwargs) + self.num_capsule = num_capsule + self.dim_capsule = dim_capsule + self.num_routing = num_routing + self.kernel_initializer = keras.initializers.random_uniform(-1, 1) + self.bias_initializer = keras.initializers.Zeros() + super(CapsuleLayer, self).__init__(**kwargs) + + def build(self, input_shape): + assert len(input_shape) >= 3 + self.W = self.add_weight(shape=[input_shape[1], self.num_capsule, input_shape[2], self.dim_capsule], + initializer=self.kernel_initializer, + name='W') + self.b = self.add_weight(shape=[input_shape[1], self.num_capsule], + initializer=self.bias_initializer, + name='b') + self.c = self.add_weight(shape=[input_shape[1], self.num_capsule], + initializer=self.bias_initializer, + name='c') + super(CapsuleLayer, self).build(input_shape) + + def call(self, inputs, training=None): + inputs_expand = K.expand_dims(inputs, 2) + inputs_tiled = K.repeat_elements(inputs_expand, self.num_capsule, axis=2) + inputs_hat = K.map_fn(lambda x: K.batch_dot(x, self.W, [2, 2]), inputs_tiled) + input_shape = K.shape(inputs_hat) + b = self.b + b = K.expand_dims(b, axis=0) + c = self.c + c = K.expand_dims(c, axis=0) + assert self.num_routing > 0 + for i in range(self.num_routing): + c = K.softmax(b) + c = K.expand_dims(c, axis=-1) + c = K.repeat_elements(c, rep=self.dim_capsule, axis=-1) + S = K.sum(c * inputs_hat, axis=1) + V = squash_activation(S) + if i != self.num_routing-1: + V_expanded = K.expand_dims(V, axis=1) + V_expanded = K.tile(V_expanded, [1, input_shape[1], 1, 1]) + b = b + K.sum(inputs_hat * V_expanded, axis=-1) + return V + + def compute_output_shape(self, input_shape): + return tuple([None, self.num_capsule, self.dim_capsule]) + + def get_config(self): + base_config = super(CapsuleLayer, self).get_config() + base_config['num_capsule'] = self.num_capsule + base_config['num_routing'] = self.num_routing + base_config['dim_capsule'] = self.dim_capsule + return base_config diff --git a/keras_app/custom_layers/config.py b/keras_app/custom_layers/config.py index 1a6afc315..335d786e2 100644 --- a/keras_app/custom_layers/config.py +++ b/keras_app/custom_layers/config.py @@ -4,5 +4,21 @@ 'LRN': { 'filename': 'lrn.py', 'url': '/media/lrn.py' + }, + 'CapsuleLayer': { + 'filename': 'capsule_layer.py', + 'url': '/media/capsule_layer.py' + }, + 'Length': { + 'filename': 'length.py', + 'url': 'media/length.py' + }, + 'MaskCapsule': { + 'filename': 'mask_capsule.py', + 'url': 'media/mask_capsule.py' + }, + 'Squash': { + 'filename': 'squash.py', + 'url': 'media/squash.py' } } diff --git a/keras_app/custom_layers/length.py b/keras_app/custom_layers/length.py new file mode 100644 index 000000000..ae9bf315e --- /dev/null +++ b/keras_app/custom_layers/length.py @@ -0,0 +1,20 @@ +from keras.layers.core import Layer +from keras import backend as K + + +class Length(Layer): + def __init__(self, **kwargs): + super(Length, self).__init__(**kwargs) + + def build(self, input_shape): + super(Length, self).build(input_shape) + + def call(self, input): + return K.sqrt(K.sum(K.square(input), -1)) + + def compute_output_shape(self, input_shape): + return input_shape[:-1] + + def get_config(self): + base_config = super(Length, self).get_config() + return base_config diff --git a/keras_app/custom_layers/mask_capsule.py b/keras_app/custom_layers/mask_capsule.py new file mode 100644 index 000000000..d7f3ce6e3 --- /dev/null +++ b/keras_app/custom_layers/mask_capsule.py @@ -0,0 +1,29 @@ +from keras.layers.core import Layer +from keras import backend as K + + +class MaskCapsule(Layer): + def __init__(self, **kwargs): + super(MaskCapsule, self).__init__(**kwargs) + + def build(self, input_shape): + super(MaskCapsule, self).build(input_shape) + + def call(self, inputs): + if type(inputs) == list: + assert len(inputs) == 2 + inputs, mask = inputs + else: + x = K.sqrt(K.sum(K.square(inputs), -1)) + mask = K.one_hot(indices=K.argmax(x, 1), num_classes=x.get_shape().as_list()[1]) + masked = K.batch_flatten(inputs*K.expand_dims(mask, -1)) + return masked + + def compute_output_shape(self, input_shape): + if type(input_shape[0]) is tuple: + return tuple([None, input_shape[0][1]*input_shape[0][2]]) + else: + return tuple([None, input_shape[1]*input_shape[2]]) + + def get_config(self): + return super(MaskCapsule, self).get_config() diff --git a/keras_app/custom_layers/squash.py b/keras_app/custom_layers/squash.py new file mode 100644 index 000000000..67cb9d2da --- /dev/null +++ b/keras_app/custom_layers/squash.py @@ -0,0 +1,24 @@ +from keras.layers.core import Layer +from keras import backend as K + + +class Squash(Layer): + def __init__(self, axis=-1, **kwargs): + self.axis = axis + super(Squash, self).__init__(**kwargs) + + def build(self, input_shape): + super(Squash, self).build(input_shape) + + def call(self, inputs): + s_squared_norm = K.sum(K.square(inputs), self.axis, keepdims=True) + scale = s_squared_norm / (1 + s_squared_norm) / K.sqrt(s_squared_norm + 1e-7) + return scale * inputs + + def compute_output_shape(self, input_shape): + return input_shape + + def get_config(self): + base_config = super(Squash, self).get_config() + base_config['axis'] = self.axis + return base_config diff --git a/keras_app/views/export_json.py b/keras_app/views/export_json.py index 216879ce3..8ff3db3aa 100644 --- a/keras_app/views/export_json.py +++ b/keras_app/views/export_json.py @@ -10,7 +10,7 @@ from layers_export import data, convolution, deconvolution, pooling, dense, dropout, embed,\ recurrent, batch_norm, activation, flatten, reshape, eltwise, concat, upsample, locally_connected,\ permute, repeat_vector, regularization, masking, gaussian_noise, gaussian_dropout, alpha_dropout, \ - bidirectional, time_distributed, lrn, depthwiseConv + bidirectional, time_distributed, lrn, depthwiseConv, capsule_layer, length, mask_capsule, squash from ..custom_layers import config as custom_layers_config @@ -82,7 +82,11 @@ def export_json(request, is_tf=False): } custom_layers_map = { - 'LRN': lrn + 'LRN': lrn, + 'CapsuleLayer': capsule_layer, + 'Length': length, + 'MaskCapsule': mask_capsule, + 'Squash': squash } # Remove any duplicate activation layers (timedistributed and bidirectional layers) @@ -171,6 +175,9 @@ def isProcessPossible(layerId): if (net[layerId]['info']['type'] != 'Scale'): layer_in = [net_out[inputId] for inputId in net[layerId]['connection']['input']] + if (net[layerId]['info']['type'] == 'MaskCapsule'): + layer_in = [[net_out[inputId] + for inputId in net[layerId]['connection']['input']]] # Need to check if next layer is Scale if (net[layerId]['info']['type'] == 'BatchNorm'): idNext = net[layerId]['connection']['output'][0] diff --git a/keras_app/views/import_json.py b/keras_app/views/import_json.py index 561b85e93..b42c19ff4 100644 --- a/keras_app/views/import_json.py +++ b/keras_app/views/import_json.py @@ -10,10 +10,14 @@ Recurrent, BatchNorm, Activation, LeakyReLU, PReLU, ELU, Scale, Flatten, Reshape, Concat, \ Eltwise, Padding, Upsample, LocallyConnected, ThresholdedReLU, Permute, RepeatVector,\ ActivityRegularization, Masking, GaussianNoise, GaussianDropout, AlphaDropout, \ - TimeDistributed, Bidirectional, DepthwiseConv, lrn + TimeDistributed, Bidirectional, DepthwiseConv, lrn, capsule_layer, length, mask_capsule, squash from keras.models import model_from_json, Sequential from keras.layers import deserialize from ..custom_layers.lrn import LRN +from ..custom_layers.capsule_layer import CapsuleLayer +from ..custom_layers.length import Length +from ..custom_layers.mask_capsule import MaskCapsule +from ..custom_layers.squash import Squash @csrf_exempt @@ -49,7 +53,9 @@ def import_json(request): except Exception: return JsonResponse({'result': 'error', 'error': 'Invalid JSON'}) - model = model_from_json(json.dumps(model), custom_objects={'LRN': LRN}) + model = model_from_json(json.dumps(model), + custom_objects={'LRN': LRN, 'Length': Length, 'MaskCapsule': MaskCapsule, + 'Squash': Squash, 'CapsuleLayer': CapsuleLayer}) layer_map = { 'InputLayer': Input, 'Dense': Dense, @@ -114,7 +120,11 @@ def import_json(request): 'AlphaDropout': AlphaDropout, 'TimeDistributed': TimeDistributed, 'Bidirectional': Bidirectional, - 'LRN': lrn + 'LRN': lrn, + 'CapsuleLayer': capsule_layer, + 'Length': length, + 'MaskCapsule': mask_capsule, + 'Squash': squash } hasActivation = ['Conv1D', 'Conv2D', 'Conv3D', 'Conv2DTranspose', 'Dense', 'LocallyConnected1D', diff --git a/keras_app/views/layers_export.py b/keras_app/views/layers_export.py index 9d126b911..42901268f 100644 --- a/keras_app/views/layers_export.py +++ b/keras_app/views/layers_export.py @@ -18,6 +18,10 @@ from keras.layers import TimeDistributed, Bidirectional from keras import regularizers from ..custom_layers.lrn import LRN +from ..custom_layers.capsule_layer import CapsuleLayer +from ..custom_layers.length import Length +from ..custom_layers.mask_capsule import MaskCapsule +from ..custom_layers.squash import Squash fillerMap = { 'constant': 'Constant', @@ -130,6 +134,13 @@ def activation(layer, layer_in, layerId, tensor=True): return out +def squash(layer, layer_in, layerId): + axis = layer['params']['axis'] + out = {} + out[layerId] = Squash(axis=axis)(*layer_in) + return out + + def dropout(layer, layer_in, layerId, tensor=True): out = {layerId: Dropout(0.5)} if tensor: @@ -182,6 +193,18 @@ def masking(layer, layer_in, layerId, tensor=True): return out +def length(layer, layer_in, layerId): + out = {} + out[layerId] = Length()(*layer_in) + return out + + +def mask_capsule(layer, layer_in, layerId): + out = {} + out[layerId] = MaskCapsule()(*layer_in) + return out + + # ********** Convolution Layers ********** def convolution(layer, layer_in, layerId, tensor=True): convMap = { @@ -368,6 +391,17 @@ def upsample(layer, layer_in, layerId, tensor=True): return out +# ********** Capsule Layers ********** +def capsule_layer(layer, layer_in, layerId): + num_capsule = layer['params']['num_capsule'] + dim_capsule = layer['params']['dim_capsule'] + num_routing = layer['params']['num_routing'] + out = {} + out[layerId] = CapsuleLayer(num_capsule=num_capsule, dim_capsule=dim_capsule, + num_routing=num_routing)(*layer_in) + return out + + # ********** Pooling Layers ********** def pooling(layer, layer_in, layerId, tensor=True): poolMap = { diff --git a/keras_app/views/layers_import.py b/keras_app/views/layers_import.py index d32b45d6e..8e9c4fe26 100644 --- a/keras_app/views/layers_import.py +++ b/keras_app/views/layers_import.py @@ -53,6 +53,12 @@ def Activation(layer): return jsonLayer(activationMap[layer.activation.func_name], {}, tempLayer) +def squash(layer): + params = {} + params['axis'] = layer.axis + return jsonLayer('Squash', params, layer) + + def Dropout(layer): params = {} if (layer.rate is not None): @@ -100,6 +106,16 @@ def Masking(layer): return jsonLayer('Masking', params, layer) +def length(layer): + params = {} + return jsonLayer('Length', params, layer) + + +def mask_capsule(layer): + params = {} + return jsonLayer('MaskCapsule', params, layer) + + # ********** Convolutional Layers ********** def Convolution(layer): params = {} @@ -226,6 +242,15 @@ def Upsample(layer): return jsonLayer('Upsample', params, layer) +# ********** Capsule Layers ********** +def capsule_layer(layer): + params = {} + params['num_capsule'] = layer.num_capsule + params['dim_capsule'] = layer.dim_capsule + params['num_routing'] = layer.num_routing + return jsonLayer('CapsuleLayer', params, layer) + + # ********** Pooling Layers ********** def Pooling(layer): params = {} diff --git a/tensorflow_app/views/import_graphdef.py b/tensorflow_app/views/import_graphdef.py index 26a3a0720..f1ac7f78b 100644 --- a/tensorflow_app/views/import_graphdef.py +++ b/tensorflow_app/views/import_graphdef.py @@ -9,7 +9,8 @@ from layers_import import import_placeholder, import_conv2d, import_conv3d, import_deconvolution, \ import_depthwise_convolution, import_pooling2d, import_pooling3d, \ import_inner_product, import_batchnorm, import_eltwise, import_activation, \ - import_dropout, import_flatten, import_concat, import_lrn + import_dropout, import_flatten, import_concat, import_lrn, \ + import_capsulelayer, import_maskcapsule, import_squash, import_length from layers_import import get_layer_name, get_layer_type, jsonLayer, activation_layers @@ -24,6 +25,10 @@ 'FusedBatchNorm': import_batchnorm, 'Conv2DBackpropInput': import_deconvolution, 'LRN': import_lrn, + 'CapsuleLayer': import_capsulelayer, + 'MaskCapsule': import_maskcapsule, + 'Squash': import_squash, + 'Length': import_length, 'MatMul': import_inner_product, 'Prod': import_inner_product, 'Concat': import_concat, @@ -35,6 +40,10 @@ 'flatten': import_flatten, 'dropout': import_dropout, 'lrn': import_lrn, + 'capsule_layer': import_capsulelayer, + 'mask_capsule': import_maskcapsule, + 'squash': import_squash, + 'length': import_length, 'concatenate': import_concat, 'batch': import_batchnorm, 'BatchNorm': import_batchnorm, diff --git a/tensorflow_app/views/json2pbtxt.py b/tensorflow_app/views/json2pbtxt.py index 7afdf596b..1cdb2f565 100644 --- a/tensorflow_app/views/json2pbtxt.py +++ b/tensorflow_app/views/json2pbtxt.py @@ -28,7 +28,14 @@ json_str = json_str.strip("'<>() ").replace('\'', '\"') lrn = imp.load_source('LRN', BASE_DIR + '/keras_app/custom_layers/lrn.py') -model = model_from_json(json_str, {'LRN': lrn.LRN}) +capsule_layer = imp.load_source('CapsuleLayer', BASE_DIR + '/keras_app/custom_layers/capsule_layer.py') +mask_capsule = imp.load_source('MaskCapsule', BASE_DIR + '/keras_app/custom_layers/mask_capsule.py') +length = imp.load_source('Length', BASE_DIR + '/keras_app/custom_layers/length.py') +squash = imp.load_source('Squash', BASE_DIR + '/keras_app/custom_layers/squash.py') +model = model_from_json(json_str, {'LRN': lrn.LRN, 'CapsuleLayer': capsule_layer.CapsuleLayer, + 'Length': length.Length, + 'MaskCapsule': mask_capsule.MaskCapsule, + 'Squash': squash.Squash}) sess = K.get_session() tf.train.write_graph(sess.graph.as_graph_def(add_shapes=True), output_fld, diff --git a/tensorflow_app/views/layers_import.py b/tensorflow_app/views/layers_import.py index b284cdf75..07475bbfe 100644 --- a/tensorflow_app/views/layers_import.py +++ b/tensorflow_app/views/layers_import.py @@ -458,6 +458,36 @@ def import_lrn(layer_ops): return jsonLayer('LRN', layer_params, get_input_layers(layer_ops), []) +def import_capsulelayer(layer_ops): + layer_params = {} + for node in layer_ops: + if ('num_capsule' in node.node_def.attr): + layer_params['num_capsule'] = node.get_attr('num_capsule') + if ('dim_capsule' in node.node_def.attr): + layer_params['dim_capsule'] = node.get_attr('dim_capsule') + if ('num_routing' in node.node_def.attr): + layer_params['num_routing'] = node.get_attr('num_routing') + + return jsonLayer('CapsuleLayer', layer_params, get_input_layers(layer_ops), []) + + +def import_squash(layer_ops): + layer_params = {} + for node in layer_ops: + if ('axis' in node.node_def.attr): + layer_params['axis'] = node.get_attr('axis') + + return jsonLayer('Squash', layer_params, get_input_layers(layer_ops), []) + + +def import_maskcapsule(layer_ops): + return jsonLayer('MaskCapsule', [], get_input_layers(layer_ops), []) + + +def import_length(layer_ops): + return jsonLayer('Length', [], get_input_layers(layer_ops), []) + + def jsonLayer(layer_type, layer_params={}, inputs=[], outputs=[]): layer = { 'info': { diff --git a/tests/unit/keras_app/test_views.py b/tests/unit/keras_app/test_views.py index c21b420ff..2ada79bb0 100644 --- a/tests/unit/keras_app/test_views.py +++ b/tests/unit/keras_app/test_views.py @@ -697,6 +697,23 @@ def test_keras_import(self): self.pad_test(model, 'pad_w', 2) +# **********Capsule Layers ************** +class CapsuleLayerTest(unittest.TestCase, HelperFunctions): + def setUp(self): + self.client = Client() + + def test_keras_import_export(self): + model_file = open(os.path.join(settings.BASE_DIR, 'example/keras', + 'capsnet.json'), 'r') + response = self.client.post(reverse('keras-import'), {'file': model_file}) + response = json.loads(response.content) + net = get_shapes(response['net']) + response = self.client.post(reverse('keras-export'), {'net': json.dumps(net), + 'net_name': ''}) + response = json.loads(response.content) + self.assertEqual(response['result'], 'success') + + # ********** Export json tests ********** # ********** Data Layers Test ********** diff --git a/tests/unit/tensorflow_app/test_views.py b/tests/unit/tensorflow_app/test_views.py index 209fdeb27..f88e070fd 100644 --- a/tests/unit/tensorflow_app/test_views.py +++ b/tests/unit/tensorflow_app/test_views.py @@ -125,3 +125,26 @@ def test_custom_lrn_tf_import(self): response = self.client.post(reverse('tf-import'), {'file': model_file}) response = json.loads(response.content) self.assertEqual(response['result'], 'success') + + +class CapsuleLayersImportTest(unittest.TestCase): + def setUp(self): + self.client = Client() + + def test_tf_export(self): + model_file = open(os.path.join(settings.BASE_DIR, 'example/keras', + 'capsnet.json'), 'r') + response = self.client.post(reverse('keras-import'), {'file': model_file}) + response = json.loads(response.content) + net = get_shapes(response['net']) + response = self.client.post(reverse('tf-export'), {'net': json.dumps(net), + 'net_name': ''}) + response = json.loads(response.content) + self.assertEqual(response['result'], 'success') + + def test_custom_CapsuleLayers_tf_import(self): + model_file = open(os.path.join(settings.BASE_DIR, 'example/tensorflow', + 'Capsulelayers.pbtxt'), 'r') + response = self.client.post(reverse('tf-import'), {'file': model_file}) + response = json.loads(response.content) + self.assertEqual(response['result'], 'success')