diff options
author | Chunseok Lee <chunseok.lee@samsung.com> | 2020-03-04 18:09:24 +0900 |
---|---|---|
committer | Chunseok Lee <chunseok.lee@samsung.com> | 2020-03-04 18:09:24 +0900 |
commit | 302e6564a7a76109e1178207e44e45a58631c477 (patch) | |
tree | 6cc4bd95e5e438331fc2c53234af4ed0e0f3bc20 /res | |
parent | bd11b24234d7d43dfe05a81c520aa01ffad06e42 (diff) | |
download | nnfw-302e6564a7a76109e1178207e44e45a58631c477.tar.gz nnfw-302e6564a7a76109e1178207e44e45a58631c477.tar.bz2 nnfw-302e6564a7a76109e1178207e44e45a58631c477.zip |
Imported Upstream version 1.1.0upstream/1.1.0submit/tizen/20200304.094649submit/tizen/20200304.093946submit/tizen/20200304.092919accepted/tizen/unified/20200305.051107
Diffstat (limited to 'res')
377 files changed, 14831 insertions, 0 deletions
diff --git a/res/BVLCCaffeTests/BatchNorm_000/INFERENCE b/res/BVLCCaffeTests/BatchNorm_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/BatchNorm_000/INFERENCE diff --git a/res/BVLCCaffeTests/BatchNorm_000/test.prototxt b/res/BVLCCaffeTests/BatchNorm_000/test.prototxt new file mode 100644 index 000000000..7c0f19ddf --- /dev/null +++ b/res/BVLCCaffeTests/BatchNorm_000/test.prototxt @@ -0,0 +1,17 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 4 dim: 4 } + } +} +layer { + name: "batchnorm" + type: "BatchNorm" + bottom: "data" + top: "batchnorm" + batch_norm_param { + use_global_stats: true + } +} diff --git a/res/BVLCCaffeTests/Concat_000/INFERENCE b/res/BVLCCaffeTests/Concat_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Concat_000/INFERENCE diff --git a/res/BVLCCaffeTests/Concat_000/test.prototxt b/res/BVLCCaffeTests/Concat_000/test.prototxt new file mode 100644 index 000000000..0c2ee899c --- /dev/null +++ b/res/BVLCCaffeTests/Concat_000/test.prototxt @@ -0,0 +1,23 @@ +layer { + name: "data" + type: "Input" + top: "data1" + top: "data2" + top: "data3" + top: "data4" + input_param { + shape: { dim: 1 dim: 1 dim: 4 dim: 4 } + shape: { dim: 1 dim: 2 dim: 4 dim: 4 } + shape: { dim: 1 dim: 3 dim: 4 dim: 4 } + shape: { dim: 1 dim: 4 dim: 4 dim: 4 } + } +} +layer { + name: "concat" + type: "Concat" + bottom: "data1" + bottom: "data2" + bottom: "data3" + bottom: "data4" + top: "concat" +} diff --git a/res/BVLCCaffeTests/Convolution_000/INFERENCE b/res/BVLCCaffeTests/Convolution_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_000/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_000/test.prototxt b/res/BVLCCaffeTests/Convolution_000/test.prototxt new file mode 100644 index 000000000..b56731c06 --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_000/test.prototxt @@ -0,0 +1,23 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 4 dim: 4 } + } +} +layer { + name: "conv" + type: "Convolution" + bottom: "data" + top: "conv" + convolution_param { + bias_term: false + num_output: 2 + kernel_size: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} diff --git a/res/BVLCCaffeTests/Convolution_001/INFERENCE b/res/BVLCCaffeTests/Convolution_001/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_001/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_001/test.prototxt b/res/BVLCCaffeTests/Convolution_001/test.prototxt new file mode 100644 index 000000000..5b6b5c811 --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_001/test.prototxt @@ -0,0 +1,24 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 15 dim: 15 } + } +} +layer { + name: "conv" + type: "Convolution" + bottom: "data" + top: "conv" + convolution_param { + bias_term: false + num_output: 2 + stride: 2 + kernel_size: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} diff --git a/res/BVLCCaffeTests/Convolution_002/INFERENCE b/res/BVLCCaffeTests/Convolution_002/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_002/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_002/test.prototxt b/res/BVLCCaffeTests/Convolution_002/test.prototxt new file mode 100644 index 000000000..7cd59be3e --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_002/test.prototxt @@ -0,0 +1,24 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + } +} +layer { + name: "conv" + type: "Convolution" + bottom: "data" + top: "conv" + convolution_param { + bias_term: false + num_output: 2 + pad: 1 + kernel_size: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} diff --git a/res/BVLCCaffeTests/Convolution_003/INFERENCE b/res/BVLCCaffeTests/Convolution_003/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_003/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_003/test.prototxt b/res/BVLCCaffeTests/Convolution_003/test.prototxt new file mode 100644 index 000000000..38c4ebdf9 --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_003/test.prototxt @@ -0,0 +1,25 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + } +} +layer { + name: "conv" + type: "Convolution" + bottom: "data" + top: "conv" + convolution_param { + bias_term: false + num_output: 2 + pad: 1 + pad: 2 + kernel_size: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} diff --git a/res/BVLCCaffeTests/Convolution_004/INFERENCE b/res/BVLCCaffeTests/Convolution_004/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_004/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_004/test.prototxt b/res/BVLCCaffeTests/Convolution_004/test.prototxt new file mode 100644 index 000000000..76b1039c5 --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_004/test.prototxt @@ -0,0 +1,24 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + } +} +layer { + name: "conv" + type: "Convolution" + bottom: "data" + top: "conv" + convolution_param { + bias_term: false + num_output: 2 + kernel_h: 3 + kernel_w: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} diff --git a/res/BVLCCaffeTests/Convolution_005/INFERENCE b/res/BVLCCaffeTests/Convolution_005/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_005/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_005/test.prototxt b/res/BVLCCaffeTests/Convolution_005/test.prototxt new file mode 100644 index 000000000..93104fee8 --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_005/test.prototxt @@ -0,0 +1,21 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 15 dim: 15 } + } +} +layer { + name: "conv" + type: "Convolution" + bottom: "data" + top: "conv" + convolution_param { + bias_term: false + num_output: 2 + pad_h: 0 + pad_w: 3 + kernel_size: 7 + } +} diff --git a/res/BVLCCaffeTests/Convolution_006/INFERENCE b/res/BVLCCaffeTests/Convolution_006/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_006/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_006/test.prototxt b/res/BVLCCaffeTests/Convolution_006/test.prototxt new file mode 100644 index 000000000..f50a0070f --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_006/test.prototxt @@ -0,0 +1,24 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + } +} +layer { + name: "dconv" + type: "Convolution" + bottom: "data" + top: "dconv" + convolution_param { + group: 3 + num_output: 3 + bias_term: false + kernel_size: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} diff --git a/res/BVLCCaffeTests/Convolution_007/INFERENCE b/res/BVLCCaffeTests/Convolution_007/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_007/INFERENCE diff --git a/res/BVLCCaffeTests/Convolution_007/test.prototxt b/res/BVLCCaffeTests/Convolution_007/test.prototxt new file mode 100644 index 000000000..78009fe27 --- /dev/null +++ b/res/BVLCCaffeTests/Convolution_007/test.prototxt @@ -0,0 +1,26 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 4 dim: 4 } + } +} +layer { + name: "conv" + type: "Convolution" + bottom: "data" + top: "conv" + convolution_param { + num_output: 2 + kernel_size: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "gaussian" + std: 0.01 + } + } +} diff --git a/res/BVLCCaffeTests/Eltwise_000/INFERENCE b/res/BVLCCaffeTests/Eltwise_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Eltwise_000/INFERENCE diff --git a/res/BVLCCaffeTests/Eltwise_000/test.prototxt b/res/BVLCCaffeTests/Eltwise_000/test.prototxt new file mode 100644 index 000000000..09b85c390 --- /dev/null +++ b/res/BVLCCaffeTests/Eltwise_000/test.prototxt @@ -0,0 +1,20 @@ +layer { + name: "data" + type: "Input" + top: "lhs" + top: "rhs" + input_param { + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + } +} +layer { + name: "sum" + type: "Eltwise" + bottom: "lhs" + bottom: "rhs" + top: "sum" + eltwise_param { + operation: SUM + } +} diff --git a/res/BVLCCaffeTests/Eltwise_001/INFERENCE b/res/BVLCCaffeTests/Eltwise_001/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Eltwise_001/INFERENCE diff --git a/res/BVLCCaffeTests/Eltwise_001/test.prototxt b/res/BVLCCaffeTests/Eltwise_001/test.prototxt new file mode 100644 index 000000000..3eef071f9 --- /dev/null +++ b/res/BVLCCaffeTests/Eltwise_001/test.prototxt @@ -0,0 +1,20 @@ +layer { + name: "data" + type: "Input" + top: "lhs" + top: "rhs" + input_param { + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + shape: { dim: 1 dim: 3 dim: 16 dim: 16 } + } +} +layer { + name: "prod" + type: "Eltwise" + bottom: "lhs" + bottom: "rhs" + top: "prod" + eltwise_param { + operation: PROD + } +} diff --git a/res/BVLCCaffeTests/Input_000/INFERENCE b/res/BVLCCaffeTests/Input_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Input_000/INFERENCE diff --git a/res/BVLCCaffeTests/Input_000/test.prototxt b/res/BVLCCaffeTests/Input_000/test.prototxt new file mode 100644 index 000000000..2d0571382 --- /dev/null +++ b/res/BVLCCaffeTests/Input_000/test.prototxt @@ -0,0 +1,8 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 3 dim: 244 dim: 244 } + } +} diff --git a/res/BVLCCaffeTests/Input_001/INFERENCE b/res/BVLCCaffeTests/Input_001/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Input_001/INFERENCE diff --git a/res/BVLCCaffeTests/Input_001/test.prototxt b/res/BVLCCaffeTests/Input_001/test.prototxt new file mode 100644 index 000000000..eece8b77c --- /dev/null +++ b/res/BVLCCaffeTests/Input_001/test.prototxt @@ -0,0 +1,12 @@ +layer { + name: "data1" + type: "Input" + top: "data1" + input_param { shape: { dim: 1 dim: 3 dim: 15 dim: 15 } } +} +layer { + name: "data2" + type: "Input" + top: "data2" + input_param { shape: { dim: 1 dim: 3 dim: 15 dim: 15 } } +} diff --git a/res/BVLCCaffeTests/Pooling_000/INFERENCE b/res/BVLCCaffeTests/Pooling_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_000/INFERENCE diff --git a/res/BVLCCaffeTests/Pooling_000/test.prototxt b/res/BVLCCaffeTests/Pooling_000/test.prototxt new file mode 100644 index 000000000..8ed0c3828 --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_000/test.prototxt @@ -0,0 +1,16 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 16 dim: 16 } } +} +layer { + name: "pool" + type: "Pooling" + bottom: "data" + top: "pool" + pooling_param { + pool: MAX + kernel_size: 3 + } +} diff --git a/res/BVLCCaffeTests/Pooling_001/INFERENCE b/res/BVLCCaffeTests/Pooling_001/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_001/INFERENCE diff --git a/res/BVLCCaffeTests/Pooling_001/test.prototxt b/res/BVLCCaffeTests/Pooling_001/test.prototxt new file mode 100644 index 000000000..1ecbb96bc --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_001/test.prototxt @@ -0,0 +1,17 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 15 dim: 15 } } +} +layer { + name: "pool" + type: "Pooling" + bottom: "data" + top: "pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} diff --git a/res/BVLCCaffeTests/Pooling_002/INFERENCE b/res/BVLCCaffeTests/Pooling_002/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_002/INFERENCE diff --git a/res/BVLCCaffeTests/Pooling_002/test.prototxt b/res/BVLCCaffeTests/Pooling_002/test.prototxt new file mode 100644 index 000000000..f199bdc60 --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_002/test.prototxt @@ -0,0 +1,16 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 16 dim: 16 } } +} +layer { + name: "pool" + type: "Pooling" + bottom: "data" + top: "pool" + pooling_param { + pool: AVE + kernel_size: 3 + } +} diff --git a/res/BVLCCaffeTests/Pooling_003/INFERENCE b/res/BVLCCaffeTests/Pooling_003/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_003/INFERENCE diff --git a/res/BVLCCaffeTests/Pooling_003/test.prototxt b/res/BVLCCaffeTests/Pooling_003/test.prototxt new file mode 100644 index 000000000..e25855fa8 --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_003/test.prototxt @@ -0,0 +1,17 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 15 dim: 15 } } +} +layer { + name: "pool" + type: "Pooling" + bottom: "data" + top: "pool" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } +} diff --git a/res/BVLCCaffeTests/Pooling_004/INFERENCE b/res/BVLCCaffeTests/Pooling_004/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_004/INFERENCE diff --git a/res/BVLCCaffeTests/Pooling_004/test.prototxt b/res/BVLCCaffeTests/Pooling_004/test.prototxt new file mode 100644 index 000000000..533a01c88 --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_004/test.prototxt @@ -0,0 +1,17 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 16 dim: 16 } } +} +layer { + name: "pool" + type: "Pooling" + bottom: "data" + top: "pool" + pooling_param { + pool: MAX + kernel_size: 3 + pad: 1 + } +} diff --git a/res/BVLCCaffeTests/Pooling_005/INFERENCE b/res/BVLCCaffeTests/Pooling_005/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_005/INFERENCE diff --git a/res/BVLCCaffeTests/Pooling_005/test.prototxt b/res/BVLCCaffeTests/Pooling_005/test.prototxt new file mode 100644 index 000000000..36475c71e --- /dev/null +++ b/res/BVLCCaffeTests/Pooling_005/test.prototxt @@ -0,0 +1,17 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 15 dim: 15 } } +} +layer { + name: "pool" + type: "Pooling" + bottom: "data" + top: "pool" + pooling_param { + pool: AVE + kernel_size: 3 + pad: 1 + } +} diff --git a/res/BVLCCaffeTests/ReLU_000/INFERENCE b/res/BVLCCaffeTests/ReLU_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/ReLU_000/INFERENCE diff --git a/res/BVLCCaffeTests/ReLU_000/test.prototxt b/res/BVLCCaffeTests/ReLU_000/test.prototxt new file mode 100644 index 000000000..5fe2a938e --- /dev/null +++ b/res/BVLCCaffeTests/ReLU_000/test.prototxt @@ -0,0 +1,14 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape: { dim: 1 dim: 2 dim: 5 dim: 3 } + } +} +layer { + name: "relu" + type: "ReLU" + bottom: "data" + top: "data" +} diff --git a/res/BVLCCaffeTests/Regression_0000/INFERENCE b/res/BVLCCaffeTests/Regression_0000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Regression_0000/INFERENCE diff --git a/res/BVLCCaffeTests/Regression_0000/test.prototxt b/res/BVLCCaffeTests/Regression_0000/test.prototxt new file mode 100644 index 000000000..5927d692f --- /dev/null +++ b/res/BVLCCaffeTests/Regression_0000/test.prototxt @@ -0,0 +1,17 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 15 dim: 15 } } +} +layer { + name: "pool" + type: "Pooling" + bottom: "data" + top: "pool" + pooling_param { + pool: AVE + kernel_h: 3 + kernel_w: 1 + } +} diff --git a/res/BVLCCaffeTests/Scale_000/INFERENCE b/res/BVLCCaffeTests/Scale_000/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Scale_000/INFERENCE diff --git a/res/BVLCCaffeTests/Scale_000/test.prototxt b/res/BVLCCaffeTests/Scale_000/test.prototxt new file mode 100644 index 000000000..2f628ec6c --- /dev/null +++ b/res/BVLCCaffeTests/Scale_000/test.prototxt @@ -0,0 +1,16 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 16 dim: 16 } } +} +layer { + name: "scale" + type: "Scale" + bottom: "data" + top: "scale" + scale_param { + filler { type: "gaussian" std: 0.01 } + bias_term: false + } +} diff --git a/res/BVLCCaffeTests/Scale_001/INFERENCE b/res/BVLCCaffeTests/Scale_001/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/Scale_001/INFERENCE diff --git a/res/BVLCCaffeTests/Scale_001/test.prototxt b/res/BVLCCaffeTests/Scale_001/test.prototxt new file mode 100644 index 000000000..d15be8ff3 --- /dev/null +++ b/res/BVLCCaffeTests/Scale_001/test.prototxt @@ -0,0 +1,17 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 1 dim: 3 dim: 16 dim: 16 } } +} +layer { + name: "scale" + type: "Scale" + bottom: "data" + top: "scale" + scale_param { + filler { type: "gaussian" std: 0.01 } + bias_term: true + bias_filler { type: "gaussian" std: 0.01 } + } +} diff --git a/res/BVLCCaffeTests/inception_c1/INFERENCE b/res/BVLCCaffeTests/inception_c1/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/inception_c1/INFERENCE diff --git a/res/BVLCCaffeTests/inception_c1/test.prototxt b/res/BVLCCaffeTests/inception_c1/test.prototxt new file mode 100644 index 000000000..7f2df4571 --- /dev/null +++ b/res/BVLCCaffeTests/inception_c1/test.prototxt @@ -0,0 +1,252 @@ +name: "inception_c1" +layer { + name: "input" + type: "Input" + top: "reduction_b_concat" + input_param { + shape { + dim: 1 + dim: 3 + dim: 32 + dim: 32 + } + } +} +layer { + name: "inception_c1_1x1_2" + type: "Convolution" + bottom: "reduction_b_concat" + top: "inception_c1_1x1_2" + convolution_param { + bias_term: false + num_output: 2 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_1x1_2_relu" + type: "ReLU" + bottom: "inception_c1_1x1_2" + top: "inception_c1_1x1_2" +} +layer { + name: "inception_c1_1x3_reduce" + type: "Convolution" + bottom: "reduction_b_concat" + top: "inception_c1_1x3_reduce" + convolution_param { + bias_term: false + num_output: 3 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_1x3_reduce_relu" + type: "ReLU" + bottom: "inception_c1_1x3_reduce" + top: "inception_c1_1x3_reduce" +} +layer { + name: "inception_c1_1x3" + type: "Convolution" + bottom: "inception_c1_1x3_reduce" + top: "inception_c1_1x3" + convolution_param { + bias_term: false + num_output: 4 + stride: 1 + pad_h: 0 + pad_w: 1 + kernel_h: 1 + kernel_w: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_1x3_relu" + type: "ReLU" + bottom: "inception_c1_1x3" + top: "inception_c1_1x3" +} +layer { + name: "inception_c1_3x1" + type: "Convolution" + bottom: "inception_c1_1x3_reduce" + top: "inception_c1_3x1" + convolution_param { + bias_term: false + num_output: 5 + stride: 1 + pad_h: 1 + pad_w: 0 + kernel_h: 3 + kernel_w: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_3x1_relu" + type: "ReLU" + bottom: "inception_c1_3x1" + top: "inception_c1_3x1" +} +layer { + name: "inception_c1_3x3_reduce" + type: "Convolution" + bottom: "reduction_b_concat" + top: "inception_c1_3x3_reduce" + convolution_param { + bias_term: false + num_output: 5 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_3x3_reduce_relu" + type: "ReLU" + bottom: "inception_c1_3x3_reduce" + top: "inception_c1_3x3_reduce" +} +layer { + name: "inception_c1_3x3" + type: "Convolution" + bottom: "inception_c1_3x3_reduce" + top: "inception_c1_3x3" + convolution_param { + bias_term: false + num_output: 6 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_3x3_relu" + type: "ReLU" + bottom: "inception_c1_3x3" + top: "inception_c1_3x3" +} +layer { + name: "inception_c1_1x3_2" + type: "Convolution" + bottom: "inception_c1_3x3" + top: "inception_c1_1x3_2" + convolution_param { + bias_term: false + num_output: 7 + stride: 1 + pad_h: 0 + pad_w: 1 + kernel_h: 1 + kernel_w: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_1x3_2_relu" + type: "ReLU" + bottom: "inception_c1_1x3_2" + top: "inception_c1_1x3_2" +} +layer { + name: "inception_c1_3x1_2" + type: "Convolution" + bottom: "inception_c1_3x3" + top: "inception_c1_3x1_2" + convolution_param { + bias_term: false + num_output: 8 + stride: 1 + pad_h: 1 + pad_w: 0 + kernel_h: 3 + kernel_w: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_3x1_2_relu" + type: "ReLU" + bottom: "inception_c1_3x1_2" + top: "inception_c1_3x1_2" +} +layer { + name: "inception_c1_pool" + type: "Pooling" + bottom: "reduction_b_concat" + top: "inception_c1_pool" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_c1_1x1" + type: "Convolution" + bottom: "inception_c1_pool" + top: "inception_c1_1x1" + convolution_param { + bias_term: false + num_output: 10 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + } +} +layer { + name: "inception_c1_1x1_relu" + type: "ReLU" + bottom: "inception_c1_1x1" + top: "inception_c1_1x1" +} +layer { + name: "inception_c1_concat" + type: "Concat" + bottom: "inception_c1_1x1_2" + bottom: "inception_c1_1x3" + bottom: "inception_c1_3x1" + bottom: "inception_c1_1x3_2" + bottom: "inception_c1_3x1_2" + bottom: "inception_c1_1x1" + top: "inception_c1_concat" +} diff --git a/res/BVLCCaffeTests/residual/INFERENCE b/res/BVLCCaffeTests/residual/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/residual/INFERENCE diff --git a/res/BVLCCaffeTests/residual/test.prototxt b/res/BVLCCaffeTests/residual/test.prototxt new file mode 100644 index 000000000..8ced8b6d5 --- /dev/null +++ b/res/BVLCCaffeTests/residual/test.prototxt @@ -0,0 +1,72 @@ +name: "residual" +layer { + name: "input" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 31 + dim: 31 + } + } +} +layer { + name: "MaxPool2dBackward4" + type: "Pooling" + bottom: "data" + top: "MaxPool2dBackward4" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 1 + } +} +layer { + name: "ConvNdBackward5" + type: "Convolution" + bottom: "MaxPool2dBackward4" + top: "ConvNdBackward5" + convolution_param { + num_output: 5 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride: 1 + bias_term: false + } +} +layer { + name: "ThresholdBackward7" + type: "ReLU" + bottom: "ConvNdBackward5" + top: "ConvNdBackward5" +} +layer { + name: "ConvNdBackward8" + type: "Convolution" + bottom: "ConvNdBackward5" + top: "ConvNdBackward8" + convolution_param { + num_output: 3 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride: 1 + bias_term: false + } +} +layer { + name: "AddBackward11" + type: "Eltwise" + bottom: "ConvNdBackward8" + bottom: "MaxPool2dBackward4" + top: "AddBackward11" + eltwise_param { + operation: SUM + } +} diff --git a/res/BVLCCaffeTests/residual_bn/INFERENCE b/res/BVLCCaffeTests/residual_bn/INFERENCE new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/res/BVLCCaffeTests/residual_bn/INFERENCE diff --git a/res/BVLCCaffeTests/residual_bn/test.prototxt b/res/BVLCCaffeTests/residual_bn/test.prototxt new file mode 100644 index 000000000..eaa321e8d --- /dev/null +++ b/res/BVLCCaffeTests/residual_bn/test.prototxt @@ -0,0 +1,110 @@ +name: "residual_bn" +layer { + name: "input" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 31 + dim: 31 + } + } +} +layer { + name: "MaxPool2dBackward4" + type: "Pooling" + bottom: "data" + top: "MaxPool2dBackward4" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 1 + } +} +layer { + name: "ConvNdBackward5" + type: "Convolution" + bottom: "MaxPool2dBackward4" + top: "ConvNdBackward5" + convolution_param { + num_output: 5 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride: 1 + bias_term: false + } +} +layer { + name: "BatchNormBackward6_bn" + type: "BatchNorm" + bottom: "ConvNdBackward5" + top: "BatchNormBackward6" + batch_norm_param { + use_global_stats: true + eps: 1e-05 + } +} +layer { + name: "BatchNormBackward6_scale" + type: "Scale" + bottom: "BatchNormBackward6" + top: "BatchNormBackward6" + scale_param { + bias_term: true + } +} +layer { + name: "ThresholdBackward7" + type: "ReLU" + bottom: "BatchNormBackward6" + top: "BatchNormBackward6" +} +layer { + name: "ConvNdBackward8" + type: "Convolution" + bottom: "BatchNormBackward6" + top: "ConvNdBackward8" + convolution_param { + num_output: 3 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride: 1 + bias_term: false + } +} +layer { + name: "BatchNormBackward9_bn" + type: "BatchNorm" + bottom: "ConvNdBackward8" + top: "BatchNormBackward9" + batch_norm_param { + use_global_stats: true + eps: 1e-05 + } +} +layer { + name: "BatchNormBackward9_scale" + type: "Scale" + bottom: "BatchNormBackward9" + top: "BatchNormBackward9" + scale_param { + bias_term: true + } +} +layer { + name: "AddBackward11" + type: "Eltwise" + bottom: "BatchNormBackward9" + bottom: "MaxPool2dBackward4" + top: "AddBackward11" + eltwise_param { + operation: SUM + } +} diff --git a/res/ONNXTests/UNIT_Identity_000/test.pbtxt b/res/ONNXTests/UNIT_Identity_000/test.pbtxt new file mode 100644 index 000000000..0e72c011b --- /dev/null +++ b/res/ONNXTests/UNIT_Identity_000/test.pbtxt @@ -0,0 +1,47 @@ +# This testcase is compatible with ONNX 1.4.1 or newer +ir_version: 4 + +opset_import { + version: 9 +} + +graph { + name: "Identity_000" + + node { + input: "input" + output: "output" + name: "identity_node" + op_type: "Identity" + } + + input { + name: "input" + type { + tensor_type { + elem_type: 1 # FLOAT type + shape { + dim { dim_value: 1 } + dim { dim_value: 2 } + dim { dim_value: 1 } + dim { dim_value: 2 } + } + } + } + } + + output { + name: "output" + type { + tensor_type { + elem_type: 1 # FLOAT type + shape { + dim { dim_value: 1 } + dim { dim_value: 2 } + dim { dim_value: 1 } + dim { dim_value: 2 } + } + } + } + } +} diff --git a/res/TensorFlowTests/NET_0000/test.info b/res/TensorFlowTests/NET_0000/test.info new file mode 100644 index 000000000..bdde9126b --- /dev/null +++ b/res/TensorFlowTests/NET_0000/test.info @@ -0,0 +1,3 @@ +# conv2d with VALID, stride = 1, 1 +input, ifm:0, TF_FLOAT, [1, 5, 5, 3] +output, maxpool:0, TF_FLOAT, [1, 4, 4, 2] diff --git a/res/TensorFlowTests/NET_0000/test.pbtxt b/res/TensorFlowTests/NET_0000/test.pbtxt new file mode 100644 index 000000000..5aafa31db --- /dev/null +++ b/res/TensorFlowTests/NET_0000/test.pbtxt @@ -0,0 +1,102 @@ +# Small Conv2D-MaxPool network +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 5 } + dim { size: 5 } + dim { size: 3 } + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } + dim { size: 2 } + dim { size: 3 } + dim { size: 2 } + } + float_val: 1.1 + } + } + } +} +node { + name: "ofm" + op: "Conv2D" + input: "ifm" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} +node { + name: "maxpool" + op: "MaxPool" + input: "ofm" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0001/test.info b/res/TensorFlowTests/NET_0001/test.info new file mode 100644 index 000000000..0e8caae1c --- /dev/null +++ b/res/TensorFlowTests/NET_0001/test.info @@ -0,0 +1,2 @@ +input, in:0, TF_FLOAT, [1, 5, 5, 3] +output, out:0, TF_FLOAT, [1, 4, 4, 5] diff --git a/res/TensorFlowTests/NET_0001/test.pbtxt b/res/TensorFlowTests/NET_0001/test.pbtxt new file mode 100644 index 000000000..fc84d61a6 --- /dev/null +++ b/res/TensorFlowTests/NET_0001/test.pbtxt @@ -0,0 +1,160 @@ +# Small Conv2D-BiasAdd-Conv2D network +node { + name: "in" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } # N + dim { size: 5 } # H + dim { size: 5 } # W + dim { size: 3 } # C + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } # H + dim { size: 2 } # W + dim { size: 3 } # I + dim { size: 2 } # O + } + float_val: 1.1 + } + } + } +} +node { + name: "conv" + op: "Conv2D" + input: "in" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} +node { + name: "bias" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } + } + float_val: 1.1 + } + } + } +} +node { + name: "badd" + op: "BiasAdd" + input: "conv" + input: "bias" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } +} +node { + name: "ker1" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 1 } # H + dim { size: 1 } # W + dim { size: 2 } # I + dim { size: 5 } # O + } + float_val: 1.1 + } + } + } +} +node { + name: "out" + op: "Conv2D" + input: "badd" + input: "ker1" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0002/test.info b/res/TensorFlowTests/NET_0002/test.info new file mode 100644 index 000000000..0e8caae1c --- /dev/null +++ b/res/TensorFlowTests/NET_0002/test.info @@ -0,0 +1,2 @@ +input, in:0, TF_FLOAT, [1, 5, 5, 3] +output, out:0, TF_FLOAT, [1, 4, 4, 5] diff --git a/res/TensorFlowTests/NET_0002/test.pbtxt b/res/TensorFlowTests/NET_0002/test.pbtxt new file mode 100644 index 000000000..692651aa4 --- /dev/null +++ b/res/TensorFlowTests/NET_0002/test.pbtxt @@ -0,0 +1,135 @@ +# Small Conv2D-ReLU-Conv2D network +node { + name: "in" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } # N + dim { size: 5 } # H + dim { size: 5 } # W + dim { size: 3 } # C + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } # H + dim { size: 2 } # W + dim { size: 3 } # I + dim { size: 2 } # O + } + float_val: 1.1 + } + } + } +} +node { + name: "conv" + op: "Conv2D" + input: "in" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} +node { + name: "relu" + op: "Relu" + input: "conv" + attr { + key: "T" + value { type: DT_FLOAT } + } +} +node { + name: "ker1" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 1 } # H + dim { size: 1 } # W + dim { size: 2 } # I + dim { size: 5 } # O + } + float_val: 1.1 + } + } + } +} +node { + name: "out" + op: "Conv2D" + input: "relu" + input: "ker1" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0003/test.info b/res/TensorFlowTests/NET_0003/test.info new file mode 100644 index 000000000..ee7d13cd1 --- /dev/null +++ b/res/TensorFlowTests/NET_0003/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5] +output, FusedBatchNorm:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/NET_0003/test.pbtxt b/res/TensorFlowTests/NET_0003/test.pbtxt new file mode 100644 index 000000000..3f146c033 --- /dev/null +++ b/res/TensorFlowTests/NET_0003/test.pbtxt @@ -0,0 +1,238 @@ +# Small Conv2D + FusedBatchNorm network +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 # N + } + dim { + size: 3 # H + } + dim { + size: 3 # W + } + dim { + size: 5 # C + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 # H + } + dim { + size: 2 # W + } + dim { + size: 5 # I + } + dim { + size: 1 # O + } + } + float_val: 1.0 + } + } + } +} +node { + name: "Conv2D" + op: "Conv2D" + input: "Placeholder" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "scale" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "FusedBatchNorm/mean" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "FusedBatchNorm/variance" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "FusedBatchNorm" + op: "FusedBatchNorm" + input: "Conv2D" + input: "scale" + input: "offset" + input: "FusedBatchNorm/mean" + input: "FusedBatchNorm/variance" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "epsilon" + value { + f: 0.0010000000474974513 + } + } + attr { + key: "is_training" + value { + b: false + } + } +} diff --git a/res/TensorFlowTests/NET_0003/test.py b/res/TensorFlowTests/NET_0003/test.py new file mode 100644 index 000000000..b5bad2dae --- /dev/null +++ b/res/TensorFlowTests/NET_0003/test.py @@ -0,0 +1,15 @@ +# TF_SMALL_NET_0003/test.pbtxt is create with below script + +# Version info +# - Tensorflow : 1.13.1 +# - Python : 3.5.2 + +import tensorflow as tf + +input0 = tf.placeholder(tf.float32, [1, 3, 3, 5]) +filter0 = tf.constant(1.0, shape=[2, 2, 5, 1]) +conv = tf.nn.conv2d(input0, filter=filter0, strides=[1, 1, 1, 1], padding='SAME') +fbn = tf.nn.fused_batch_norm( + conv, scale=[1.0], offset=[0.0], mean=[0.0], variance=[1.0], is_training=False) + +print(tf.get_default_graph().as_graph_def()) diff --git a/res/TensorFlowTests/NET_0004/test.info b/res/TensorFlowTests/NET_0004/test.info new file mode 100644 index 000000000..75a892250 --- /dev/null +++ b/res/TensorFlowTests/NET_0004/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5] +output, FusedBatchNorm:0, TF_FLOAT, [1, 3, 3, 10] diff --git a/res/TensorFlowTests/NET_0004/test.pbtxt b/res/TensorFlowTests/NET_0004/test.pbtxt new file mode 100644 index 000000000..18cdd65ff --- /dev/null +++ b/res/TensorFlowTests/NET_0004/test.pbtxt @@ -0,0 +1,218 @@ +# Small DepthwiseConv2D + FusedBatchNorm network +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + dim { + size: 5 + } + dim { + size: 2 + } + } + float_val: 1 + } + } + } +} +node { + name: "depthwise/Shape" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + int_val: 2 + int_val: 2 + int_val: 5 + int_val: 2 + } + } + } +} +node { + name: "depthwise/dilation_rate" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + int_val: 1 + int_val: 1 + } + } + } +} +node { + name: "depthwise" + op: "DepthwiseConv2dNative" + input: "Placeholder" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "Const_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 10 + } + } + float_val: 2 + } + } + } +} +node { + name: "FusedBatchNorm" + op: "FusedBatchNorm" + input: "depthwise" + input: "Const_1" + input: "Const_1" + input: "Const_1" + input: "Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "epsilon" + value { + f: 0.001 + } + } + attr { + key: "is_training" + value { + b: false + } + } +} diff --git a/res/TensorFlowTests/NET_0004/test.py b/res/TensorFlowTests/NET_0004/test.py new file mode 100644 index 000000000..a0c790d79 --- /dev/null +++ b/res/TensorFlowTests/NET_0004/test.py @@ -0,0 +1,16 @@ +# TF_SMALL_NET_0004/test.pbtxt is create with below script + +# Version info +# - Tensorflow : 1.13.1 +# - Python : 3.5.2 + +import tensorflow as tf + +input0 = tf.placeholder(tf.float32, [1, 3, 3, 5]) +filter0 = tf.constant(1.0, shape=[2, 2, 5, 2]) +dconv = tf.nn.depthwise_conv2d(input0, filter0, [1, 1, 1, 1], 'SAME') +const = tf.constant(2.0, shape=[10]) +fbn = tf.nn.fused_batch_norm( + x=dconv, scale=const, offset=const, mean=const, variance=const, is_training=False) + +print(tf.get_default_graph().as_graph_def()) diff --git a/res/TensorFlowTests/NET_0005/test.info b/res/TensorFlowTests/NET_0005/test.info new file mode 100644 index 000000000..379959c05 --- /dev/null +++ b/res/TensorFlowTests/NET_0005/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 3, 2] +output, Reshape2:0, TF_FLOAT, [1, 2, 3, 2] diff --git a/res/TensorFlowTests/NET_0005/test.pbtxt b/res/TensorFlowTests/NET_0005/test.pbtxt new file mode 100644 index 000000000..16cc44005 --- /dev/null +++ b/res/TensorFlowTests/NET_0005/test.pbtxt @@ -0,0 +1,120 @@ +# Small Shape + Reshape network +# This test is quite similar with the last part of InceptionV3 +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "Shape" + op: "Shape" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "out_type" + value { + type: DT_INT32 + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + int_val: 3 + int_val: 4 + } + } + } +} +node { + name: "Reshape1" + op: "Reshape" + input: "Placeholder" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } +} +node { + name: "Relu" + op: "Relu" + input: "Reshape1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "Reshape2" + op: "Reshape" + input: "Relu" + input: "Shape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/NET_0006/test.info b/res/TensorFlowTests/NET_0006/test.info new file mode 100644 index 000000000..f0b1e20ea --- /dev/null +++ b/res/TensorFlowTests/NET_0006/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 7, 7, 1] +output, maxpool:0, TF_FLOAT, [1, 7, 7, 2] diff --git a/res/TensorFlowTests/NET_0006/test.pbtxt b/res/TensorFlowTests/NET_0006/test.pbtxt new file mode 100644 index 000000000..e92b60629 --- /dev/null +++ b/res/TensorFlowTests/NET_0006/test.pbtxt @@ -0,0 +1,149 @@ +# A simple network that has "Concat" in between feature operations. +# +# Placeholder -+-> MaxPool2D -+-> Concat -> MaxPool2D +# | | +# +-> MaxPool2D -+ +# +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } # N + dim { size: 7 } # H + dim { size: 7 } # W + dim { size: 1 } # C + } + } + } +} +node { + name: "maxpool_1" + op: "MaxPool" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} +node { + name: "maxpool_2" + op: "MaxPool" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} +node { + name: "axis" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { } + int_val: 3 + } + } + } +} +node { + name: "concat" + op: "ConcatV2" + input: "maxpool_1" + input: "maxpool_2" + input: "axis" + attr { + key: "N" + value { i: 2 } + } + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } +} +node { + name: "maxpool" + op: "MaxPool" + input: "concat" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0007/test.info b/res/TensorFlowTests/NET_0007/test.info new file mode 100644 index 000000000..59c3f6122 --- /dev/null +++ b/res/TensorFlowTests/NET_0007/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5] +output, Mul:0, TF_FLOAT, [1, 3, 3, 2] diff --git a/res/TensorFlowTests/NET_0007/test.pbtxt b/res/TensorFlowTests/NET_0007/test.pbtxt new file mode 100644 index 000000000..6193c19b9 --- /dev/null +++ b/res/TensorFlowTests/NET_0007/test.pbtxt @@ -0,0 +1,145 @@ +# A simple network that has "Conv2D" + "Mul" +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "weights" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + dim { + size: 5 + } + dim { + size: 2 + } + } + float_val: 1.100000023841858 + } + } + } +} +node { + name: "Conv2D" + op: "Conv2D" + input: "Placeholder" + input: "weights" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "mulparam" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + } + float_val: 2.0 + } + } + } +} +node { + name: "Mul" + op: "Mul" + input: "Conv2D" + input: "mulparam" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0008/test.info b/res/TensorFlowTests/NET_0008/test.info new file mode 100644 index 000000000..ccdd6fd44 --- /dev/null +++ b/res/TensorFlowTests/NET_0008/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5] +output, Add:0, TF_FLOAT, [1, 3, 3, 2] diff --git a/res/TensorFlowTests/NET_0008/test.manifest b/res/TensorFlowTests/NET_0008/test.manifest new file mode 100644 index 000000000..c7de34437 --- /dev/null +++ b/res/TensorFlowTests/NET_0008/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network that has "Conv2D" + "Add" diff --git a/res/TensorFlowTests/NET_0008/test.pbtxt b/res/TensorFlowTests/NET_0008/test.pbtxt new file mode 100644 index 000000000..dc1407ddf --- /dev/null +++ b/res/TensorFlowTests/NET_0008/test.pbtxt @@ -0,0 +1,145 @@ +# A simple network that has "Conv2D" + "Add" +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "weights" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + dim { + size: 5 + } + dim { + size: 2 + } + } + float_val: 1.100000023841858 + } + } + } +} +node { + name: "Conv2D" + op: "Conv2D" + input: "Placeholder" + input: "weights" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "addparam" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + } + float_val: 2.0 + } + } + } +} +node { + name: "Add" + op: "Add" + input: "Conv2D" + input: "addparam" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0009/test.info b/res/TensorFlowTests/NET_0009/test.info new file mode 100644 index 000000000..ccdd6fd44 --- /dev/null +++ b/res/TensorFlowTests/NET_0009/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5] +output, Add:0, TF_FLOAT, [1, 3, 3, 2] diff --git a/res/TensorFlowTests/NET_0009/test.manifest b/res/TensorFlowTests/NET_0009/test.manifest new file mode 100644 index 000000000..80ba28f80 --- /dev/null +++ b/res/TensorFlowTests/NET_0009/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network that has "Conv2D" + "BiasAdd" + "Add" diff --git a/res/TensorFlowTests/NET_0009/test.pbtxt b/res/TensorFlowTests/NET_0009/test.pbtxt new file mode 100644 index 000000000..719685c64 --- /dev/null +++ b/res/TensorFlowTests/NET_0009/test.pbtxt @@ -0,0 +1,188 @@ +# A simple network that has "Conv2D" + "BiasAdd" + "Add" +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "weights" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + dim { + size: 5 + } + dim { + size: 2 + } + } + float_val: 1.100000023841858 + } + } + } +} +node { + name: "Conv2D" + op: "Conv2D" + input: "Placeholder" + input: "weights" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "BiasAdd/bias" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + } + float_val: 1.0 + float_val: 1.0 + } + } + } +} +node { + name: "BiasAdd" + op: "BiasAdd" + input: "Conv2D" + input: "BiasAdd/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "addparam" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + } + float_val: 2.0 + } + } + } +} +node { + name: "Add" + op: "Add" + input: "BiasAdd" + input: "addparam" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0010/test.info b/res/TensorFlowTests/NET_0010/test.info new file mode 100644 index 000000000..bcbc41892 --- /dev/null +++ b/res/TensorFlowTests/NET_0010/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 2] +output, Add:0, TF_FLOAT, [1, 3, 3, 2] diff --git a/res/TensorFlowTests/NET_0010/test.manifest b/res/TensorFlowTests/NET_0010/test.manifest new file mode 100644 index 000000000..74e63bcc8 --- /dev/null +++ b/res/TensorFlowTests/NET_0010/test.manifest @@ -0,0 +1 @@ +SUMMARY: "BiasAdd" + "Add" diff --git a/res/TensorFlowTests/NET_0010/test.pbtxt b/res/TensorFlowTests/NET_0010/test.pbtxt new file mode 100644 index 000000000..b9c6c9987 --- /dev/null +++ b/res/TensorFlowTests/NET_0010/test.pbtxt @@ -0,0 +1,109 @@ +# A simple network that has "BiasAdd" + "Add" +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "bias_add_01/bias" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + } + float_val: 1.0 + float_val: -1.0 + } + } + } +} +node { + name: "bias_add_01" + op: "BiasAdd" + input: "Placeholder" + input: "bias_add_01/bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "addparam" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + } + float_val: 2.0 + } + } + } +} +node { + name: "Add" + op: "Add" + input: "bias_add_01" + input: "addparam" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0011/test.info b/res/TensorFlowTests/NET_0011/test.info new file mode 100644 index 000000000..7fb5ec2c0 --- /dev/null +++ b/res/TensorFlowTests/NET_0011/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [2] +output, concat_out:0, TF_FLOAT, [6] diff --git a/res/TensorFlowTests/NET_0011/test.pbtxt b/res/TensorFlowTests/NET_0011/test.pbtxt new file mode 100644 index 000000000..a44aba783 --- /dev/null +++ b/res/TensorFlowTests/NET_0011/test.pbtxt @@ -0,0 +1,129 @@ +# A simple network that includes constant foldable subgraph +# (note: [] indicates shape, () indicates real value) +# +# input1 (const) -- relu -+ placeholder --+ +# (-1, 1) (0, 1) | shape [2] | +# | | +# input2 (const) -+-- concat -------- concat_out +# (2, 3) | (0, 1, 2, 3) | +# | | +# axis (const)-+-------------------+ +# +# will be the following after constant folding: +# +# Pull --+ +# shape [2] | +# | +# ConstGen------- TensorConcat -- Push +# (0, 1, 2, 3) shape [6] +# +node { + name: "input1" + op: "Const" + attr { + key: "dtype" value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { dim { size: 2 } } + float_val: -1 + float_val: 1 + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "input1" + attr { key: "T" value { type: DT_FLOAT } } +} +node { + name: "input2" + op: "Const" + attr { + key: "dtype" value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { dim { size: 2 } } + float_val: 2 + float_val: 3 + } + } + } +} +node { + name: "axis" + op: "Const" + attr { key: "dtype" value { type: DT_INT32 } } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { } + int_val: 0 + } + } + } +} +node { + name: "concat" + op: "ConcatV2" + input: "relu" + input: "input2" + input: "axis" + attr { + key: "N" + value { i: 2 } + } + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } +} +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 2 } + } + } + } +} +node { + name: "concat_out" + op: "ConcatV2" + input: "concat" + input: "placeholder" + input: "axis" + attr { + key: "N" + value { i: 2 } + } + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } +} diff --git a/res/TensorFlowTests/NET_0012/test.info b/res/TensorFlowTests/NET_0012/test.info new file mode 100644 index 000000000..b210407fb --- /dev/null +++ b/res/TensorFlowTests/NET_0012/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [6] +output, reshape:0, TF_FLOAT, [3, 2] diff --git a/res/TensorFlowTests/NET_0012/test.pbtxt b/res/TensorFlowTests/NET_0012/test.pbtxt new file mode 100644 index 000000000..387dc92f6 --- /dev/null +++ b/res/TensorFlowTests/NET_0012/test.pbtxt @@ -0,0 +1,52 @@ +# Network with dynamic reshape which has resolvable wildcard dimension +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 6 } + } + } + } +} +node { + name: "shape" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { size: 2 } + } + int_val: -1 + int_val: 2 + } + } + } +} +node { + name: "reshape" + op: "Reshape" + input: "placeholder" + input: "shape" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tshape" + value { type: DT_INT32 } + } +} diff --git a/res/TensorFlowTests/NET_0013/test.info b/res/TensorFlowTests/NET_0013/test.info new file mode 100644 index 000000000..137cdfa8c --- /dev/null +++ b/res/TensorFlowTests/NET_0013/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [6] +output, Reshape:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/NET_0013/test.pbtxt b/res/TensorFlowTests/NET_0013/test.pbtxt new file mode 100644 index 000000000..a9c6aff98 --- /dev/null +++ b/res/TensorFlowTests/NET_0013/test.pbtxt @@ -0,0 +1,72 @@ +# Network containing Shape node, which becomes Reshape's 'shape' input +# Note that this is a work-around to test Shape +# +# (tensor) +# Placeholder ---------- Reshape +# / +# Const --- Shape --- +# (shape) +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 6 } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } + dim { size: 3 } + } + float_val: 1.0 + } + } + } +} +node { + name: "Shape" + op: "Shape" + input: "Const" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "out_type" + value { type: DT_INT32 } + } +} +node { + name: "Reshape" + op: "Reshape" + input: "Placeholder" + input: "Shape" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tshape" + value { type: DT_INT32 } + } +} diff --git a/res/TensorFlowTests/NET_0014/test.info b/res/TensorFlowTests/NET_0014/test.info new file mode 100644 index 000000000..d3ea85a10 --- /dev/null +++ b/res/TensorFlowTests/NET_0014/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [2, 1, 1, 3] +output, reshape_2:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/NET_0014/test.pbtxt b/res/TensorFlowTests/NET_0014/test.pbtxt new file mode 100644 index 000000000..d4bc8e698 --- /dev/null +++ b/res/TensorFlowTests/NET_0014/test.pbtxt @@ -0,0 +1,106 @@ +# Mock of the Epilogue, using ReLU instead of Softmax +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 2 } + dim { size: 1 } + dim { size: 1 } + dim { size: 3 } + } + } + } +} +node { + name: "squeeze" + op: "Squeeze" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "squeeze_dims" + value { + list { i: 1 i: 2 } + } + } +} +node { + name: "Reshape/shape" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { size: 2 } + } + int_val: -1 + int_val: 3 + } + } + } +} +node { + name: "reshape_1" + op: "Reshape" + input: "squeeze" + input: "Reshape/shape" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tshape" + value { type: DT_INT32 } + } +} +node { + name: "relu" + op: "Relu" + input: "reshape_1" + attr { + key: "T" + value { type: DT_FLOAT } + } +} +node { + name: "shape" + op: "Shape" + input: "squeeze" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "out_type" + value { type: DT_INT32 } + } +} +node { + name: "reshape_2" + op: "Reshape" + input: "relu" + input: "shape" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tshape" + value { type: DT_INT32 } + } +} diff --git a/res/TensorFlowTests/NET_0015/test.info b/res/TensorFlowTests/NET_0015/test.info new file mode 100644 index 000000000..dbbef9b3a --- /dev/null +++ b/res/TensorFlowTests/NET_0015/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 3] +output, as_rsqrt:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/NET_0015/test.pbtxt b/res/TensorFlowTests/NET_0015/test.pbtxt new file mode 100644 index 000000000..3d994e8d5 --- /dev/null +++ b/res/TensorFlowTests/NET_0015/test.pbtxt @@ -0,0 +1,74 @@ +# A simple network that simulates Rsqrt: 1.0 / Sqrt(input) +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "SQRT_02" + op: "Sqrt" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "as_rsqrt" + op: "RealDiv" + input: "Const" + input: "SQRT_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0016/test.info b/res/TensorFlowTests/NET_0016/test.info new file mode 100644 index 000000000..ee7d13cd1 --- /dev/null +++ b/res/TensorFlowTests/NET_0016/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5] +output, FusedBatchNorm:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/NET_0016/test.pbtxt b/res/TensorFlowTests/NET_0016/test.pbtxt new file mode 100644 index 000000000..64e5c4194 --- /dev/null +++ b/res/TensorFlowTests/NET_0016/test.pbtxt @@ -0,0 +1,271 @@ +# Small Conv2D + FusedBatchNorm network with Identity +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 # N + } + dim { + size: 3 # H + } + dim { + size: 3 # W + } + dim { + size: 5 # C + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 # H + } + dim { + size: 2 # W + } + dim { + size: 5 # I + } + dim { + size: 1 # O + } + } + float_val: 1.0 + } + } + } +} +node { + name: "Conv2D" + op: "Conv2D" + input: "Placeholder" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "scale" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "FusedBatchNorm/mean" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "FusedBatchNorm/variance" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "offset/id" + op: "Identity" + input: "offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "FusedBatchNorm/mean/id" + op: "Identity" + input: "FusedBatchNorm/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "FusedBatchNorm/variance/id" + op: "Identity" + input: "FusedBatchNorm/variance" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "FusedBatchNorm" + op: "FusedBatchNorm" + input: "Conv2D" + input: "scale" + input: "offset/id" + input: "FusedBatchNorm/mean/id" + input: "FusedBatchNorm/variance/id" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "epsilon" + value { + f: 0.0010000000474974513 + } + } + attr { + key: "is_training" + value { + b: false + } + } +} diff --git a/res/TensorFlowTests/NET_0017/test.info b/res/TensorFlowTests/NET_0017/test.info new file mode 100644 index 000000000..e9413cb98 --- /dev/null +++ b/res/TensorFlowTests/NET_0017/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 8, 8, 1] +output, avgpool2d:0, TF_FLOAT, [1, 1, 1, 1] diff --git a/res/TensorFlowTests/NET_0017/test.pbtxt b/res/TensorFlowTests/NET_0017/test.pbtxt new file mode 100644 index 000000000..e8cc76b70 --- /dev/null +++ b/res/TensorFlowTests/NET_0017/test.pbtxt @@ -0,0 +1,61 @@ +# HOW TO GENERATE: +# +# import tensorflow as tf +# value = tf.placeholder(dtype=tf.float32, shape=[1, 8, 8, 1], name='placeholder') +# output = tf.nn.avg_pool(value, [1, 8, 8, 1], [1, 1, 1, 1], 'VALID', name='avgpool2d') +# tf.get_default_graph().as_graph_def() +# +# NOTE 1. The output shape is 1x1x1x1 +# +# >>> tf.graph_util.tensor_shape_from_node_def_name(tf.get_default_graph(), 'avgpool2d') +# TensorShape([Dimension(1), Dimension(1), Dimension(1), Dimension(1)]) +# +# NOTE 2. This test corresponds to the last AvgPool node inception v3 2018.04.27. +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 8 } + dim { size: 8 } + dim { size: 1 } + } + } + } +} +node { + name: "avgpool2d" + op: "AvgPool" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 8 i: 8 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0018/test.info b/res/TensorFlowTests/NET_0018/test.info new file mode 100644 index 000000000..87f6fa795 --- /dev/null +++ b/res/TensorFlowTests/NET_0018/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 4, 4, 1] +output, avgpool2d:0, TF_FLOAT, [1, 4, 4, 1] diff --git a/res/TensorFlowTests/NET_0018/test.pbtxt b/res/TensorFlowTests/NET_0018/test.pbtxt new file mode 100644 index 000000000..3b8a15ef8 --- /dev/null +++ b/res/TensorFlowTests/NET_0018/test.pbtxt @@ -0,0 +1,63 @@ +# HOW TO GENERATE: +# +# import tensorflow as tf +# value = tf.placeholder(dtype=tf.float32, shape=[1, 4, 4, 1], name='placeholder') +# output = tf.nn.avg_pool(value, [1, 3, 3, 1], [1, 1, 1, 1], 'SAME', name='avgpool2d') +# tf.get_default_graph().as_graph_def() +# +# NOTE 1. The output shape is 1x4x4x1 +# +# >>> tf.graph_util.tensor_shape_from_node_def_name(tf.get_default_graph(), 'avgpool2d') +# TensorShape([Dimension(1), Dimension(4), Dimension(4), Dimension(1)]) +# +# NOTE 2. Almost all the AvgPool nodes in inception v3 2018.04.27 use this configuration. +# +# The only exception is "InceptionV3/Logits/AvgPool_1a_8x8/AvgPool" which performs global average pooling. +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 4 } + dim { size: 4 } + dim { size: 1 } + } + } + } +} +node { + name: "avgpool2d" + op: "AvgPool" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 3 i: 3 i: 1 } + } + } + attr { + key: "padding" + value { s: "SAME" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0019/test.info b/res/TensorFlowTests/NET_0019/test.info new file mode 100644 index 000000000..908883475 --- /dev/null +++ b/res/TensorFlowTests/NET_0019/test.info @@ -0,0 +1,2 @@ +input, ifm:0, TF_FLOAT, [1, 7, 7, 4] +output, ofm:0, TF_FLOAT, [1, 3, 3, 6] diff --git a/res/TensorFlowTests/NET_0019/test.pbtxt b/res/TensorFlowTests/NET_0019/test.pbtxt new file mode 100644 index 000000000..076f4f619 --- /dev/null +++ b/res/TensorFlowTests/NET_0019/test.pbtxt @@ -0,0 +1,89 @@ +# HOW TO GENERATE: +# +# import tensorflow as tf +# I = 4 +# O = 6 +# ifm = tf.placeholder(dtype=tf.float32, shape=[1, 7, 7, I], name='ifm') +# ker = tf.constant(dtype=tf.float32, shape=[3, 3, I, O], name='ker', value=1.1) +# ofm = tf.nn.conv2d(input=ifm, filter=ker, strides=[1, 2, 2, 1], padding='VALID', name='ofm') +# tf.get_default_graph().as_graph_def() +# +# NOTE 1. The output shape is 1x3x3x6 +# +# >>> tf.graph_util.tensor_shape_from_node_def_name(tf.get_default_graph(), 'ofm') +# TensorShape([Dimension(1), Dimension(3), Dimension(3), Dimension(6)]) +# +# NOTE 2. This test corresponds to "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" node +# +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 7 } + dim { size: 7 } + dim { size: 4 } + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 3 } + dim { size: 3 } + dim { size: 4 } + dim { size: 6 } + } + float_val: 1.1 + } + } + } +} +node { + name: "ofm" + op: "Conv2D" + input: "ifm" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 2 i: 2 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0020/test.info b/res/TensorFlowTests/NET_0020/test.info new file mode 100644 index 000000000..d3ea85a10 --- /dev/null +++ b/res/TensorFlowTests/NET_0020/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [2, 1, 1, 3] +output, reshape_2:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/NET_0020/test.pbtxt b/res/TensorFlowTests/NET_0020/test.pbtxt new file mode 100644 index 000000000..efd18d132 --- /dev/null +++ b/res/TensorFlowTests/NET_0020/test.pbtxt @@ -0,0 +1,112 @@ +# The Epilogue, or endmost part of inception v3 comprised of Squeeze, +# Reshape, Shape and Softmax +# +# Only difference from original is input shape: +# - original has unknown batch and 1001 channels [?, 1, 1, 1001] +# - this test has 2 batches and 3 channels [2, 1, 1, 3] + +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 2 } + dim { size: 1 } + dim { size: 1 } + dim { size: 3 } + } + } + } +} +node { + name: "squeeze" + op: "Squeeze" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "squeeze_dims" + value { + list { i: 1 i: 2 } + } + } +} +node { + name: "Reshape/shape" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { size: 2 } + } + int_val: -1 + int_val: 3 + } + } + } +} +node { + name: "reshape_1" + op: "Reshape" + input: "squeeze" + input: "Reshape/shape" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tshape" + value { type: DT_INT32 } + } +} +node { + name: "softmax" + op: "Softmax" + input: "reshape_1" + attr { + key: "T" + value { type: DT_FLOAT } + } +} +node { + name: "shape" + op: "Shape" + input: "squeeze" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "out_type" + value { type: DT_INT32 } + } +} +node { + name: "reshape_2" + op: "Reshape" + input: "softmax" + input: "shape" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tshape" + value { type: DT_INT32 } + } +} diff --git a/res/TensorFlowTests/NET_0021/test.info b/res/TensorFlowTests/NET_0021/test.info new file mode 100644 index 000000000..059b21cca --- /dev/null +++ b/res/TensorFlowTests/NET_0021/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 7, 7, 1] +output, maxpool2d:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/NET_0021/test.pbtxt b/res/TensorFlowTests/NET_0021/test.pbtxt new file mode 100644 index 000000000..b1eadccd9 --- /dev/null +++ b/res/TensorFlowTests/NET_0021/test.pbtxt @@ -0,0 +1,65 @@ +# HOW TO GENERATE: +# +# import tensorflow as tf +# value = tf.placeholder(dtype=tf.float32, shape=[1, 7, 7, 1], name='placeholder') +# output = tf.nn.max_pool(value, [1, 3, 3, 1], [1, 2, 2, 1], 'VALID', name='maxpool2d') +# tf.get_default_graph().as_graph_def() +# +# NOTE 1. The output shape is 1x3x3x1 +# +# >>> tf.graph_util.tensor_shape_from_node_def_name(tf.get_default_graph(), 'maxpool2d') +# TensorShape([Dimension(1), Dimension(3), Dimension(3), Dimension(1)]) +# +# NOTE 2. All the MaxPool nodes in inception v3 2018.04.27 use this configuration. +# - InceptionV3/InceptionV3/MaxPool_3a_3x3/MaxPool +# - InceptionV3/InceptionV3/MaxPool_5a_3x3/MaxPool +# - InceptionV3/InceptionV3/Mixed_6a/Branch_2/MaxPool_1a_3x3/MaxPool +# - InceptionV3/InceptionV3/Mixed_7a/Branch_2/MaxPool_1a_3x3/MaxPool +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 7 } + dim { size: 7 } + dim { size: 1 } + } + } + } +} +node { + name: "maxpool2d" + op: "MaxPool" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 3 i: 3 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 2 i: 2 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/NET_0022/test.info b/res/TensorFlowTests/NET_0022/test.info new file mode 100644 index 000000000..89c33ee9c --- /dev/null +++ b/res/TensorFlowTests/NET_0022/test.info @@ -0,0 +1,5 @@ +# this has two inputs and two outputs. Let's make our code to handle multiple inputs and outputs. +input, input_1:0, TF_FLOAT, [2, 2] +input, input_2:0, TF_FLOAT, [2, 2] +output, output_1:0, TF_FLOAT, [2, 2] +output, output_2:0, TF_FLOAT, [2, 2] diff --git a/res/TensorFlowTests/NET_0022/test.pbtxt b/res/TensorFlowTests/NET_0022/test.pbtxt new file mode 100644 index 000000000..c8879e84f --- /dev/null +++ b/res/TensorFlowTests/NET_0022/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_1" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "input_2" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output_1" + op: "Add" + input: "input_1" + input: "input_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "output_2" + op: "Add" + input: "input_1" + input: "input_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0023/test.info b/res/TensorFlowTests/NET_0023/test.info new file mode 100644 index 000000000..856de94d4 --- /dev/null +++ b/res/TensorFlowTests/NET_0023/test.info @@ -0,0 +1,2 @@ +# this has no input +output, out:0, TF_FLOAT, [2, 2] diff --git a/res/TensorFlowTests/NET_0023/test.pbtxt b/res/TensorFlowTests/NET_0023/test.pbtxt new file mode 100644 index 000000000..2ef5a0b99 --- /dev/null +++ b/res/TensorFlowTests/NET_0023/test.pbtxt @@ -0,0 +1,72 @@ +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + } + float_val: 1 + float_val: 2 + float_val: 3 + float_val: 4 + } + } + } +} +node { + name: "Const_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + } + float_val: 1 + float_val: 2 + float_val: 3 + float_val: 4 + } + } + } +} +node { + name: "out" + op: "Add" + input: "Const" + input: "Const_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0024/test.info b/res/TensorFlowTests/NET_0024/test.info new file mode 100644 index 000000000..f049f9d43 --- /dev/null +++ b/res/TensorFlowTests/NET_0024/test.info @@ -0,0 +1,3 @@ +input, fst:0, TF_FLOAT, [1, 6, 1, 1] +input, snd:0, TF_FLOAT, [1, 3, 1, 1] +output, out:0, TF_FLOAT, [1, 9, 1, 1] diff --git a/res/TensorFlowTests/NET_0024/test.pbtxt b/res/TensorFlowTests/NET_0024/test.pbtxt new file mode 100644 index 000000000..ee3f99dd9 --- /dev/null +++ b/res/TensorFlowTests/NET_0024/test.pbtxt @@ -0,0 +1,76 @@ +# This example intentionally declares "snd" node before "fst" node +node { + name: "snd" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 3 } + dim { size: 1 } + dim { size: 1 } + } + } + } +} +node { + name: "fst" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 6 } + dim { size: 1 } + dim { size: 1 } + } + } + } +} +node { + name: "axis" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { } + int_val: 1 + } + } + } +} +node { + name: "out" + op: "ConcatV2" + input: "fst" + input: "snd" + input: "axis" + attr { + key: "N" + value { i: 2 } + } + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } +} diff --git a/res/TensorFlowTests/NET_0025/circle_1.0_rel_requirement.rule b/res/TensorFlowTests/NET_0025/circle_1.0_rel_requirement.rule new file mode 100644 index 000000000..fc3f7af80 --- /dev/null +++ b/res/TensorFlowTests/NET_0025/circle_1.0_rel_requirement.rule @@ -0,0 +1,8 @@ +# tf2circle-dredd-pbtxt-test against CBR fusion + +RULE "VERIFY_FILE_FORMAT" $(verify_file_format) '=' 1 # 1 means verification is OK + +RULE "ALL_OP_COUNT" $(all_op_count) '=' 1 +RULE "OP_COUNT_CONV2D" $(op_count CONV_2D) '=' 1 +RULE "WEIGHT_CONST" $(conv2d_weight_not_constant) '=' 0 +RULE "FILE_SIZE" $(file_size) '<' 1040 # As of 191105, file size is 1016 diff --git a/res/TensorFlowTests/NET_0025/test.info b/res/TensorFlowTests/NET_0025/test.info new file mode 100644 index 000000000..6c5eafde7 --- /dev/null +++ b/res/TensorFlowTests/NET_0025/test.info @@ -0,0 +1,3 @@ +# This is a slim version of first 4 nodes in inception v3 (from Placeholder to the first RelU) +input, input:0, TF_FLOAT, [1, 5, 5, 3] +output, InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/NET_0025/test.manifest b/res/TensorFlowTests/NET_0025/test.manifest new file mode 100644 index 000000000..99a2c81a0 --- /dev/null +++ b/res/TensorFlowTests/NET_0025/test.manifest @@ -0,0 +1 @@ +SUMMARY: Simple CBR(Conv2D + BiasAdd + ReLU) network diff --git a/res/TensorFlowTests/NET_0025/test.pbtxt b/res/TensorFlowTests/NET_0025/test.pbtxt new file mode 100644 index 000000000..e927864d8 --- /dev/null +++ b/res/TensorFlowTests/NET_0025/test.pbtxt @@ -0,0 +1,161 @@ +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 5 + } + dim { + size: 5 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + op: "Conv2D" + input: "input:0" + input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/BatchNorm/FusedBatchNorm" + op: "BiasAdd" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu" + op: "Relu" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/BatchNorm/FusedBatchNorm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0025/tflite_1.0_rel_requirement.rule b/res/TensorFlowTests/NET_0025/tflite_1.0_rel_requirement.rule new file mode 100644 index 000000000..11296c7d9 --- /dev/null +++ b/res/TensorFlowTests/NET_0025/tflite_1.0_rel_requirement.rule @@ -0,0 +1,8 @@ +# tf2tflite-dredd-pbtxt-test against NET_0025, which is CBR(Conv2D + BiasAdd + ReLU) network +# how to write a RULE: +# RULE rule_name rule_function(actual value) condition expected_value + +RULE "ALL_OP_COUNT" $(all_op_count) '=' 1 +RULE "OP_COUNT_CONV2D" $(op_count CONV_2D) '=' 1 +RULE "WEIGHT_CONST" $(conv2d_weight_not_constant) '=' 0 +RULE "FILE_SIZE" $(file_size) '<' 1040 # As of 191105, file size is 1016 diff --git a/res/TensorFlowTests/NET_0026/test.info b/res/TensorFlowTests/NET_0026/test.info new file mode 100644 index 000000000..b96ff35b8 --- /dev/null +++ b/res/TensorFlowTests/NET_0026/test.info @@ -0,0 +1,3 @@ +# This is a slim version of first 7 nodes in inception v3 (from Placeholder to the second ReLU) +input, input:0, TF_FLOAT, [1, 9, 9, 3] +output, InceptionV3/InceptionV3/Conv2d_2a_3x3/Relu:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/NET_0026/test.pbtxt b/res/TensorFlowTests/NET_0026/test.pbtxt new file mode 100644 index 000000000..f579f3ef2 --- /dev/null +++ b/res/TensorFlowTests/NET_0026/test.pbtxt @@ -0,0 +1,293 @@ +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 9 + } + dim { + size: 9 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + op: "Conv2D" + input: "input:0" + input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/BatchNorm/FusedBatchNorm" + op: "BiasAdd" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu" + op: "Relu" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/BatchNorm/FusedBatchNorm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InceptionV3/Conv2d_2a_3x3/weights/read/_7__cf__7" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D" + op: "Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu" + input: "InceptionV3/Conv2d_2a_3x3/weights/read/_7__cf__7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D_bn_offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/BatchNorm/FusedBatchNorm" + op: "BiasAdd" + input: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D_bn_offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Relu" + op: "Relu" + input: "InceptionV3/InceptionV3/Conv2d_2a_3x3/BatchNorm/FusedBatchNorm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0027/test.info b/res/TensorFlowTests/NET_0027/test.info new file mode 100644 index 000000000..db97c4603 --- /dev/null +++ b/res/TensorFlowTests/NET_0027/test.info @@ -0,0 +1,3 @@ +# This is a slim version of first 10 nodes in inception v3 (from Placeholder to MaxPool2D) +input, input:0, TF_FLOAT, [1, 15, 15, 3] +output, InceptionV3/InceptionV3/MaxPool_3a_3x3/MaxPool:0, TF_FLOAT, [1, 2, 2, 5] diff --git a/res/TensorFlowTests/NET_0027/test.pbtxt b/res/TensorFlowTests/NET_0027/test.pbtxt new file mode 100644 index 000000000..95780969b --- /dev/null +++ b/res/TensorFlowTests/NET_0027/test.pbtxt @@ -0,0 +1,470 @@ +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 15 + } + dim { + size: 15 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + op: "Conv2D" + input: "input:0" + input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/BatchNorm/FusedBatchNorm" + op: "BiasAdd" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu" + op: "Relu" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/BatchNorm/FusedBatchNorm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InceptionV3/Conv2d_2a_3x3/weights/read/_7__cf__7" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D" + op: "Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu" + input: "InceptionV3/Conv2d_2a_3x3/weights/read/_7__cf__7" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D_bn_offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/BatchNorm/FusedBatchNorm" + op: "BiasAdd" + input: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Conv2D_bn_offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Relu" + op: "Relu" + input: "InceptionV3/InceptionV3/Conv2d_2a_3x3/BatchNorm/FusedBatchNorm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2b_3x3/Conv2D" + op: "Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_2a_3x3/Relu" + input: "InceptionV3/Conv2d_2b_3x3/weights/read/_11__cf__11" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "InceptionV3/Conv2d_2b_3x3/weights/read/_11__cf__11" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + dim { + size: 5 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2b_3x3/Conv2D_bn_offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2b_3x3/BatchNorm/FusedBatchNorm" + op: "BiasAdd" + input: "InceptionV3/InceptionV3/Conv2d_2b_3x3/Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_2b_3x3/Conv2D_bn_offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_2b_3x3/Relu" + op: "Relu" + input: "InceptionV3/InceptionV3/Conv2d_2b_3x3/BatchNorm/FusedBatchNorm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InceptionV3/InceptionV3/MaxPool_3a_3x3/MaxPool" + op: "MaxPool" + input: "InceptionV3/InceptionV3/Conv2d_2b_3x3/Relu" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "ksize" + value { + list { + i: 1 + i: 3 + i: 3 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/NET_0028/circle_1.0_rel_requirement.rule b/res/TensorFlowTests/NET_0028/circle_1.0_rel_requirement.rule new file mode 100644 index 000000000..30185e2b3 --- /dev/null +++ b/res/TensorFlowTests/NET_0028/circle_1.0_rel_requirement.rule @@ -0,0 +1,6 @@ +# tf2circle-dredd-pbtxt-test against Instance Norm fusion + +RULE "VERIFY_FILE_FORMAT" $(verify_file_format) '=' 1 # 1 means verification is OK + +RULE "ALL_OP_COUNT" $(all_op_count) '=' 1 +RULE "OP_COUNT_INSTANCE_NORM" $(op_count INSTANCE_NORM) '=' 1 diff --git a/res/TensorFlowTests/NET_0028/test.info b/res/TensorFlowTests/NET_0028/test.info new file mode 100644 index 000000000..d09ce02da --- /dev/null +++ b/res/TensorFlowTests/NET_0028/test.info @@ -0,0 +1,3 @@ +# This is a slim version of Instance Normalizartion +input, Input:0, TF_FLOAT, [1, 8, 6, 12] +output, Relu:0, TF_FLOAT, [1, 8, 6, 12] diff --git a/res/TensorFlowTests/NET_0028/test.manifest b/res/TensorFlowTests/NET_0028/test.manifest new file mode 100644 index 000000000..64ca19d07 --- /dev/null +++ b/res/TensorFlowTests/NET_0028/test.manifest @@ -0,0 +1 @@ +SUMMARY: tf.contrib.layers.instance_norm diff --git a/res/TensorFlowTests/NET_0028/test.pbtxt b/res/TensorFlowTests/NET_0028/test.pbtxt new file mode 100644 index 000000000..48a5bccd3 --- /dev/null +++ b/res/TensorFlowTests/NET_0028/test.pbtxt @@ -0,0 +1,373 @@ +node { + name: "Input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 6 + } + dim { + size: 12 + } + } + } + } +} +node { + name: "InstanceNorm/beta" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 12 + } + } + float_val: 1.97139931 + float_val: 1.45169675 + float_val: 1.2031461 + float_val: 0.287978739 + float_val: 0.161815107 + float_val: -0.281398058 + float_val: 2.70276475 + float_val: -0.166961521 + float_val: 0.266388983 + float_val: 0.890943348 + float_val: -0.279832929 + float_val: 1.82808423 + } + } + } +} +node { + name: "InstanceNorm/beta/read" + op: "Identity" + input: "InstanceNorm/beta" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@InstanceNorm/beta" + } + } + } +} +node { + name: "InstanceNorm/gamma" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 12 + } + } + float_val: 0.574708045 + float_val: 0.387735426 + float_val: 0.899499536 + float_val: 0.484296113 + float_val: 2.35850787 + float_val: 1.06661248 + float_val: 0.343602151 + float_val: 2.27582788 + float_val: 1.14559281 + float_val: 0.690169275 + float_val: 1.20440173 + float_val: 0.350952208 + } + } + } +} +node { + name: "InstanceNorm/gamma/read" + op: "Identity" + input: "InstanceNorm/gamma" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "_class" + value { + list { + s: "loc:@InstanceNorm/gamma" + } + } + } +} +node { + name: "InstanceNorm/moments/mean/reduction_indices" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + int_val: 1 + int_val: 2 + } + } + } +} +node { + name: "InstanceNorm/moments/mean" + op: "Mean" + input: "Input" + input: "InstanceNorm/moments/mean/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "InstanceNorm/moments/StopGradient" + op: "StopGradient" + input: "InstanceNorm/moments/mean" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/moments/SquaredDifference" + op: "SquaredDifference" + input: "Input" + input: "InstanceNorm/moments/StopGradient" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/moments/variance/reduction_indices" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + int_val: 1 + int_val: 2 + } + } + } +} +node { + name: "InstanceNorm/moments/variance" + op: "Mean" + input: "InstanceNorm/moments/SquaredDifference" + input: "InstanceNorm/moments/variance/reduction_indices" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } + attr { + key: "keep_dims" + value { + b: true + } + } +} +node { + name: "InstanceNorm/instancenorm/add/y" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0.001 + } + } + } +} +node { + name: "InstanceNorm/instancenorm/add" + op: "Add" + input: "InstanceNorm/moments/variance" + input: "InstanceNorm/instancenorm/add/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/instancenorm/Rsqrt" + op: "Rsqrt" + input: "InstanceNorm/instancenorm/add" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/instancenorm/mul" + op: "Mul" + input: "InstanceNorm/instancenorm/Rsqrt" + input: "InstanceNorm/gamma/read" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/instancenorm/mul_1" + op: "Mul" + input: "Input" + input: "InstanceNorm/instancenorm/mul" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/instancenorm/mul_2" + op: "Mul" + input: "InstanceNorm/moments/mean" + input: "InstanceNorm/instancenorm/mul" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/instancenorm/sub" + op: "Sub" + input: "InstanceNorm/beta/read" + input: "InstanceNorm/instancenorm/mul_2" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "InstanceNorm/instancenorm/add_1" + op: "Add" + input: "InstanceNorm/instancenorm/mul_1" + input: "InstanceNorm/instancenorm/sub" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "Relu" + op: "Relu" + input: "InstanceNorm/instancenorm/add_1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0029/test.info b/res/TensorFlowTests/NET_0029/test.info new file mode 100644 index 000000000..9b3bf7d26 --- /dev/null +++ b/res/TensorFlowTests/NET_0029/test.info @@ -0,0 +1,5 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_1:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_2:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_3:0, TF_FLOAT, [1, 2, 3, 1] +output, concat_2:0, TF_FLOAT, [1, 2, 3, 4] diff --git a/res/TensorFlowTests/NET_0029/test.manifest b/res/TensorFlowTests/NET_0029/test.manifest new file mode 100644 index 000000000..33c689b98 --- /dev/null +++ b/res/TensorFlowTests/NET_0029/test.manifest @@ -0,0 +1 @@ +SUMMARY: Multiple concats only with same axes, which are consisted only with 2 inputs diff --git a/res/TensorFlowTests/NET_0029/test.pbtxt b/res/TensorFlowTests/NET_0029/test.pbtxt new file mode 100644 index 000000000..22d86d07a --- /dev/null +++ b/res/TensorFlowTests/NET_0029/test.pbtxt @@ -0,0 +1,254 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_1" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_2" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_3" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "concat/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat" + op: "ConcatV2" + input: "Placeholder" + input: "Placeholder_1" + input: "concat/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_1/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat_1" + op: "ConcatV2" + input: "concat" + input: "Placeholder_2" + input: "concat_1/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_2/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat_2" + op: "ConcatV2" + input: "concat_1" + input: "Placeholder_3" + input: "concat_2/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/NET_0030/circle_1.0_rel_requirement.rule b/res/TensorFlowTests/NET_0030/circle_1.0_rel_requirement.rule new file mode 100644 index 000000000..9f14051c3 --- /dev/null +++ b/res/TensorFlowTests/NET_0030/circle_1.0_rel_requirement.rule @@ -0,0 +1,7 @@ +# tf2circle-dredd-pbtxt-test against two Concat ops with same axis + +RULE "VERIFY_FILE_FORMAT" $(verify_file_format) '=' 1 # 1 means verification is OK + +RULE "ALL_OP_COUNT" $(all_op_count) '=' 1 +RULE "OP_COUNT_CONCATENATION" $(op_count CONCATENATION) '=' 1 +RULE "FILE_SIZE" $(file_size) '<=' 650 # real size is 616 as of 191105 diff --git a/res/TensorFlowTests/NET_0030/test.info b/res/TensorFlowTests/NET_0030/test.info new file mode 100644 index 000000000..09ae1ec6d --- /dev/null +++ b/res/TensorFlowTests/NET_0030/test.info @@ -0,0 +1,5 @@ +input, Placeholder:0, TF_FLOAT, [1, 1, 1, 1] +input, Placeholder_1:0, TF_FLOAT, [1, 1, 1, 2] +input, Placeholder_2:0, TF_FLOAT, [1, 1, 1, 3] +input, Placeholder_3:0, TF_FLOAT, [1, 1, 1, 4] +output, concat_1:0, TF_FLOAT, [1, 1, 1, 10] diff --git a/res/TensorFlowTests/NET_0030/test.manifest b/res/TensorFlowTests/NET_0030/test.manifest new file mode 100644 index 000000000..b0496d787 --- /dev/null +++ b/res/TensorFlowTests/NET_0030/test.manifest @@ -0,0 +1 @@ +SUMMARY: Multiple concats only with same axes, which are consisted with more than 2 inputs diff --git a/res/TensorFlowTests/NET_0030/test.pbtxt b/res/TensorFlowTests/NET_0030/test.pbtxt new file mode 100644 index 000000000..270920d9d --- /dev/null +++ b/res/TensorFlowTests/NET_0030/test.pbtxt @@ -0,0 +1,209 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_1" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "Placeholder_2" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Placeholder_3" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 4 + } + } + } + } +} +node { + name: "concat/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat" + op: "ConcatV2" + input: "Placeholder_1" + input: "Placeholder_2" + input: "concat/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_1/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat_1" + op: "ConcatV2" + input: "Placeholder" + input: "concat" + input: "Placeholder_3" + input: "concat_1/axis" + attr { + key: "N" + value { + i: 3 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/NET_0031/test.info b/res/TensorFlowTests/NET_0031/test.info new file mode 100644 index 000000000..9c2d6364a --- /dev/null +++ b/res/TensorFlowTests/NET_0031/test.info @@ -0,0 +1,6 @@ +input, Placeholder:0, TF_FLOAT, [1, 1, 1, 1] +input, Placeholder_1:0, TF_FLOAT, [1, 1, 1, 1] +input, Placeholder_2:0, TF_FLOAT, [1, 1, 2, 1] +input, Placeholder_3:0, TF_FLOAT, [1, 1, 2, 2] +input, Placeholder_4:0, TF_FLOAT, [1, 1, 2, 4] +output, concat_3:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/NET_0031/test.manifest b/res/TensorFlowTests/NET_0031/test.manifest new file mode 100644 index 000000000..0bb09e5c1 --- /dev/null +++ b/res/TensorFlowTests/NET_0031/test.manifest @@ -0,0 +1 @@ +SUMMARY: Multiple concats with different axes. Concats with same axes are non-terminal but possible to merge diff --git a/res/TensorFlowTests/NET_0031/test.pbtxt b/res/TensorFlowTests/NET_0031/test.pbtxt new file mode 100644 index 000000000..6c152ea5c --- /dev/null +++ b/res/TensorFlowTests/NET_0031/test.pbtxt @@ -0,0 +1,329 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_1" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_2" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_3" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "Placeholder_4" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 4 + } + } + } + } +} +node { + name: "concat/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "concat" + op: "ConcatV2" + input: "Placeholder" + input: "Placeholder_1" + input: "concat/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_1/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat_1" + op: "ConcatV2" + input: "concat" + input: "Placeholder_2" + input: "concat_1/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_2/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat_2" + op: "ConcatV2" + input: "concat_1" + input: "Placeholder_3" + input: "concat_2/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_3/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "concat_3" + op: "ConcatV2" + input: "concat_2" + input: "Placeholder_4" + input: "concat_3/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/NET_0032/test.info b/res/TensorFlowTests/NET_0032/test.info new file mode 100644 index 000000000..d0f91d107 --- /dev/null +++ b/res/TensorFlowTests/NET_0032/test.info @@ -0,0 +1,7 @@ +# The number of final concat nodes should be 3 +input, Placeholder:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_1:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_2:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_3:0, TF_FLOAT, [1, 1, 3, 3] +input, Placeholder_4:0, TF_FLOAT, [1, 1, 3, 3] +output, concat_3:0, TF_FLOAT, [1, 2, 6, 3] diff --git a/res/TensorFlowTests/NET_0032/test.manifest b/res/TensorFlowTests/NET_0032/test.manifest new file mode 100644 index 000000000..714581b0c --- /dev/null +++ b/res/TensorFlowTests/NET_0032/test.manifest @@ -0,0 +1 @@ +SUMMARY: Multiple concats with different axes. Concats with same axes are terminal and possible to merge diff --git a/res/TensorFlowTests/NET_0032/test.pbtxt b/res/TensorFlowTests/NET_0032/test.pbtxt new file mode 100644 index 000000000..2ef2c587e --- /dev/null +++ b/res/TensorFlowTests/NET_0032/test.pbtxt @@ -0,0 +1,329 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_1" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_2" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_3" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Placeholder_4" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "concat/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat" + op: "ConcatV2" + input: "Placeholder" + input: "Placeholder_1" + input: "concat/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_1/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat_1" + op: "ConcatV2" + input: "concat" + input: "Placeholder_2" + input: "concat_1/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_2/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "concat_2" + op: "ConcatV2" + input: "Placeholder_4" + input: "Placeholder_3" + input: "concat_2/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_3/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "concat_3" + op: "ConcatV2" + input: "concat_1" + input: "concat_2" + input: "concat_3/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/NET_0033/test.info b/res/TensorFlowTests/NET_0033/test.info new file mode 100644 index 000000000..30a242554 --- /dev/null +++ b/res/TensorFlowTests/NET_0033/test.info @@ -0,0 +1,7 @@ +# The number of final concat node should be 3 +input, Placeholder:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_1:0, TF_FLOAT, [1, 2, 3, 1] +input, Placeholder_2:0, TF_FLOAT, [1, 2, 3, 2] +input, Placeholder_3:0, TF_FLOAT, [1, 2, 3, 2] +input, Placeholder_4:0, TF_FLOAT, [1, 2, 3, 2] +output, concat_3:0, TF_FLOAT, [1, 4, 6, 2] diff --git a/res/TensorFlowTests/NET_0033/test.manifest b/res/TensorFlowTests/NET_0033/test.manifest new file mode 100644 index 000000000..0c1ddcd4b --- /dev/null +++ b/res/TensorFlowTests/NET_0033/test.manifest @@ -0,0 +1 @@ +SUMMARY: Multiple concats with different axes. Concats with same axes are non-terminal and not possible to merge diff --git a/res/TensorFlowTests/NET_0033/test.pbtxt b/res/TensorFlowTests/NET_0033/test.pbtxt new file mode 100644 index 000000000..c43940f0b --- /dev/null +++ b/res/TensorFlowTests/NET_0033/test.pbtxt @@ -0,0 +1,329 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_1" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "Placeholder_2" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "Placeholder_3" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "Placeholder_4" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "concat/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 3 + } + } + } +} +node { + name: "concat" + op: "ConcatV2" + input: "Placeholder" + input: "Placeholder_1" + input: "concat/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_1/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "concat_1" + op: "ConcatV2" + input: "concat" + input: "Placeholder_2" + input: "concat_1/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_2/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 1 + } + } + } +} +node { + name: "concat_2" + op: "ConcatV2" + input: "Placeholder_4" + input: "Placeholder_3" + input: "concat_2/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} +node { + name: "concat_3/axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 2 + } + } + } +} +node { + name: "concat_3" + op: "ConcatV2" + input: "concat_1" + input: "concat_2" + input: "concat_3/axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/NET_0034/test.info b/res/TensorFlowTests/NET_0034/test.info new file mode 100644 index 000000000..c3c5e2c7b --- /dev/null +++ b/res/TensorFlowTests/NET_0034/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5] +output, Sub:0, TF_FLOAT, [1, 3, 3, 2] diff --git a/res/TensorFlowTests/NET_0034/test.manifest b/res/TensorFlowTests/NET_0034/test.manifest new file mode 100644 index 000000000..3a49e0442 --- /dev/null +++ b/res/TensorFlowTests/NET_0034/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network that has "Conv2D" + "Sub" diff --git a/res/TensorFlowTests/NET_0034/test.pbtxt b/res/TensorFlowTests/NET_0034/test.pbtxt new file mode 100644 index 000000000..fec15368b --- /dev/null +++ b/res/TensorFlowTests/NET_0034/test.pbtxt @@ -0,0 +1,144 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "weights" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + dim { + size: 5 + } + dim { + size: 2 + } + } + float_val: 1.100000023841858 + } + } + } +} +node { + name: "Conv2D" + op: "Conv2D" + input: "Placeholder" + input: "weights" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +node { + name: "subparam" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + } + float_val: 2.0 + } + } + } +} +node { + name: "Sub" + op: "Sub" + input: "Conv2D" + input: "subparam" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0035/test.info b/res/TensorFlowTests/NET_0035/test.info new file mode 100644 index 000000000..67e44af48 --- /dev/null +++ b/res/TensorFlowTests/NET_0035/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 5, 5, 3] +output, out:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/NET_0035/test.manifest b/res/TensorFlowTests/NET_0035/test.manifest new file mode 100644 index 000000000..f9578c878 --- /dev/null +++ b/res/TensorFlowTests/NET_0035/test.manifest @@ -0,0 +1 @@ +SUMMARY: Conv2D + BiasAdd + ReLU6 network diff --git a/res/TensorFlowTests/NET_0035/test.pbtxt b/res/TensorFlowTests/NET_0035/test.pbtxt new file mode 100644 index 000000000..ae4913628 --- /dev/null +++ b/res/TensorFlowTests/NET_0035/test.pbtxt @@ -0,0 +1,161 @@ +node { + name: "kernel" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 5 + } + dim { + size: 5 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "conv2d" + op: "Conv2D" + input: "input:0" + input: "kernel" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} +node { + name: "bias" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "biasadd" + op: "BiasAdd" + input: "conv2d" + input: "bias" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} +node { + name: "out" + op: "Relu6" + input: "biasadd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0036/test.info b/res/TensorFlowTests/NET_0036/test.info new file mode 100644 index 000000000..42e88c141 --- /dev/null +++ b/res/TensorFlowTests/NET_0036/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 5, 5, 3] +output, relu:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/NET_0036/test.manifest b/res/TensorFlowTests/NET_0036/test.manifest new file mode 100644 index 000000000..820ab402b --- /dev/null +++ b/res/TensorFlowTests/NET_0036/test.manifest @@ -0,0 +1 @@ +SUMMARY: Conv2D + Add + ReLU where Add's Const operand is a scalar (size 1 tensor) diff --git a/res/TensorFlowTests/NET_0036/test.pbtxt b/res/TensorFlowTests/NET_0036/test.pbtxt new file mode 100644 index 000000000..3c9cdecd5 --- /dev/null +++ b/res/TensorFlowTests/NET_0036/test.pbtxt @@ -0,0 +1,146 @@ +# Conv2D and its inputs are borrowed from NET_0025. +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 5 + } + dim { + size: 5 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + op: "Conv2D" + input: "input:0" + input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} +node { + name: "add_const" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { dim { size: 1 } } + float_val: 1.0 + } + } + } +} +node { + name: "add" + op: "Add" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + input: "add_const" + attr { + key: "T" + value { type: DT_FLOAT } + } +} +node { + name: "relu" + op: "Relu" + input: "add" + attr { + key: "T" + value { type: DT_FLOAT } + } +} diff --git a/res/TensorFlowTests/NET_0037/test.info b/res/TensorFlowTests/NET_0037/test.info new file mode 100644 index 000000000..42e88c141 --- /dev/null +++ b/res/TensorFlowTests/NET_0037/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 5, 5, 3] +output, relu:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/NET_0037/test.manifest b/res/TensorFlowTests/NET_0037/test.manifest new file mode 100644 index 000000000..b82ccb623 --- /dev/null +++ b/res/TensorFlowTests/NET_0037/test.manifest @@ -0,0 +1 @@ +SUMMARY: Conv2D + ReLU + Add diff --git a/res/TensorFlowTests/NET_0037/test.pbtxt b/res/TensorFlowTests/NET_0037/test.pbtxt new file mode 100644 index 000000000..674366fa6 --- /dev/null +++ b/res/TensorFlowTests/NET_0037/test.pbtxt @@ -0,0 +1,146 @@ +# Conv2D and its inputs are borrowed from NET_0025. +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 5 + } + dim { + size: 5 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + op: "Conv2D" + input: "input:0" + input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + attr { + key: "T" + value { type: DT_FLOAT } + } +} +node { + name: "add_const" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { dim { size: 1 } } + float_val: 1.0 + } + } + } +} +node { + name: "add" + op: "Add" + input: "relu" + input: "add_const" + attr { + key: "T" + value { type: DT_FLOAT } + } +} diff --git a/res/TensorFlowTests/NET_0038/test.info b/res/TensorFlowTests/NET_0038/test.info new file mode 100644 index 000000000..099f3d613 --- /dev/null +++ b/res/TensorFlowTests/NET_0038/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 11, 7, 3] +output, output/relu:0, TF_FLOAT, [1, 6, 4, 12] diff --git a/res/TensorFlowTests/NET_0038/test.manifest b/res/TensorFlowTests/NET_0038/test.manifest new file mode 100644 index 000000000..929125e7e --- /dev/null +++ b/res/TensorFlowTests/NET_0038/test.manifest @@ -0,0 +1 @@ +SUMMARY: DepthwiseConv2D + Relu diff --git a/res/TensorFlowTests/NET_0038/test.pbtxt b/res/TensorFlowTests/NET_0038/test.pbtxt new file mode 100644 index 000000000..b71e58f75 --- /dev/null +++ b/res/TensorFlowTests/NET_0038/test.pbtxt @@ -0,0 +1,121 @@ +# DepthwiseConv2dNative node is borrowed from UNIT_DepthwiseConv2dNative_000. +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 11 + } + dim { + size: 7 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "DepthwiseConv2dNative" + op: "DepthwiseConv2dNative" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} + +node { + name: "output/relu" + op: "Relu" + input: "DepthwiseConv2dNative" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0039/test.info b/res/TensorFlowTests/NET_0039/test.info new file mode 100644 index 000000000..73c44638d --- /dev/null +++ b/res/TensorFlowTests/NET_0039/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 11, 7, 3] +output, add:0, TF_FLOAT, [1, 6, 4, 12] diff --git a/res/TensorFlowTests/NET_0039/test.manifest b/res/TensorFlowTests/NET_0039/test.manifest new file mode 100644 index 000000000..783207476 --- /dev/null +++ b/res/TensorFlowTests/NET_0039/test.manifest @@ -0,0 +1 @@ +SUMMARY: DepthwiseConv2D + Add diff --git a/res/TensorFlowTests/NET_0039/test.pbtxt b/res/TensorFlowTests/NET_0039/test.pbtxt new file mode 100644 index 000000000..25f459943 --- /dev/null +++ b/res/TensorFlowTests/NET_0039/test.pbtxt @@ -0,0 +1,146 @@ +# DepthwiseConv2dNative node is borrowed from UNIT_DepthwiseConv2dNative_000. +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 11 + } + dim { + size: 7 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "DepthwiseConv2dNative" + op: "DepthwiseConv2dNative" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} + +node { + name: "add_const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 12 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "add" + op: "Add" + input: "DepthwiseConv2dNative" + input: "add_const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0040/test.info b/res/TensorFlowTests/NET_0040/test.info new file mode 100644 index 000000000..099f3d613 --- /dev/null +++ b/res/TensorFlowTests/NET_0040/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 11, 7, 3] +output, output/relu:0, TF_FLOAT, [1, 6, 4, 12] diff --git a/res/TensorFlowTests/NET_0040/test.manifest b/res/TensorFlowTests/NET_0040/test.manifest new file mode 100644 index 000000000..86bbc60c8 --- /dev/null +++ b/res/TensorFlowTests/NET_0040/test.manifest @@ -0,0 +1 @@ +SUMMARY: DepthwiseConv2D + BiasAdd + Relu diff --git a/res/TensorFlowTests/NET_0040/test.pbtxt b/res/TensorFlowTests/NET_0040/test.pbtxt new file mode 100644 index 000000000..b35f676cb --- /dev/null +++ b/res/TensorFlowTests/NET_0040/test.pbtxt @@ -0,0 +1,164 @@ +# DepthwiseConv2dNative node is borrowed from UNIT_DepthwiseConv2dNative_000. +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 11 + } + dim { + size: 7 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "DepthwiseConv2dNative" + op: "DepthwiseConv2dNative" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} + +node { + name: "bias_const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 12 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "biasadd" + op: "BiasAdd" + input: "DepthwiseConv2dNative" + input: "bias_const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} + +node { + name: "output/relu" + op: "Relu" + input: "biasadd" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0041/test.info b/res/TensorFlowTests/NET_0041/test.info new file mode 100644 index 000000000..099f3d613 --- /dev/null +++ b/res/TensorFlowTests/NET_0041/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 11, 7, 3] +output, output/relu:0, TF_FLOAT, [1, 6, 4, 12] diff --git a/res/TensorFlowTests/NET_0041/test.manifest b/res/TensorFlowTests/NET_0041/test.manifest new file mode 100644 index 000000000..0e9adb9f5 --- /dev/null +++ b/res/TensorFlowTests/NET_0041/test.manifest @@ -0,0 +1 @@ +SUMMARY: DepthwiseConv2D + Sub (scalar) + Relu diff --git a/res/TensorFlowTests/NET_0041/test.pbtxt b/res/TensorFlowTests/NET_0041/test.pbtxt new file mode 100644 index 000000000..a328417d9 --- /dev/null +++ b/res/TensorFlowTests/NET_0041/test.pbtxt @@ -0,0 +1,158 @@ +# DepthwiseConv2dNative node is borrowed from UNIT_DepthwiseConv2dNative_000. +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 11 + } + dim { + size: 7 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "DepthwiseConv2dNative" + op: "DepthwiseConv2dNative" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} + +node { + name: "sub_scalar_const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "sub" + op: "Sub" + input: "DepthwiseConv2dNative" + input: "sub_scalar_const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} + +node { + name: "output/relu" + op: "Relu" + input: "sub" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/NET_0042/test.info b/res/TensorFlowTests/NET_0042/test.info new file mode 100644 index 000000000..04b13ad8f --- /dev/null +++ b/res/TensorFlowTests/NET_0042/test.info @@ -0,0 +1 @@ +output, pack/stack:0, TF_FLOAT, [4] diff --git a/res/TensorFlowTests/NET_0042/test.manifest b/res/TensorFlowTests/NET_0042/test.manifest new file mode 100644 index 000000000..79dcdbe71 --- /dev/null +++ b/res/TensorFlowTests/NET_0042/test.manifest @@ -0,0 +1 @@ +SUMMARY: Small network that extracts second, third value of input vector with StridedSlice operator, doubles it and reconstruct it with Pack operator. diff --git a/res/TensorFlowTests/NET_0042/test.pbtxt b/res/TensorFlowTests/NET_0042/test.pbtxt new file mode 100644 index 000000000..033b09edc --- /dev/null +++ b/res/TensorFlowTests/NET_0042/test.pbtxt @@ -0,0 +1,572 @@ +node { + name: "Shape" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1 + float_val: 5 + float_val: 5 + float_val: 64 + } + } + } +} +node { + name: "stack" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 0 + } + } + } +} +node { + name: "stack_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "stack_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "strided_slice" + op: "StridedSlice" + input: "Shape" + input: "stack" + input: "stack_1" + input: "stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + 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: "strided_slice_1/stack" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "strided_slice_1/stack_1" + op: "Const" + 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: "strided_slice_1/stack_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "strided_slice_1" + op: "StridedSlice" + input: "Shape" + input: "strided_slice_1/stack" + input: "strided_slice_1/stack_1" + input: "strided_slice_1/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + 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: "strided_slice_2/stack" + op: "Const" + 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: "strided_slice_2/stack_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 3 + } + } + } +} +node { + name: "strided_slice_2/stack_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "strided_slice_2" + op: "StridedSlice" + input: "Shape" + input: "strided_slice_2/stack" + input: "strided_slice_2/stack_1" + input: "strided_slice_2/stack_2" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + 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: "mul/y" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 2 + } + } + } +} +node { + name: "mul" + op: "Mul" + input: "strided_slice_1" + input: "mul/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "add/y" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0 + } + } + } +} +node { + name: "add" + op: "Add" + input: "mul" + input: "add/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "mul_1/y" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 2 + } + } + } +} +node { + name: "mul_1" + op: "Mul" + input: "strided_slice_2" + input: "mul_1/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "add_1/y" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 0 + } + } + } +} +node { + name: "add_1" + op: "Add" + input: "mul_1" + input: "add_1/y" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "pack/stack/3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 64 + } + } + } +} +node { + name: "pack/stack" + op: "Pack" + input: "strided_slice" + input: "add" + input: "add_1" + input: "pack/stack/3" + attr { + key: "N" + value { + i: 4 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} diff --git a/res/TensorFlowTests/REGRESSION_0000/test.info b/res/TensorFlowTests/REGRESSION_0000/test.info new file mode 100644 index 000000000..1012f87e8 --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 3] +output, Add:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/REGRESSION_0000/test.pbtxt b/res/TensorFlowTests/REGRESSION_0000/test.pbtxt new file mode 100644 index 000000000..aa552ce65 --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0000/test.pbtxt @@ -0,0 +1,68 @@ +# Add network with Placeholder and Const as arguments +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1.1 + float_val: 2.2 + float_val: 3.3 + float_val: 4.4 + float_val: 5.5 + float_val: 6.6 + } + } + } +} +node { + name: "Add" + op: "Add" + input: "Placeholder" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/REGRESSION_0001/test.info b/res/TensorFlowTests/REGRESSION_0001/test.info new file mode 100644 index 000000000..76e76187c --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0001/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 3] +output, Add_2:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/REGRESSION_0001/test.manifest b/res/TensorFlowTests/REGRESSION_0001/test.manifest new file mode 100644 index 000000000..136452d3c --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0001/test.manifest @@ -0,0 +1 @@ +SUMMARY: Successive Broadcasted Add diff --git a/res/TensorFlowTests/REGRESSION_0001/test.pbtxt b/res/TensorFlowTests/REGRESSION_0001/test.pbtxt new file mode 100644 index 000000000..99d276c00 --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0001/test.pbtxt @@ -0,0 +1,59 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 2 } + dim { size: 3 } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 3 } + } + float_val: 1.1 + float_val: 2.2 + float_val: 3.3 + } + } + } +} +node { + name: "Add_1" + op: "Add" + input: "Placeholder" + input: "Const" + attr { + key: "T" + value { type: DT_FLOAT } + } +} +node { + name: "Add_2" + op: "Add" + input: "Add_1" + input: "Const" + attr { + key: "T" + value { type: DT_FLOAT } + } +} diff --git a/res/TensorFlowTests/REGRESSION_0002/test.info b/res/TensorFlowTests/REGRESSION_0002/test.info new file mode 100644 index 000000000..c3e16f6b2 --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0002/test.info @@ -0,0 +1,2 @@ +input, ifm:0, TF_FLOAT, [1, 5, 5, 3] +output, ofm:0, TF_FLOAT, [1, 4, 4, 2] diff --git a/res/TensorFlowTests/REGRESSION_0002/test.manifest b/res/TensorFlowTests/REGRESSION_0002/test.manifest new file mode 100644 index 000000000..55d2852ae --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0002/test.manifest @@ -0,0 +1 @@ +SUMMARY: Conv2d without dilation attribute is correct according documentation and should be compiled diff --git a/res/TensorFlowTests/REGRESSION_0002/test.pbtxt b/res/TensorFlowTests/REGRESSION_0002/test.pbtxt new file mode 100644 index 000000000..e5d60f855 --- /dev/null +++ b/res/TensorFlowTests/REGRESSION_0002/test.pbtxt @@ -0,0 +1,66 @@ +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 5 } + dim { size: 5 } + dim { size: 3 } + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } + dim { size: 2 } + dim { size: 3 } + dim { size: 2 } + } + float_val: 1.1 + } + } + } +} +node { + name: "ofm" + op: "Conv2D" + input: "ifm" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + 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 } + } + } +} diff --git a/res/TensorFlowTests/UI_0000/test.info b/res/TensorFlowTests/UI_0000/test.info new file mode 100644 index 000000000..2ce0c6d38 --- /dev/null +++ b/res/TensorFlowTests/UI_0000/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 5, 5, 3] +output, InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/UI_0000/test.manifest b/res/TensorFlowTests/UI_0000/test.manifest new file mode 100644 index 000000000..8e29c13ef --- /dev/null +++ b/res/TensorFlowTests/UI_0000/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong network (Kernel input of Conv2D is missing) to see error message diff --git a/res/TensorFlowTests/UI_0000/test.pbtxt b/res/TensorFlowTests/UI_0000/test.pbtxt new file mode 100644 index 000000000..f5539ee02 --- /dev/null +++ b/res/TensorFlowTests/UI_0000/test.pbtxt @@ -0,0 +1,112 @@ +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 5 + } + dim { + size: 5 + } + dim { + size: 3 + } + } + } + } +} + +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + op: "Conv2D" + input: "input:0" +# +# intentionally, commented out +# input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" +# + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UI_0001/test.info b/res/TensorFlowTests/UI_0001/test.info new file mode 100644 index 000000000..2ce0c6d38 --- /dev/null +++ b/res/TensorFlowTests/UI_0001/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 5, 5, 3] +output, InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/UI_0001/test.manifest b/res/TensorFlowTests/UI_0001/test.manifest new file mode 100644 index 000000000..4721034a0 --- /dev/null +++ b/res/TensorFlowTests/UI_0001/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong network : Cannot find a node whose name is used as an input of Conv2D diff --git a/res/TensorFlowTests/UI_0001/test.pbtxt b/res/TensorFlowTests/UI_0001/test.pbtxt new file mode 100644 index 000000000..167d7dcb9 --- /dev/null +++ b/res/TensorFlowTests/UI_0001/test.pbtxt @@ -0,0 +1,110 @@ +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 5 + } + dim { + size: 5 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + op: "Conv2D" +# error ----- +# "nowhere:0" does not exist + input: "nowhere:0" + input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UI_0002/test.info b/res/TensorFlowTests/UI_0002/test.info new file mode 100644 index 000000000..2ce0c6d38 --- /dev/null +++ b/res/TensorFlowTests/UI_0002/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 5, 5, 3] +output, InceptionV3/InceptionV3/Conv2d_1a_3x3/Relu:0, TF_FLOAT, [1, 2, 2, 4] diff --git a/res/TensorFlowTests/UI_0002/test.manifest b/res/TensorFlowTests/UI_0002/test.manifest new file mode 100644 index 000000000..182342655 --- /dev/null +++ b/res/TensorFlowTests/UI_0002/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong network : Conv2D and biasAdd has a same name diff --git a/res/TensorFlowTests/UI_0002/test.pbtxt b/res/TensorFlowTests/UI_0002/test.pbtxt new file mode 100644 index 000000000..e23acac41 --- /dev/null +++ b/res/TensorFlowTests/UI_0002/test.pbtxt @@ -0,0 +1,150 @@ +node { + name: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 5 + } + dim { + size: 5 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Duplicate_name" + op: "Conv2D" + input: "input_wrong:0" + input: "InceptionV3/Conv2d_1a_3x3/weights/read/_3__cf__3" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} +node { + name: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "Duplicate_name" + op: "BiasAdd" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D" + input: "InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D_bn_offset" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } +} diff --git a/res/TensorFlowTests/UI_0003/test.info b/res/TensorFlowTests/UI_0003/test.info new file mode 100644 index 000000000..738d26831 --- /dev/null +++ b/res/TensorFlowTests/UI_0003/test.info @@ -0,0 +1,2 @@ +input, relu1:0, TF_FLOAT, [1, 2] +output, relu2:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0003/test.manifest b/res/TensorFlowTests/UI_0003/test.manifest new file mode 100644 index 000000000..2a6b32242 --- /dev/null +++ b/res/TensorFlowTests/UI_0003/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong network. Network without proper input (const or placeholder) diff --git a/res/TensorFlowTests/UI_0003/test.pbtxt b/res/TensorFlowTests/UI_0003/test.pbtxt new file mode 100644 index 000000000..4d5154e67 --- /dev/null +++ b/res/TensorFlowTests/UI_0003/test.pbtxt @@ -0,0 +1,22 @@ +node { + name: "relu1" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} +node { + name: "relu2" + op: "Relu" + input: "relu1" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0004/test.info b/res/TensorFlowTests/UI_0004/test.info new file mode 100644 index 000000000..5988da939 --- /dev/null +++ b/res/TensorFlowTests/UI_0004/test.info @@ -0,0 +1,2 @@ +input, not_existing_input:0, TF_FLOAT, [1, 2] +output, relu:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0004/test.manifest b/res/TensorFlowTests/UI_0004/test.manifest new file mode 100644 index 000000000..be3d615f8 --- /dev/null +++ b/res/TensorFlowTests/UI_0004/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. Input name in info file does not exist in pb file. diff --git a/res/TensorFlowTests/UI_0004/test.pbtxt b/res/TensorFlowTests/UI_0004/test.pbtxt new file mode 100644 index 000000000..d4b7ee125 --- /dev/null +++ b/res/TensorFlowTests/UI_0004/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output/relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0005/test.info b/res/TensorFlowTests/UI_0005/test.info new file mode 100644 index 000000000..6759094c3 --- /dev/null +++ b/res/TensorFlowTests/UI_0005/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2] +output, not_existing_output_name:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0005/test.manifest b/res/TensorFlowTests/UI_0005/test.manifest new file mode 100644 index 000000000..7075344ab --- /dev/null +++ b/res/TensorFlowTests/UI_0005/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. Output name in info file does not exist in pb file. diff --git a/res/TensorFlowTests/UI_0005/test.pbtxt b/res/TensorFlowTests/UI_0005/test.pbtxt new file mode 100644 index 000000000..d4b7ee125 --- /dev/null +++ b/res/TensorFlowTests/UI_0005/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output/relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0006/test.info b/res/TensorFlowTests/UI_0006/test.info new file mode 100644 index 000000000..bdf764eab --- /dev/null +++ b/res/TensorFlowTests/UI_0006/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT +output, relu:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0006/test.manifest b/res/TensorFlowTests/UI_0006/test.manifest new file mode 100644 index 000000000..e0ea9b331 --- /dev/null +++ b/res/TensorFlowTests/UI_0006/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. Missing input shape. diff --git a/res/TensorFlowTests/UI_0006/test.pbtxt b/res/TensorFlowTests/UI_0006/test.pbtxt new file mode 100644 index 000000000..5806251fb --- /dev/null +++ b/res/TensorFlowTests/UI_0006/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0007/test.info b/res/TensorFlowTests/UI_0007/test.info new file mode 100644 index 000000000..ad84e8d38 --- /dev/null +++ b/res/TensorFlowTests/UI_0007/test.info @@ -0,0 +1 @@ +input, Placeholder:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0007/test.manifest b/res/TensorFlowTests/UI_0007/test.manifest new file mode 100644 index 000000000..94fdce5f8 --- /dev/null +++ b/res/TensorFlowTests/UI_0007/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. No output in info file diff --git a/res/TensorFlowTests/UI_0007/test.pbtxt b/res/TensorFlowTests/UI_0007/test.pbtxt new file mode 100644 index 000000000..5806251fb --- /dev/null +++ b/res/TensorFlowTests/UI_0007/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0008/test.info b/res/TensorFlowTests/UI_0008/test.info new file mode 100644 index 000000000..94815a520 --- /dev/null +++ b/res/TensorFlowTests/UI_0008/test.info @@ -0,0 +1,3 @@ +input, Placeholder:0, TF_FLOAT, [1, 2] +output, relu:0, TF_FLOAT, [1, 2] +output, relu:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0008/test.manifest b/res/TensorFlowTests/UI_0008/test.manifest new file mode 100644 index 000000000..858aae672 --- /dev/null +++ b/res/TensorFlowTests/UI_0008/test.manifest @@ -0,0 +1 @@ +SUMMARY: Multiple output names in info file that have same name diff --git a/res/TensorFlowTests/UI_0008/test.pbtxt b/res/TensorFlowTests/UI_0008/test.pbtxt new file mode 100644 index 000000000..5806251fb --- /dev/null +++ b/res/TensorFlowTests/UI_0008/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0009/test.info b/res/TensorFlowTests/UI_0009/test.info new file mode 100644 index 000000000..8e78a07b9 --- /dev/null +++ b/res/TensorFlowTests/UI_0009/test.info @@ -0,0 +1,2 @@ +input, Placeholder:1, TF_FLOAT, [1, 2] # Placeholder:1 does not exist in the model +output, Placeholder:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0009/test.manifest b/res/TensorFlowTests/UI_0009/test.manifest new file mode 100644 index 000000000..78ed75108 --- /dev/null +++ b/res/TensorFlowTests/UI_0009/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. Index of input tensor name is wrong in info file diff --git a/res/TensorFlowTests/UI_0009/test.pbtxt b/res/TensorFlowTests/UI_0009/test.pbtxt new file mode 100644 index 000000000..5806251fb --- /dev/null +++ b/res/TensorFlowTests/UI_0009/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0010/test.info b/res/TensorFlowTests/UI_0010/test.info new file mode 100644 index 000000000..c8da7cc3e --- /dev/null +++ b/res/TensorFlowTests/UI_0010/test.info @@ -0,0 +1,2 @@ +input Placeholder:0, TF_FLOAT, [1, 2] +output, relu:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0010/test.manifest b/res/TensorFlowTests/UI_0010/test.manifest new file mode 100644 index 000000000..598164e32 --- /dev/null +++ b/res/TensorFlowTests/UI_0010/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. Missing comma after 'input'. diff --git a/res/TensorFlowTests/UI_0010/test.pbtxt b/res/TensorFlowTests/UI_0010/test.pbtxt new file mode 100644 index 000000000..5806251fb --- /dev/null +++ b/res/TensorFlowTests/UI_0010/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0011/test.info b/res/TensorFlowTests/UI_0011/test.info new file mode 100644 index 000000000..96cca79b9 --- /dev/null +++ b/res/TensorFlowTests/UI_0011/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0 TF_FLOAT, [1, 2] +output, relu:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0011/test.manifest b/res/TensorFlowTests/UI_0011/test.manifest new file mode 100644 index 000000000..b0938eb5c --- /dev/null +++ b/res/TensorFlowTests/UI_0011/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. Missing comma after input name. diff --git a/res/TensorFlowTests/UI_0011/test.pbtxt b/res/TensorFlowTests/UI_0011/test.pbtxt new file mode 100644 index 000000000..5806251fb --- /dev/null +++ b/res/TensorFlowTests/UI_0011/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UI_0012/test.info b/res/TensorFlowTests/UI_0012/test.info new file mode 100644 index 000000000..b04feac4b --- /dev/null +++ b/res/TensorFlowTests/UI_0012/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT [1, 2] +output, relu:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UI_0012/test.manifest b/res/TensorFlowTests/UI_0012/test.manifest new file mode 100644 index 000000000..e5765aa37 --- /dev/null +++ b/res/TensorFlowTests/UI_0012/test.manifest @@ -0,0 +1 @@ +SUMMARY: Wrong info file. Missing comma after dtype. diff --git a/res/TensorFlowTests/UI_0012/test.pbtxt b/res/TensorFlowTests/UI_0012/test.pbtxt new file mode 100644 index 000000000..5806251fb --- /dev/null +++ b/res/TensorFlowTests/UI_0012/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Add_000/test.info b/res/TensorFlowTests/UNIT_Add_000/test.info new file mode 100644 index 000000000..77c2dbe0d --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_000/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 1] +input, input_02:0, TF_FLOAT, [1, 3, 3, 1] +output, add:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/UNIT_Add_000/test.pbtxt b/res/TensorFlowTests/UNIT_Add_000/test.pbtxt new file mode 100644 index 000000000..b03826840 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_000/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "add" + op: "Add" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Add_001/test.info b/res/TensorFlowTests/UNIT_Add_001/test.info new file mode 100644 index 000000000..f99f0f808 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_001/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [1, 1, 1, 5] +output, add:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Add_001/test.pbtxt b/res/TensorFlowTests/UNIT_Add_001/test.pbtxt new file mode 100644 index 000000000..ff89686b8 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_001/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "add" + op: "Add" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Add_002/test.info b/res/TensorFlowTests/UNIT_Add_002/test.info new file mode 100644 index 000000000..4471cff17 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_002/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [5] +output, add:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Add_002/test.pbtxt b/res/TensorFlowTests/UNIT_Add_002/test.pbtxt new file mode 100644 index 000000000..5e320a413 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_002/test.pbtxt @@ -0,0 +1,61 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 5 + } + } + } + } +} +node { + name: "add" + op: "Add" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Add_003/test.info b/res/TensorFlowTests/UNIT_Add_003/test.info new file mode 100644 index 000000000..8c87db7ea --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_003/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [] +output, add:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Add_003/test.pbtxt b/res/TensorFlowTests/UNIT_Add_003/test.pbtxt new file mode 100644 index 000000000..96b9219af --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_003/test.pbtxt @@ -0,0 +1,58 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + } + } + } +} +node { + name: "add" + op: "Add" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Add_004/test.info b/res/TensorFlowTests/UNIT_Add_004/test.info new file mode 100644 index 000000000..201dfd6fc --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_004/test.info @@ -0,0 +1,2 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +output, add:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Add_004/test.pbtxt b/res/TensorFlowTests/UNIT_Add_004/test.pbtxt new file mode 100644 index 000000000..ca9295022 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_004/test.pbtxt @@ -0,0 +1,62 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "scala" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1.0 + } + } + } +} +node { + name: "add" + op: "Add" + input: "input_01" + input: "scala" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Add_005/test.info b/res/TensorFlowTests/UNIT_Add_005/test.info new file mode 100644 index 000000000..7cd730ae6 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_005/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 1, 1, 5] +input, input_02:0, TF_FLOAT, [1, 3, 3, 5] +output, add:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Add_005/test.pbtxt b/res/TensorFlowTests/UNIT_Add_005/test.pbtxt new file mode 100644 index 000000000..cc28366b7 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Add_005/test.pbtxt @@ -0,0 +1,49 @@ +# LHS broadcasting +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 1 } + dim { size: 1 } + dim { size: 5 } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 3 } + dim { size: 3 } + dim { size: 5 } + } + } + } +} +node { + name: "add" + op: "Add" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { type: DT_FLOAT } + } +} diff --git a/res/TensorFlowTests/UNIT_AvgPool_000/test.info b/res/TensorFlowTests/UNIT_AvgPool_000/test.info new file mode 100644 index 000000000..31c94cffa --- /dev/null +++ b/res/TensorFlowTests/UNIT_AvgPool_000/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 3, 3, 1] +output, avgpool2d:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/UNIT_AvgPool_000/test.pbtxt b/res/TensorFlowTests/UNIT_AvgPool_000/test.pbtxt new file mode 100644 index 000000000..8c71f0b9e --- /dev/null +++ b/res/TensorFlowTests/UNIT_AvgPool_000/test.pbtxt @@ -0,0 +1,74 @@ +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "avgpool2d" + op: "AvgPool" + input: "placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "ksize" + value { + list { + i: 1 + i: 3 + i: 3 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_AvgPool_001/test.info b/res/TensorFlowTests/UNIT_AvgPool_001/test.info new file mode 100644 index 000000000..2cf5bfe34 --- /dev/null +++ b/res/TensorFlowTests/UNIT_AvgPool_001/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 4, 4, 1] +output, avgpool2d:0, TF_FLOAT, [1, 2, 2, 1] diff --git a/res/TensorFlowTests/UNIT_AvgPool_001/test.pbtxt b/res/TensorFlowTests/UNIT_AvgPool_001/test.pbtxt new file mode 100644 index 000000000..faf117ca4 --- /dev/null +++ b/res/TensorFlowTests/UNIT_AvgPool_001/test.pbtxt @@ -0,0 +1,74 @@ +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 4 + } + dim { + size: 4 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "avgpool2d" + op: "AvgPool" + input: "placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "ksize" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_BiasAdd_000/test.info b/res/TensorFlowTests/UNIT_BiasAdd_000/test.info new file mode 100644 index 000000000..cbb4f38dd --- /dev/null +++ b/res/TensorFlowTests/UNIT_BiasAdd_000/test.info @@ -0,0 +1 @@ +output, out:0, TF_FLOAT, [1, 5, 5, 3] diff --git a/res/TensorFlowTests/UNIT_BiasAdd_000/test.pbtxt b/res/TensorFlowTests/UNIT_BiasAdd_000/test.pbtxt new file mode 100644 index 000000000..642eac655 --- /dev/null +++ b/res/TensorFlowTests/UNIT_BiasAdd_000/test.pbtxt @@ -0,0 +1,57 @@ +node { + name: "val" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 1 } + dim { size: 5 } + dim { size: 5 } + dim { size: 3 } + } + float_val: 2.1 + } + } + } +} +node { + name: "bias" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 3 } + } + float_val: 1.1 + } + } + } +} +node { + name: "out" + op: "BiasAdd" + input: "val" + input: "bias" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } +} diff --git a/res/TensorFlowTests/UNIT_BiasAdd_001/test.info b/res/TensorFlowTests/UNIT_BiasAdd_001/test.info new file mode 100644 index 000000000..04c89d69c --- /dev/null +++ b/res/TensorFlowTests/UNIT_BiasAdd_001/test.info @@ -0,0 +1 @@ +output, out:0, TF_FLOAT, [1, 3, 4, 4] diff --git a/res/TensorFlowTests/UNIT_BiasAdd_001/test.pbtxt b/res/TensorFlowTests/UNIT_BiasAdd_001/test.pbtxt new file mode 100644 index 000000000..6b543084d --- /dev/null +++ b/res/TensorFlowTests/UNIT_BiasAdd_001/test.pbtxt @@ -0,0 +1,57 @@ +node { + name: "val" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 1 } + dim { size: 3 } + dim { size: 4 } + dim { size: 4 } + } + float_val: 2.1 + } + } + } +} +node { + name: "bias" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 3 } + } + float_val: 1.1 + } + } + } +} +node { + name: "out" + op: "BiasAdd" + input: "val" + input: "bias" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NCHW" } + } +} diff --git a/res/TensorFlowTests/UNIT_BiasAdd_002/test.info b/res/TensorFlowTests/UNIT_BiasAdd_002/test.info new file mode 100644 index 000000000..2133df438 --- /dev/null +++ b/res/TensorFlowTests/UNIT_BiasAdd_002/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 16, 16, 2] +output, output:0, TF_FLOAT, [1, 16, 16, 2] diff --git a/res/TensorFlowTests/UNIT_BiasAdd_002/test.pbtxt b/res/TensorFlowTests/UNIT_BiasAdd_002/test.pbtxt new file mode 100644 index 000000000..336a10338 --- /dev/null +++ b/res/TensorFlowTests/UNIT_BiasAdd_002/test.pbtxt @@ -0,0 +1,51 @@ +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 16 } + dim { size: 16 } + dim { size: 2 } + } + } + } +} +node { + name: "bias" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { dim { size: 2 } } + float_val: 1.0 + } + } + } +} +node { + name: "output" + op: "BiasAdd" + input: "input" + input: "bias" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } +} diff --git a/res/TensorFlowTests/UNIT_ConcatV2_000/test.info b/res/TensorFlowTests/UNIT_ConcatV2_000/test.info new file mode 100644 index 000000000..9ea940f2a --- /dev/null +++ b/res/TensorFlowTests/UNIT_ConcatV2_000/test.info @@ -0,0 +1 @@ +output, Concat:0, TF_FLOAT, [4, 3] diff --git a/res/TensorFlowTests/UNIT_ConcatV2_000/test.pbtxt b/res/TensorFlowTests/UNIT_ConcatV2_000/test.pbtxt new file mode 100644 index 000000000..77dbea792 --- /dev/null +++ b/res/TensorFlowTests/UNIT_ConcatV2_000/test.pbtxt @@ -0,0 +1,110 @@ +node { + name: "Input01" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1 + float_val: 2 + float_val: 3 + float_val: 4 + float_val: 5 + float_val: 6 + } + } + } +} +node { + name: "Input02" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 7 + float_val: 8 + float_val: 9 + float_val: 10 + float_val: 11 + float_val: 12 + } + } + } +} +node { + name: "Axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "Concat" + op: "ConcatV2" + input: "Input01" + input: "Input02" + input: "Axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/UNIT_ConcatV2_001/test.info b/res/TensorFlowTests/UNIT_ConcatV2_001/test.info new file mode 100644 index 000000000..e2add430f --- /dev/null +++ b/res/TensorFlowTests/UNIT_ConcatV2_001/test.info @@ -0,0 +1 @@ +output, Concat:0, TF_FLOAT, [6, 3] diff --git a/res/TensorFlowTests/UNIT_ConcatV2_001/test.pbtxt b/res/TensorFlowTests/UNIT_ConcatV2_001/test.pbtxt new file mode 100644 index 000000000..ac3e85581 --- /dev/null +++ b/res/TensorFlowTests/UNIT_ConcatV2_001/test.pbtxt @@ -0,0 +1,143 @@ +node { + name: "Input01" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1 + float_val: 2 + float_val: 3 + float_val: 4 + float_val: 5 + float_val: 6 + } + } + } +} +node { + name: "Input02" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 7 + float_val: 8 + float_val: 9 + float_val: 10 + float_val: 11 + float_val: 12 + } + } + } +} +node { + name: "Input03" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 13 + float_val: 14 + float_val: 15 + float_val: 16 + float_val: 17 + float_val: 18 + } + } + } +} +node { + name: "Axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: 0 + } + } + } +} +node { + name: "Concat" + op: "ConcatV2" + input: "Input01" + input: "Input02" + input: "Input03" + input: "Axis" + attr { + key: "N" + value { + i: 3 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/UNIT_ConcatV2_002/test.info b/res/TensorFlowTests/UNIT_ConcatV2_002/test.info new file mode 100644 index 000000000..460093bd5 --- /dev/null +++ b/res/TensorFlowTests/UNIT_ConcatV2_002/test.info @@ -0,0 +1,3 @@ +input, Input01:0, TF_FLOAT, [2, 3] +input, Input02:0, TF_FLOAT, [2, 3] +output, Concat:0, TF_FLOAT, [2, 6] diff --git a/res/TensorFlowTests/UNIT_ConcatV2_002/test.pbtxt b/res/TensorFlowTests/UNIT_ConcatV2_002/test.pbtxt new file mode 100644 index 000000000..9a524040a --- /dev/null +++ b/res/TensorFlowTests/UNIT_ConcatV2_002/test.pbtxt @@ -0,0 +1,92 @@ +node { + name: "Input01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Input02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Axis" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + } + int_val: -1 + } + } + } +} +node { + name: "Concat" + op: "ConcatV2" + input: "Input01" + input: "Input02" + input: "Axis" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tidx" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Const_000/test.info b/res/TensorFlowTests/UNIT_Const_000/test.info new file mode 100644 index 000000000..43b4f06a5 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Const_000/test.info @@ -0,0 +1 @@ +output, const/float:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/UNIT_Const_000/test.pbtxt b/res/TensorFlowTests/UNIT_Const_000/test.pbtxt new file mode 100644 index 000000000..b91ade2f3 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Const_000/test.pbtxt @@ -0,0 +1,32 @@ +node { + name: "const/float" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1.1 + float_val: 2.2 + float_val: 3.3 + float_val: 4.4 + float_val: 5.5 + float_val: 6.6 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Const_001/test.info b/res/TensorFlowTests/UNIT_Const_001/test.info new file mode 100644 index 000000000..445b34b67 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Const_001/test.info @@ -0,0 +1 @@ +output, const/int32:0, TF_INT32, [2, 3] diff --git a/res/TensorFlowTests/UNIT_Const_001/test.pbtxt b/res/TensorFlowTests/UNIT_Const_001/test.pbtxt new file mode 100644 index 000000000..bec7dfb92 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Const_001/test.pbtxt @@ -0,0 +1,32 @@ +node { + name: "const/int32" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + int_val: 1 + int_val: 2 + int_val: 3 + int_val: 4 + int_val: 5 + int_val: 6 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.info b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.info new file mode 100644 index 000000000..dfed0e296 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.info @@ -0,0 +1,2 @@ +input, ifm:0, TF_FLOAT, [1, 8, 6, 3] +output, ofm:0, TF_FLOAT, [1, 17, 13, 2] diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.manifest b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.manifest new file mode 100644 index 000000000..eae8d4baa --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.manifest @@ -0,0 +1 @@ +SUMMARY: VALID padding / tight fit case diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.pbtxt b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.pbtxt new file mode 100644 index 000000000..6cb0cb71c --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_000/test.pbtxt @@ -0,0 +1,136 @@ +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 6 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "weights" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "outshape" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + int_val: 1 + int_val: 17 + int_val: 13 + int_val: 2 + } + } + } +} +node { + name: "ofm" + op: "Conv2DBackpropInput" + input: "outshape" + input: "weights" + input: "ifm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_001/test.info b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_001/test.info new file mode 100644 index 000000000..2537d0732 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_001/test.info @@ -0,0 +1,2 @@ +input, ifm:0, TF_FLOAT, [1, 8, 6, 3] +output, ofm:0, TF_FLOAT, [1, 16, 12, 2] diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_001/test.pbtxt b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_001/test.pbtxt new file mode 100644 index 000000000..8930c4221 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_001/test.pbtxt @@ -0,0 +1,136 @@ +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 6 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "weights" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "outshape" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + int_val: 1 + int_val: 16 + int_val: 12 + int_val: 2 + } + } + } +} +node { + name: "ofm" + op: "Conv2DBackpropInput" + input: "outshape" + input: "weights" + input: "ifm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.info b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.info new file mode 100644 index 000000000..130931836 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.info @@ -0,0 +1,2 @@ +input, ifm:0, TF_FLOAT, [1, 8, 6, 3] +output, ofm:0, TF_FLOAT, [1, 18, 14, 2] diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.manifest b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.manifest new file mode 100644 index 000000000..8a1df46a5 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.manifest @@ -0,0 +1 @@ +SUMMARY: VALID padding and non-tight output shape diff --git a/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.pbtxt b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.pbtxt new file mode 100644 index 000000000..0c6b3be84 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2DBackpropInput_002/test.pbtxt @@ -0,0 +1,136 @@ +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 8 + } + dim { + size: 6 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "weights" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "outshape" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + } + int_val: 1 + int_val: 18 + int_val: 14 + int_val: 2 + } + } + } +} +node { + name: "ofm" + op: "Conv2DBackpropInput" + input: "outshape" + input: "weights" + input: "ifm" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Conv2D_000/test.info b/res/TensorFlowTests/UNIT_Conv2D_000/test.info new file mode 100644 index 000000000..22facc3fb --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_000/test.info @@ -0,0 +1,3 @@ +# conv2d with VALID, stride = 1, 1 +input, ifm:0, TF_FLOAT, [1, 5, 5, 3] +output, ofm:0, TF_FLOAT, [1, 4, 4, 2] diff --git a/res/TensorFlowTests/UNIT_Conv2D_000/test.pbtxt b/res/TensorFlowTests/UNIT_Conv2D_000/test.pbtxt new file mode 100644 index 000000000..f537cf4a6 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_000/test.pbtxt @@ -0,0 +1,72 @@ +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 5 } + dim { size: 5 } + dim { size: 3 } + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } + dim { size: 2 } + dim { size: 3 } + dim { size: 2 } + } + float_val: 1.1 + } + } + } +} +node { + name: "ofm" + op: "Conv2D" + input: "ifm" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Conv2D_001/test.info b/res/TensorFlowTests/UNIT_Conv2D_001/test.info new file mode 100644 index 000000000..2b6d73e5b --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_001/test.info @@ -0,0 +1,2 @@ +input, ifm:0, TF_FLOAT, [1, 5, 5, 3] +output, ofm:0, TF_FLOAT, [1, 3, 3, 2] diff --git a/res/TensorFlowTests/UNIT_Conv2D_001/test.manifest b/res/TensorFlowTests/UNIT_Conv2D_001/test.manifest new file mode 100644 index 000000000..34c89b172 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_001/test.manifest @@ -0,0 +1 @@ +SUMMARY: One convolution operation with SAME padding, and [2, 2] strides diff --git a/res/TensorFlowTests/UNIT_Conv2D_001/test.pbtxt b/res/TensorFlowTests/UNIT_Conv2D_001/test.pbtxt new file mode 100644 index 000000000..6eb539be8 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_001/test.pbtxt @@ -0,0 +1,72 @@ +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 5 } + dim { size: 5 } + dim { size: 3 } + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } + dim { size: 2 } + dim { size: 3 } + dim { size: 2 } + } + float_val: 1.1 + } + } + } +} +node { + name: "ofm" + op: "Conv2D" + input: "ifm" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "SAME" } + } + attr { + key: "strides" + value { + list { i: 1 i: 2 i: 2 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Conv2D_002/test.info b/res/TensorFlowTests/UNIT_Conv2D_002/test.info new file mode 100644 index 000000000..8f1dbd45a --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_002/test.info @@ -0,0 +1,3 @@ +# conv2d with VALID, stride = 2, 2 +input, ifm:0, TF_FLOAT, [1, 5, 5, 3] +output, ofm:0, TF_FLOAT, [1, 2, 2, 2] diff --git a/res/TensorFlowTests/UNIT_Conv2D_002/test.manifest b/res/TensorFlowTests/UNIT_Conv2D_002/test.manifest new file mode 100644 index 000000000..fcabfa148 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_002/test.manifest @@ -0,0 +1 @@ +SUMMARY: One convolution operation with VALID padding, and [2, 2] strides diff --git a/res/TensorFlowTests/UNIT_Conv2D_002/test.pbtxt b/res/TensorFlowTests/UNIT_Conv2D_002/test.pbtxt new file mode 100644 index 000000000..ae2eb364d --- /dev/null +++ b/res/TensorFlowTests/UNIT_Conv2D_002/test.pbtxt @@ -0,0 +1,72 @@ +node { + name: "ifm" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 5 } + dim { size: 5 } + dim { size: 3 } + } + } + } +} +node { + name: "ker" + op: "Const" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { size: 2 } + dim { size: 2 } + dim { size: 3 } + dim { size: 2 } + } + float_val: 1.1 + } + } + } +} +node { + name: "ofm" + op: "Conv2D" + input: "ifm" + input: "ker" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "dilations" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 2 i: 2 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/UNIT_CustomOp_000/customop.conf b/res/TensorFlowTests/UNIT_CustomOp_000/customop.conf new file mode 100644 index 000000000..08ba0f09a --- /dev/null +++ b/res/TensorFlowTests/UNIT_CustomOp_000/customop.conf @@ -0,0 +1,22 @@ +# defining a list of custom ops for this compilation +custom_op { + name: "my/customOp/000" + op: "new_custom_op" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "output_shape" + value { + shape { + dim { size: 1 } + dim { size: 2 } + dim { size: 1 } + dim { size: 2 } + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_CustomOp_000/test.info b/res/TensorFlowTests/UNIT_CustomOp_000/test.info new file mode 100644 index 000000000..e3e2b176e --- /dev/null +++ b/res/TensorFlowTests/UNIT_CustomOp_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 1, 2] +output, output/relu:0, TF_FLOAT, [1, 2, 1, 2] diff --git a/res/TensorFlowTests/UNIT_CustomOp_000/test.pbtxt b/res/TensorFlowTests/UNIT_CustomOp_000/test.pbtxt new file mode 100644 index 000000000..373f5b845 --- /dev/null +++ b/res/TensorFlowTests/UNIT_CustomOp_000/test.pbtxt @@ -0,0 +1,53 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" value { type: DT_FLOAT } } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 2 } + dim { size: 1 } + dim { size: 2 } + } + } + } +} +node { + name: "my/customOp/000" + op: "new_custom_op" + input: "Placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "my_string" + value { s: "Hello World" } + } + attr { + key: "my_float" + value { f: 0.001 } + } + attr { + key: "my_int" + value { i: 111 } + } + attr { + key: "my_bool" + value { b: false } + } +} +node { + name: "output/relu" + op: "Relu" + input: "my/customOp/000" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_CustomOp_001/customop.conf b/res/TensorFlowTests/UNIT_CustomOp_001/customop.conf new file mode 100644 index 000000000..92c0dd2f2 --- /dev/null +++ b/res/TensorFlowTests/UNIT_CustomOp_001/customop.conf @@ -0,0 +1,19 @@ +# defining a list of custom ops for this compilation +custom_op { + name: "FillFrom" + op: "FillFrom" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "output_shape" + value { + shape { + dim { size: 10 } + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_CustomOp_001/test.info b/res/TensorFlowTests/UNIT_CustomOp_001/test.info new file mode 100644 index 000000000..473374cd1 --- /dev/null +++ b/res/TensorFlowTests/UNIT_CustomOp_001/test.info @@ -0,0 +1,2 @@ +input, input_00:0, TF_FLOAT, [10] +output, FillFrom:0, TF_FLOAT, [10] diff --git a/res/TensorFlowTests/UNIT_CustomOp_001/test.pbtxt b/res/TensorFlowTests/UNIT_CustomOp_001/test.pbtxt new file mode 100644 index 000000000..ad673e0a7 --- /dev/null +++ b/res/TensorFlowTests/UNIT_CustomOp_001/test.pbtxt @@ -0,0 +1,38 @@ +# test case discussed in https://github.sec.samsung.net/STAR/nnfw/issues/5607 +node { + name: "input_00" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 10 + } + } + } + } +} +node { + name: "FillFrom" + op: "FillFrom" + input: "input_00" + attr { + key: "idx" + value { + i: 3 + } + } + attr { + key: "val" + value { + f: 1.1 + } + } +} diff --git a/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_000/test.info b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_000/test.info new file mode 100644 index 000000000..96a2b1403 --- /dev/null +++ b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_000/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 11, 7, 3] +output, DepthwiseConv2dNative:0, TF_FLOAT, [1, 6, 4, 12] diff --git a/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_000/test.pbtxt b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_000/test.pbtxt new file mode 100644 index 000000000..1d8fcaa00 --- /dev/null +++ b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_000/test.pbtxt @@ -0,0 +1,115 @@ +# A simple network that has DepthwiseConv2dNative with 'SAME' padding and strides. +# HOW TO GENERATE: +# import tensorflow as tf +# input = tf.placeholder(tf.float32, shape=[1,11,7,3], name="input") +# filter = tf.constant(1.0, shape=[2,3,3,4], dtype=tf.float32) +# dwconv = tf.nn.depthwise_conv2d_native(input,filter,[1,2,2,1],'SAME') +# tf.get_default_graph().as_graph_def() +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 11 + } + dim { + size: 7 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "DepthwiseConv2dNative" + op: "DepthwiseConv2dNative" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "SAME" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_001/test.info b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_001/test.info new file mode 100644 index 000000000..c17595388 --- /dev/null +++ b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_001/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 4, 4, 3] +output, DepthwiseConv2dNative:0, TF_FLOAT, [1, 3, 3, 6] diff --git a/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_001/test.pbtxt b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_001/test.pbtxt new file mode 100644 index 000000000..9a9717611 --- /dev/null +++ b/res/TensorFlowTests/UNIT_DepthwiseConv2dNative_001/test.pbtxt @@ -0,0 +1,115 @@ +# A simple network that has DepthwiseConv2dNative with input(Placeholder) and filter(Const) +# HOW TO GENERATE: +# import tensorflow as tf +# input = tf.placeholder(tf.float32, shape=[1,4,4,3], name="input") +# filter = tf.constant(1.0, shape=[2,2,3,2], dtype=tf.float32) +# dwconv = tf.nn.depthwise_conv2d_native(input,filter,[1,1,1,1],'VALID') +# tf.get_default_graph().as_graph_def() +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 4 + } + dim { + size: 4 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 2 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "DepthwiseConv2dNative" + op: "DepthwiseConv2dNative" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "dilations" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_FusedBatchNorm_000/test.info b/res/TensorFlowTests/UNIT_FusedBatchNorm_000/test.info new file mode 100644 index 000000000..30840e8e3 --- /dev/null +++ b/res/TensorFlowTests/UNIT_FusedBatchNorm_000/test.info @@ -0,0 +1,3 @@ +# FusedBatchNorm +input, placeholder:0, TF_FLOAT, [1, 4, 4, 1] +output, FBN_01:0, TF_FLOAT, [1, 4, 4, 1] diff --git a/res/TensorFlowTests/UNIT_FusedBatchNorm_000/test.pbtxt b/res/TensorFlowTests/UNIT_FusedBatchNorm_000/test.pbtxt new file mode 100644 index 000000000..40cec4abc --- /dev/null +++ b/res/TensorFlowTests/UNIT_FusedBatchNorm_000/test.pbtxt @@ -0,0 +1,158 @@ +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 4 + } + dim { + size: 4 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "scale" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "FBN_01/mean" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 0.0 + } + } + } +} +node { + name: "FBN_01/variance" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 1 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "FBN_01" + op: "FusedBatchNorm" + input: "placeholder" + input: "scale" + input: "offset" + input: "FBN_01/mean" + input: "FBN_01/variance" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "epsilon" + value { + f: 0.001 + } + } + attr { + key: "is_training" + value { + b: false + } + } +} diff --git a/res/TensorFlowTests/UNIT_FusedBatchNorm_001/test.info b/res/TensorFlowTests/UNIT_FusedBatchNorm_001/test.info new file mode 100644 index 000000000..09141a44e --- /dev/null +++ b/res/TensorFlowTests/UNIT_FusedBatchNorm_001/test.info @@ -0,0 +1,3 @@ +# FusedBatchNorm +input, placeholder:0, TF_FLOAT, [1, 4, 4, 3] +output, FBN_01:0, TF_FLOAT, [1, 4, 4, 3] diff --git a/res/TensorFlowTests/UNIT_FusedBatchNorm_001/test.pbtxt b/res/TensorFlowTests/UNIT_FusedBatchNorm_001/test.pbtxt new file mode 100644 index 000000000..9ebeadf70 --- /dev/null +++ b/res/TensorFlowTests/UNIT_FusedBatchNorm_001/test.pbtxt @@ -0,0 +1,158 @@ +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 4 + } + dim { + size: 4 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "scale" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + } + float_val: 1.5 + } + } + } +} +node { + name: "offset" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + } + float_val: 2.5 + } + } + } +} +node { + name: "FBN_01/mean" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + } + float_val: 3.5 + } + } + } +} +node { + name: "FBN_01/variance" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 3 + } + } + float_val: 4.5 + } + } + } +} +node { + name: "FBN_01" + op: "FusedBatchNorm" + input: "placeholder" + input: "scale" + input: "offset" + input: "FBN_01/mean" + input: "FBN_01/variance" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "epsilon" + value { + f: 0.001 + } + } + attr { + key: "is_training" + value { + b: false + } + } +} diff --git a/res/TensorFlowTests/UNIT_MaxPool_000/test.info b/res/TensorFlowTests/UNIT_MaxPool_000/test.info new file mode 100644 index 000000000..c94e2e7fb --- /dev/null +++ b/res/TensorFlowTests/UNIT_MaxPool_000/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 3, 3, 1] +output, maxpool2d:0, TF_FLOAT, [1, 2, 2, 1] diff --git a/res/TensorFlowTests/UNIT_MaxPool_000/test.pbtxt b/res/TensorFlowTests/UNIT_MaxPool_000/test.pbtxt new file mode 100644 index 000000000..81da5bbd5 --- /dev/null +++ b/res/TensorFlowTests/UNIT_MaxPool_000/test.pbtxt @@ -0,0 +1,74 @@ +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "maxpool2d" + op: "MaxPool" + input: "placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "data_format" + value { + s: "NHWC" + } + } + attr { + key: "ksize" + value { + list { + i: 1 + i: 2 + i: 2 + i: 1 + } + } + } + attr { + key: "padding" + value { + s: "VALID" + } + } + attr { + key: "strides" + value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} diff --git a/res/TensorFlowTests/UNIT_MaxPool_001/test.info b/res/TensorFlowTests/UNIT_MaxPool_001/test.info new file mode 100644 index 000000000..513a83c84 --- /dev/null +++ b/res/TensorFlowTests/UNIT_MaxPool_001/test.info @@ -0,0 +1,2 @@ +input, placeholder:0, TF_FLOAT, [1, 4, 4, 1] +output, maxpool2d:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/UNIT_MaxPool_001/test.pbtxt b/res/TensorFlowTests/UNIT_MaxPool_001/test.pbtxt new file mode 100644 index 000000000..dfa58d440 --- /dev/null +++ b/res/TensorFlowTests/UNIT_MaxPool_001/test.pbtxt @@ -0,0 +1,48 @@ +node { + name: "placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 4 } + dim { size: 4 } + dim { size: 1 } + } + } + } +} +node { + name: "maxpool2d" + op: "MaxPool" + input: "placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "data_format" + value { s: "NHWC" } + } + attr { + key: "ksize" + value { + list { i: 1 i: 2 i: 2 i: 1 } + } + } + attr { + key: "padding" + value { s: "VALID" } + } + attr { + key: "strides" + value { + list { i: 1 i: 1 i: 1 i: 1 } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Mean_000/test.info b/res/TensorFlowTests/UNIT_Mean_000/test.info new file mode 100644 index 000000000..fed1cbd60 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 2] +output, Mean:0, TF_FLOAT, [1, 1, 1, 2] diff --git a/res/TensorFlowTests/UNIT_Mean_000/test.pbtxt b/res/TensorFlowTests/UNIT_Mean_000/test.pbtxt new file mode 100644 index 000000000..8a9f7848f --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_000/test.pbtxt @@ -0,0 +1,68 @@ +# Reference Python code: +# +# import tensorflow as tf +# +# inp = tf.placeholder(tf.float32, [1,3,3,2]) +# mean = tf.math.reduce_mean(inp, keepdims=True, axis=[1,2]) +# +# print(tf.get_default_graph().as_graph_def()) +# +# WARNING! Below GraphDef is modified to make it easy to read +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 3 } + dim { size: 3 } + dim { size: 2 } + } + } + } +} +node { + name: "Mean/reduction_indices" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { size: 2 } + } + int_val: 1 + int_val: 2 + } + } + } +} +node { + name: "Mean" + op: "Mean" + input: "Placeholder" + input: "Mean/reduction_indices" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } + attr { + key: "keep_dims" + value { b: true } + } +} diff --git a/res/TensorFlowTests/UNIT_Mean_001/test.info b/res/TensorFlowTests/UNIT_Mean_001/test.info new file mode 100644 index 000000000..682e7cb20 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_001/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 2] +output, Mean:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UNIT_Mean_001/test.pbtxt b/res/TensorFlowTests/UNIT_Mean_001/test.pbtxt new file mode 100644 index 000000000..a579b2c9b --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_001/test.pbtxt @@ -0,0 +1,68 @@ +# Reference Python code: +# +# import tensorflow as tf +# +# inp = tf.placeholder(tf.float32, [1,3,3,2]) +# mean = tf.math.reduce_mean(inp, keepdims=False, axis=[1,2]) +# +# print(tf.get_default_graph().as_graph_def()) +# +# WARNING! Below GraphDef is modified to make it easy to read +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 3 } + dim { size: 3 } + dim { size: 2 } + } + } + } +} +node { + name: "Mean/reduction_indices" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { size: 2 } + } + int_val: 1 + int_val: 2 + } + } + } +} +node { + name: "Mean" + op: "Mean" + input: "Placeholder" + input: "Mean/reduction_indices" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } + attr { + key: "keep_dims" + value { b: false } + } +} diff --git a/res/TensorFlowTests/UNIT_Mean_002/test.info b/res/TensorFlowTests/UNIT_Mean_002/test.info new file mode 100644 index 000000000..682e7cb20 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_002/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 2] +output, Mean:0, TF_FLOAT, [1, 2] diff --git a/res/TensorFlowTests/UNIT_Mean_002/test.pbtxt b/res/TensorFlowTests/UNIT_Mean_002/test.pbtxt new file mode 100644 index 000000000..1d129f9a2 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_002/test.pbtxt @@ -0,0 +1,68 @@ +# Reference Python code: +# +# import tensorflow as tf +# +# inp = tf.placeholder(tf.float32, [1,3,3,2]) +# mean = tf.math.reduce_mean(inp, keepdims=False, axis=[-2,-3]) +# +# print(tf.get_default_graph().as_graph_def()) +# +# WARNING! Below GraphDef is modified to make it easy to read +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 3 } + dim { size: 3 } + dim { size: 2 } + } + } + } +} +node { + name: "Mean/reduction_indices" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { size: 2 } + } + int_val: -2 + int_val: -3 + } + } + } +} +node { + name: "Mean" + op: "Mean" + input: "Placeholder" + input: "Mean/reduction_indices" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } + attr { + key: "keep_dims" + value { b: false } + } +} diff --git a/res/TensorFlowTests/UNIT_Mean_003/test.info b/res/TensorFlowTests/UNIT_Mean_003/test.info new file mode 100644 index 000000000..fed1cbd60 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_003/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 2] +output, Mean:0, TF_FLOAT, [1, 1, 1, 2] diff --git a/res/TensorFlowTests/UNIT_Mean_003/test.pbtxt b/res/TensorFlowTests/UNIT_Mean_003/test.pbtxt new file mode 100644 index 000000000..383a1f2ea --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mean_003/test.pbtxt @@ -0,0 +1,68 @@ +# Reference Python code: +# +# import tensorflow as tf +# +# inp = tf.placeholder(tf.float32, [1,3,3,2]) +# mean = tf.math.reduce_mean(inp, keepdims=True, axis=[-2,-3]) +# +# print(tf.get_default_graph().as_graph_def()) +# +# WARNING! Below GraphDef is modified to make it easy to read +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 3 } + dim { size: 3 } + dim { size: 2 } + } + } + } +} +node { + name: "Mean/reduction_indices" + op: "Const" + attr { + key: "dtype" + value { type: DT_INT32 } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { size: 2 } + } + int_val: -2 + int_val: -3 + } + } + } +} +node { + name: "Mean" + op: "Mean" + input: "Placeholder" + input: "Mean/reduction_indices" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "Tidx" + value { type: DT_INT32 } + } + attr { + key: "keep_dims" + value { b: true } + } +} diff --git a/res/TensorFlowTests/UNIT_MirrorPad_000/test.info b/res/TensorFlowTests/UNIT_MirrorPad_000/test.info new file mode 100644 index 000000000..c6db4607f --- /dev/null +++ b/res/TensorFlowTests/UNIT_MirrorPad_000/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 3, 2, 4] +output, MirrorPad:0, TF_FLOAT, [1, 3, 4, 9] diff --git a/res/TensorFlowTests/UNIT_MirrorPad_000/test.manifest b/res/TensorFlowTests/UNIT_MirrorPad_000/test.manifest new file mode 100644 index 000000000..06e7567c2 --- /dev/null +++ b/res/TensorFlowTests/UNIT_MirrorPad_000/test.manifest @@ -0,0 +1 @@ +SUMMARY: A network that has MirrorPad with REFLECT mode. diff --git a/res/TensorFlowTests/UNIT_MirrorPad_000/test.pbtxt b/res/TensorFlowTests/UNIT_MirrorPad_000/test.pbtxt new file mode 100644 index 000000000..7a2bbccd7 --- /dev/null +++ b/res/TensorFlowTests/UNIT_MirrorPad_000/test.pbtxt @@ -0,0 +1,87 @@ +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 2 + } + dim { + size: 4 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + dim { + size: 2 + } + } + int_val: 0 + int_val: 0 + int_val: 0 + int_val: 0 + int_val: 1 + int_val: 1 + int_val: 2 + int_val: 3 + } + } + } +} +node { + name: "MirrorPad" + op: "MirrorPad" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tpaddings" + value { + type: DT_INT32 + } + } + attr { + key: "mode" + value { + s: "REFLECT" + } + } +} diff --git a/res/TensorFlowTests/UNIT_Mul_000/test.info b/res/TensorFlowTests/UNIT_Mul_000/test.info new file mode 100644 index 000000000..b3cb3ff70 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mul_000/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 1] +input, input_02:0, TF_FLOAT, [1, 3, 3, 1] +output, mul:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/UNIT_Mul_000/test.pbtxt b/res/TensorFlowTests/UNIT_Mul_000/test.pbtxt new file mode 100644 index 000000000..fe6dbc330 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mul_000/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "mul" + op: "Mul" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Mul_001/test.info b/res/TensorFlowTests/UNIT_Mul_001/test.info new file mode 100644 index 000000000..9de3a648a --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mul_001/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [1, 1, 1, 5] +output, mul:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Mul_001/test.pbtxt b/res/TensorFlowTests/UNIT_Mul_001/test.pbtxt new file mode 100644 index 000000000..a96c9ae5a --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mul_001/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "mul" + op: "Mul" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Mul_002/test.info b/res/TensorFlowTests/UNIT_Mul_002/test.info new file mode 100644 index 000000000..241ccd9df --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mul_002/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [5] +output, mul:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Mul_002/test.pbtxt b/res/TensorFlowTests/UNIT_Mul_002/test.pbtxt new file mode 100644 index 000000000..9ad65c9f5 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Mul_002/test.pbtxt @@ -0,0 +1,61 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 5 + } + } + } + } +} +node { + name: "mul" + op: "Mul" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Pack_000/test.info b/res/TensorFlowTests/UNIT_Pack_000/test.info new file mode 100644 index 000000000..756eb6bf4 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_000/test.info @@ -0,0 +1 @@ +output, Pack:0, TF_FLOAT, [4] diff --git a/res/TensorFlowTests/UNIT_Pack_000/test.manifest b/res/TensorFlowTests/UNIT_Pack_000/test.manifest new file mode 100644 index 000000000..6501a8041 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_000/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network with one Pack from four scalar Constant inputs diff --git a/res/TensorFlowTests/UNIT_Pack_000/test.pbtxt b/res/TensorFlowTests/UNIT_Pack_000/test.pbtxt new file mode 100644 index 000000000..ba3365e19 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_000/test.pbtxt @@ -0,0 +1,110 @@ +node { + name: "val_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 1 + } + } + } +} +node { + name: "val_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 2 + } + } + } +} +node { + name: "val_3" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 3 + } + } + } +} +node { + name: "val_4" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 4 + } + } + } +} +node { + name: "Pack" + op: "Pack" + input: "val_1" + input: "val_2" + input: "val_3" + input: "val_4" + attr { + key: "N" + value { + i: 4 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Pack_001/test.info b/res/TensorFlowTests/UNIT_Pack_001/test.info new file mode 100644 index 000000000..ee0d55651 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_001/test.info @@ -0,0 +1 @@ +output, pack_0:0, TF_FLOAT, [2, 5, 3] diff --git a/res/TensorFlowTests/UNIT_Pack_001/test.manifest b/res/TensorFlowTests/UNIT_Pack_001/test.manifest new file mode 100644 index 000000000..e4b21c426 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_001/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network with one Pack from two Tensor Constant inputs diff --git a/res/TensorFlowTests/UNIT_Pack_001/test.pbtxt b/res/TensorFlowTests/UNIT_Pack_001/test.pbtxt new file mode 100644 index 000000000..fab3132ff --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_001/test.pbtxt @@ -0,0 +1,78 @@ +node { + name: "val_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 0 + } + } + } +} +node { + name: "val_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 1 + } + } + } +} +node { + name: "pack_0" + op: "Pack" + input: "val_1" + input: "val_2" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "axis" + value { + i: 0 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Pack_002/test.info b/res/TensorFlowTests/UNIT_Pack_002/test.info new file mode 100644 index 000000000..68db8a511 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_002/test.info @@ -0,0 +1 @@ +output, pack_0:0, TF_FLOAT, [5, 3, 2] diff --git a/res/TensorFlowTests/UNIT_Pack_002/test.manifest b/res/TensorFlowTests/UNIT_Pack_002/test.manifest new file mode 100644 index 000000000..8445ed3c5 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_002/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network with one Pack from two Tensor Constant inputs with Pack axis set to 2 diff --git a/res/TensorFlowTests/UNIT_Pack_002/test.pbtxt b/res/TensorFlowTests/UNIT_Pack_002/test.pbtxt new file mode 100644 index 000000000..6693ef29e --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_002/test.pbtxt @@ -0,0 +1,78 @@ +node { + name: "val_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 0 + } + } + } +} +node { + name: "val_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 1 + } + } + } +} +node { + name: "pack_0" + op: "Pack" + input: "val_1" + input: "val_2" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "axis" + value { + i: 2 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Pack_003/test.info b/res/TensorFlowTests/UNIT_Pack_003/test.info new file mode 100644 index 000000000..62cad00d1 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_003/test.info @@ -0,0 +1 @@ +output, pack_0:0, TF_FLOAT, [5, 2, 3] diff --git a/res/TensorFlowTests/UNIT_Pack_003/test.manifest b/res/TensorFlowTests/UNIT_Pack_003/test.manifest new file mode 100644 index 000000000..013c2c511 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_003/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network with one Pack from two Tensor Constant inputs with Pack axis set to -2 diff --git a/res/TensorFlowTests/UNIT_Pack_003/test.pbtxt b/res/TensorFlowTests/UNIT_Pack_003/test.pbtxt new file mode 100644 index 000000000..73b278c02 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_003/test.pbtxt @@ -0,0 +1,78 @@ +node { + name: "val_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 0 + } + } + } +} +node { + name: "val_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 1 + } + } + } +} +node { + name: "pack_0" + op: "Pack" + input: "val_1" + input: "val_2" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "axis" + value { + i: -2 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Pack_004/test.info b/res/TensorFlowTests/UNIT_Pack_004/test.info new file mode 100644 index 000000000..16ff5b9e9 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_004/test.info @@ -0,0 +1 @@ +output, pack_0:0, TF_FLOAT, [2, 5, 3] diff --git a/res/TensorFlowTests/UNIT_Pack_004/test.manifest b/res/TensorFlowTests/UNIT_Pack_004/test.manifest new file mode 100644 index 000000000..dfd369dfd --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_004/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network with one Pack from two Tensor Constant inputs with Pack axis set to -3 diff --git a/res/TensorFlowTests/UNIT_Pack_004/test.pbtxt b/res/TensorFlowTests/UNIT_Pack_004/test.pbtxt new file mode 100644 index 000000000..04dd52fa7 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pack_004/test.pbtxt @@ -0,0 +1,78 @@ +node { + name: "val_1" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 0 + } + } + } +} +node { + name: "val_2" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 5 + } + dim { + size: 3 + } + } + float_val: 1 + } + } + } +} +node { + name: "pack_0" + op: "Pack" + input: "val_1" + input: "val_2" + attr { + key: "N" + value { + i: 2 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "axis" + value { + i: -3 + } + } +} diff --git a/res/TensorFlowTests/UNIT_PadV2_000/test.info b/res/TensorFlowTests/UNIT_PadV2_000/test.info new file mode 100644 index 000000000..accae4857 --- /dev/null +++ b/res/TensorFlowTests/UNIT_PadV2_000/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 3, 4, 4] +output, PadV2:0, TF_FLOAT, [1, 3, 8, 6] diff --git a/res/TensorFlowTests/UNIT_PadV2_000/test.manifest b/res/TensorFlowTests/UNIT_PadV2_000/test.manifest new file mode 100644 index 000000000..1d00241f2 --- /dev/null +++ b/res/TensorFlowTests/UNIT_PadV2_000/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network that has Constant mode Pad with constant values. diff --git a/res/TensorFlowTests/UNIT_PadV2_000/test.pbtxt b/res/TensorFlowTests/UNIT_PadV2_000/test.pbtxt new file mode 100644 index 000000000..cf80fe559 --- /dev/null +++ b/res/TensorFlowTests/UNIT_PadV2_000/test.pbtxt @@ -0,0 +1,103 @@ +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 4 + } + dim { + size: 4 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + dim { + size: 2 + } + } + int_val: 0 + int_val: 0 + int_val: 0 + int_val: 0 + int_val: 2 + int_val: 2 + int_val: 1 + int_val: 1 + } + } + } +} +node { + name: "PadV2/constant_values" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + } + float_val: 2 + } + } + } +} +node { + name: "PadV2" + op: "PadV2" + input: "input" + input: "Const" + input: "PadV2/constant_values" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tpaddings" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Pad_000/test.info b/res/TensorFlowTests/UNIT_Pad_000/test.info new file mode 100644 index 000000000..e9fd5fce2 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pad_000/test.info @@ -0,0 +1,2 @@ +input, input:0, TF_FLOAT, [1, 3, 4, 4] +output, Pad:0, TF_FLOAT, [1, 3, 8, 6] diff --git a/res/TensorFlowTests/UNIT_Pad_000/test.manifest b/res/TensorFlowTests/UNIT_Pad_000/test.manifest new file mode 100644 index 000000000..d3001df34 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pad_000/test.manifest @@ -0,0 +1,8 @@ +SUMMARY: A simple network that has Constant mode Pad with default value(constant_values=0) + +# HOW TO GENERATE: +# import tensorflow as tf +# input = tf.placeholder(tf.float32, shape=[1,3,4,4], name="input") +# paddings = tf.constant([[0,0],[0,0],[2,2],[1,1]]) +# pad_const = tf.pad(input, paddings, "CONSTANT") +# tf.get_default_graph().as_graph_def() diff --git a/res/TensorFlowTests/UNIT_Pad_000/test.pbtxt b/res/TensorFlowTests/UNIT_Pad_000/test.pbtxt new file mode 100644 index 000000000..8d6a5c8aa --- /dev/null +++ b/res/TensorFlowTests/UNIT_Pad_000/test.pbtxt @@ -0,0 +1,81 @@ +node { + name: "input" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 4 + } + dim { + size: 4 + } + } + } + } +} +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 4 + } + dim { + size: 2 + } + } + int_val: 0 + int_val: 0 + int_val: 0 + int_val: 0 + int_val: 2 + int_val: 2 + int_val: 1 + int_val: 1 + } + } + } +} +node { + name: "Pad" + op: "Pad" + input: "input" + input: "Const" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tpaddings" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Placeholder_000/test.info b/res/TensorFlowTests/UNIT_Placeholder_000/test.info new file mode 100644 index 000000000..0d0a8ccc0 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 1, 2] +output, output/identity:0, TF_FLOAT, [1, 2, 1, 2] diff --git a/res/TensorFlowTests/UNIT_Placeholder_000/test.pbtxt b/res/TensorFlowTests/UNIT_Placeholder_000/test.pbtxt new file mode 100644 index 000000000..593fbb2d4 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_000/test.pbtxt @@ -0,0 +1,40 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output/identity" + op: "Identity" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Placeholder_001/test.info b/res/TensorFlowTests/UNIT_Placeholder_001/test.info new file mode 100644 index 000000000..f5e08fb5b --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_001/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 3, 4] +output, Identity:0, TF_FLOAT, [1, 2, 3, 4] diff --git a/res/TensorFlowTests/UNIT_Placeholder_001/test.manifest b/res/TensorFlowTests/UNIT_Placeholder_001/test.manifest new file mode 100644 index 000000000..232ba50a3 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_001/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network of placeholder with unknown dimension. diff --git a/res/TensorFlowTests/UNIT_Placeholder_001/test.pbtxt b/res/TensorFlowTests/UNIT_Placeholder_001/test.pbtxt new file mode 100644 index 000000000..0913d28e3 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_001/test.pbtxt @@ -0,0 +1,40 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: -1 + } + } + } + } +} +node { + name: "Identity" + op: "Identity" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Placeholder_002/test.info b/res/TensorFlowTests/UNIT_Placeholder_002/test.info new file mode 100644 index 000000000..f5e08fb5b --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_002/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 3, 4] +output, Identity:0, TF_FLOAT, [1, 2, 3, 4] diff --git a/res/TensorFlowTests/UNIT_Placeholder_002/test.pbtxt b/res/TensorFlowTests/UNIT_Placeholder_002/test.pbtxt new file mode 100644 index 000000000..e3b468275 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_002/test.pbtxt @@ -0,0 +1,21 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } +} +node { + name: "Identity" + op: "Identity" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Placeholder_003/test.info b/res/TensorFlowTests/UNIT_Placeholder_003/test.info new file mode 100644 index 000000000..f5e08fb5b --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_003/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 3, 4] +output, Identity:0, TF_FLOAT, [1, 2, 3, 4] diff --git a/res/TensorFlowTests/UNIT_Placeholder_003/test.pbtxt b/res/TensorFlowTests/UNIT_Placeholder_003/test.pbtxt new file mode 100644 index 000000000..28955d383 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Placeholder_003/test.pbtxt @@ -0,0 +1,28 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + } + } + } +} +node { + name: "Identity" + op: "Identity" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_RealDiv_000/test.info b/res/TensorFlowTests/UNIT_RealDiv_000/test.info new file mode 100644 index 000000000..b98f2a338 --- /dev/null +++ b/res/TensorFlowTests/UNIT_RealDiv_000/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 1] +input, input_02:0, TF_FLOAT, [1, 3, 3, 1] +output, div:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/UNIT_RealDiv_000/test.pbtxt b/res/TensorFlowTests/UNIT_RealDiv_000/test.pbtxt new file mode 100644 index 000000000..e17d48326 --- /dev/null +++ b/res/TensorFlowTests/UNIT_RealDiv_000/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "div" + op: "RealDiv" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_RealDiv_001/test.info b/res/TensorFlowTests/UNIT_RealDiv_001/test.info new file mode 100644 index 000000000..ecc4cc5a3 --- /dev/null +++ b/res/TensorFlowTests/UNIT_RealDiv_001/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [5] +output, div:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_RealDiv_001/test.pbtxt b/res/TensorFlowTests/UNIT_RealDiv_001/test.pbtxt new file mode 100644 index 000000000..4ee3bb898 --- /dev/null +++ b/res/TensorFlowTests/UNIT_RealDiv_001/test.pbtxt @@ -0,0 +1,61 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 5 + } + } + } + } +} +node { + name: "div" + op: "RealDiv" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Relu6_000/test.info b/res/TensorFlowTests/UNIT_Relu6_000/test.info new file mode 100644 index 000000000..329172400 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Relu6_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 4, 4, 3] +output, Relu6:0, TF_FLOAT, [1, 4, 4, 3] diff --git a/res/TensorFlowTests/UNIT_Relu6_000/test.pbtxt b/res/TensorFlowTests/UNIT_Relu6_000/test.pbtxt new file mode 100644 index 000000000..b2989916c --- /dev/null +++ b/res/TensorFlowTests/UNIT_Relu6_000/test.pbtxt @@ -0,0 +1,30 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 4 } + dim { size: 4 } + dim { size: 3 } + } + } + } +} +node { + name: "Relu6" + op: "Relu6" + input: "Placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } +} diff --git a/res/TensorFlowTests/UNIT_Relu_000/test.info b/res/TensorFlowTests/UNIT_Relu_000/test.info new file mode 100644 index 000000000..e3e2b176e --- /dev/null +++ b/res/TensorFlowTests/UNIT_Relu_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 1, 2] +output, output/relu:0, TF_FLOAT, [1, 2, 1, 2] diff --git a/res/TensorFlowTests/UNIT_Relu_000/test.pbtxt b/res/TensorFlowTests/UNIT_Relu_000/test.pbtxt new file mode 100644 index 000000000..96f21d5de --- /dev/null +++ b/res/TensorFlowTests/UNIT_Relu_000/test.pbtxt @@ -0,0 +1,40 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output/relu" + op: "Relu" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Reshape_000/test.info b/res/TensorFlowTests/UNIT_Reshape_000/test.info new file mode 100644 index 000000000..137cdfa8c --- /dev/null +++ b/res/TensorFlowTests/UNIT_Reshape_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [6] +output, Reshape:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/UNIT_Reshape_000/test.pbtxt b/res/TensorFlowTests/UNIT_Reshape_000/test.pbtxt new file mode 100644 index 000000000..a648fb43c --- /dev/null +++ b/res/TensorFlowTests/UNIT_Reshape_000/test.pbtxt @@ -0,0 +1,63 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 6 + } + } + } + } +} +node { + name: "New_shape" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 2 + } + } + int_val: 2 + int_val: 3 + } + } + } +} +node { + name: "Reshape" + op: "Reshape" + input: "Placeholder" + input: "New_shape" + attr { + key: "T" + value { + type: DT_FLOAT + } + } + attr { + key: "Tshape" + value { + type: DT_INT32 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Rsqrt_000/test.info b/res/TensorFlowTests/UNIT_Rsqrt_000/test.info new file mode 100644 index 000000000..b87da7e44 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Rsqrt_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 1, 2] +output, output/rsqrt:0, TF_FLOAT, [1, 2, 1, 2] diff --git a/res/TensorFlowTests/UNIT_Rsqrt_000/test.pbtxt b/res/TensorFlowTests/UNIT_Rsqrt_000/test.pbtxt new file mode 100644 index 000000000..babfc3702 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Rsqrt_000/test.pbtxt @@ -0,0 +1,40 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output/rsqrt" + op: "Rsqrt" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Shape_000/test.info b/res/TensorFlowTests/UNIT_Shape_000/test.info new file mode 100644 index 000000000..330c6c22c --- /dev/null +++ b/res/TensorFlowTests/UNIT_Shape_000/test.info @@ -0,0 +1 @@ +output, Shape:0, TF_INT32, [2] diff --git a/res/TensorFlowTests/UNIT_Shape_000/test.pbtxt b/res/TensorFlowTests/UNIT_Shape_000/test.pbtxt new file mode 100644 index 000000000..7a6cab72b --- /dev/null +++ b/res/TensorFlowTests/UNIT_Shape_000/test.pbtxt @@ -0,0 +1,41 @@ +# Simple Shape network +node { + name: "Const" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + float_val: 1.0 + } + } + } +} +node { + name: "Shape" + op: "Shape" + input: "Const" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "out_type" + value { type: DT_INT32 } + } +} diff --git a/res/TensorFlowTests/UNIT_Softmax_000/test.info b/res/TensorFlowTests/UNIT_Softmax_000/test.info new file mode 100644 index 000000000..66536b561 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2] +output, Softmax:0, TF_FLOAT, [2] diff --git a/res/TensorFlowTests/UNIT_Softmax_000/test.pbtxt b/res/TensorFlowTests/UNIT_Softmax_000/test.pbtxt new file mode 100644 index 000000000..78451d0b3 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_000/test.pbtxt @@ -0,0 +1,32 @@ +# Softmax with rank-1 tensor +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + } + } + } +} +node { + name: "Softmax" + op: "Softmax" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Softmax_001/test.info b/res/TensorFlowTests/UNIT_Softmax_001/test.info new file mode 100644 index 000000000..fe582132c --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_001/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 3] +output, Softmax:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/UNIT_Softmax_001/test.pbtxt b/res/TensorFlowTests/UNIT_Softmax_001/test.pbtxt new file mode 100644 index 000000000..ec6e030bc --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_001/test.pbtxt @@ -0,0 +1,35 @@ +# Softmax with rank-2 tensor +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "Softmax" + op: "Softmax" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Softmax_002/test.info b/res/TensorFlowTests/UNIT_Softmax_002/test.info new file mode 100644 index 000000000..ae4dcd6a4 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_002/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 3, 4] +output, Softmax:0, TF_FLOAT, [2, 3, 4] diff --git a/res/TensorFlowTests/UNIT_Softmax_002/test.pbtxt b/res/TensorFlowTests/UNIT_Softmax_002/test.pbtxt new file mode 100644 index 000000000..e84d73c78 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_002/test.pbtxt @@ -0,0 +1,38 @@ +# Softmax with rank-3 tensor +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + } + } +} +node { + name: "Softmax" + op: "Softmax" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Softmax_003/test.info b/res/TensorFlowTests/UNIT_Softmax_003/test.info new file mode 100644 index 000000000..97b3574f5 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_003/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 2, 3, 4] +output, Softmax:0, TF_FLOAT, [2, 2, 3, 4] diff --git a/res/TensorFlowTests/UNIT_Softmax_003/test.pbtxt b/res/TensorFlowTests/UNIT_Softmax_003/test.pbtxt new file mode 100644 index 000000000..c4b5ca27f --- /dev/null +++ b/res/TensorFlowTests/UNIT_Softmax_003/test.pbtxt @@ -0,0 +1,41 @@ +# Softmax with rank-4 tensor +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 2 + } + dim { + size: 3 + } + dim { + size: 4 + } + } + } + } +} +node { + name: "Softmax" + op: "Softmax" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Sqrt_000/test.info b/res/TensorFlowTests/UNIT_Sqrt_000/test.info new file mode 100644 index 000000000..9abb96a0c --- /dev/null +++ b/res/TensorFlowTests/UNIT_Sqrt_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 1, 2] +output, output/sqrt:0, TF_FLOAT, [1, 2, 1, 2] diff --git a/res/TensorFlowTests/UNIT_Sqrt_000/test.pbtxt b/res/TensorFlowTests/UNIT_Sqrt_000/test.pbtxt new file mode 100644 index 000000000..0324220e9 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Sqrt_000/test.pbtxt @@ -0,0 +1,40 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output/sqrt" + op: "Sqrt" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_SquaredDifference_000/circle.rule b/res/TensorFlowTests/UNIT_SquaredDifference_000/circle.rule new file mode 100644 index 000000000..bff2459a1 --- /dev/null +++ b/res/TensorFlowTests/UNIT_SquaredDifference_000/circle.rule @@ -0,0 +1,7 @@ +# To check tf2circle's result has Squared Difference Op, not divided into Sub and Div. + +RULE "VERIFY_FILE_FORMAT" $(verify_file_format) '=' 1 + +RULE "SQUARED_DIFF_EXIST" $(op_count SQUARED_DIFFERENCE) '=' 1 +RULE "NO_SUB_EXIST" $(op_count SUB) '=' 0 +RULE "NO_MUL_EXIST" $(op_count MUL) '=' 0 diff --git a/res/TensorFlowTests/UNIT_SquaredDifference_000/test.info b/res/TensorFlowTests/UNIT_SquaredDifference_000/test.info new file mode 100644 index 000000000..cca181d7d --- /dev/null +++ b/res/TensorFlowTests/UNIT_SquaredDifference_000/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 1] +input, input_02:0, TF_FLOAT, [1, 3, 3, 1] +output, squared_difference:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/UNIT_SquaredDifference_000/test.pbtxt b/res/TensorFlowTests/UNIT_SquaredDifference_000/test.pbtxt new file mode 100644 index 000000000..0fca18f0e --- /dev/null +++ b/res/TensorFlowTests/UNIT_SquaredDifference_000/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "squared_difference" + op: "SquaredDifference" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_SquaredDifference_001/test.info b/res/TensorFlowTests/UNIT_SquaredDifference_001/test.info new file mode 100644 index 000000000..8dfd36065 --- /dev/null +++ b/res/TensorFlowTests/UNIT_SquaredDifference_001/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [1, 1, 1, 5] +output, squared_difference:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_SquaredDifference_001/test.pbtxt b/res/TensorFlowTests/UNIT_SquaredDifference_001/test.pbtxt new file mode 100644 index 000000000..5ef69e22f --- /dev/null +++ b/res/TensorFlowTests/UNIT_SquaredDifference_001/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 1 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "squared_difference" + op: "SquaredDifference" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Squeeze_000/test.info b/res/TensorFlowTests/UNIT_Squeeze_000/test.info new file mode 100644 index 000000000..fd07403f2 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 4, 4, 3] +output, Squeeze:0, TF_FLOAT, [4, 4, 3] diff --git a/res/TensorFlowTests/UNIT_Squeeze_000/test.pbtxt b/res/TensorFlowTests/UNIT_Squeeze_000/test.pbtxt new file mode 100644 index 000000000..5ad75fca6 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_000/test.pbtxt @@ -0,0 +1,28 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 1 } + dim { size: 4 } + dim { size: 4 } + dim { size: 3 } + } + } + } +} +node { + name: "Squeeze" + op: "Squeeze" + input: "Placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } +} diff --git a/res/TensorFlowTests/UNIT_Squeeze_001/test.info b/res/TensorFlowTests/UNIT_Squeeze_001/test.info new file mode 100644 index 000000000..f71e97f93 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_001/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 1, 3, 1] +output, Squeeze:0, TF_FLOAT, [2, 3, 1] diff --git a/res/TensorFlowTests/UNIT_Squeeze_001/test.pbtxt b/res/TensorFlowTests/UNIT_Squeeze_001/test.pbtxt new file mode 100644 index 000000000..641300c10 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_001/test.pbtxt @@ -0,0 +1,35 @@ +# Network with Squeeze that has selective squeeze dimension +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 2 } + dim { size: 1 } + dim { size: 3 } + dim { size: 1 } + } + } + } +} +node { + name: "Squeeze" + op: "Squeeze" + input: "Placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "squeeze_dims" + value { + list { i: 1 } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Squeeze_002/test.info b/res/TensorFlowTests/UNIT_Squeeze_002/test.info new file mode 100644 index 000000000..401e102aa --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_002/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 1, 3, 1] +output, Squeeze:0, TF_FLOAT, [2, 1, 3] diff --git a/res/TensorFlowTests/UNIT_Squeeze_002/test.pbtxt b/res/TensorFlowTests/UNIT_Squeeze_002/test.pbtxt new file mode 100644 index 000000000..06d09014a --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_002/test.pbtxt @@ -0,0 +1,35 @@ +# Network with Squeeze that has negative squeeze dimension +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 2 } + dim { size: 1 } + dim { size: 3 } + dim { size: 1 } + } + } + } +} +node { + name: "Squeeze" + op: "Squeeze" + input: "Placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "squeeze_dims" + value { + list { i: -1 } + } + } +} diff --git a/res/TensorFlowTests/UNIT_Squeeze_003/test.info b/res/TensorFlowTests/UNIT_Squeeze_003/test.info new file mode 100644 index 000000000..7cc93f354 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_003/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 1, 3, 1] +output, Squeeze:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/UNIT_Squeeze_003/test.pbtxt b/res/TensorFlowTests/UNIT_Squeeze_003/test.pbtxt new file mode 100644 index 000000000..1c760c87f --- /dev/null +++ b/res/TensorFlowTests/UNIT_Squeeze_003/test.pbtxt @@ -0,0 +1,35 @@ +# Network with Squeeze that have multiple negative squeeze dimensions +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { type: DT_FLOAT } + } + attr { + key: "shape" + value { + shape { + dim { size: 2 } + dim { size: 1 } + dim { size: 3 } + dim { size: 1 } + } + } + } +} +node { + name: "Squeeze" + op: "Squeeze" + input: "Placeholder" + attr { + key: "T" + value { type: DT_FLOAT } + } + attr { + key: "squeeze_dims" + value { + list { i: -1 i: -3 } + } + } +} diff --git a/res/TensorFlowTests/UNIT_StopGradient_000/test.info b/res/TensorFlowTests/UNIT_StopGradient_000/test.info new file mode 100644 index 000000000..2315306d0 --- /dev/null +++ b/res/TensorFlowTests/UNIT_StopGradient_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [2, 3] +output, StopGradient:0, TF_FLOAT, [2, 3] diff --git a/res/TensorFlowTests/UNIT_StopGradient_000/test.pbtxt b/res/TensorFlowTests/UNIT_StopGradient_000/test.pbtxt new file mode 100644 index 000000000..dae572323 --- /dev/null +++ b/res/TensorFlowTests/UNIT_StopGradient_000/test.pbtxt @@ -0,0 +1,34 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 2 + } + dim { + size: 3 + } + } + } + } +} +node { + name: "StopGradient" + op: "StopGradient" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_StopGradient_001/test.info b/res/TensorFlowTests/UNIT_StopGradient_001/test.info new file mode 100644 index 000000000..8f87a218f --- /dev/null +++ b/res/TensorFlowTests/UNIT_StopGradient_001/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 3, 3, 2] +output, StopGradient:0, TF_FLOAT, [1, 3, 3, 2] diff --git a/res/TensorFlowTests/UNIT_StopGradient_001/test.pbtxt b/res/TensorFlowTests/UNIT_StopGradient_001/test.pbtxt new file mode 100644 index 000000000..95e7c358c --- /dev/null +++ b/res/TensorFlowTests/UNIT_StopGradient_001/test.pbtxt @@ -0,0 +1,40 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "StopGradient" + op: "StopGradient" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_StridedSlice_000/test.info b/res/TensorFlowTests/UNIT_StridedSlice_000/test.info new file mode 100644 index 000000000..614bdb208 --- /dev/null +++ b/res/TensorFlowTests/UNIT_StridedSlice_000/test.info @@ -0,0 +1 @@ +output, strided_slice:0, TF_FLOAT, [1] diff --git a/res/TensorFlowTests/UNIT_StridedSlice_000/test.manifest b/res/TensorFlowTests/UNIT_StridedSlice_000/test.manifest new file mode 100644 index 000000000..c02e14a74 --- /dev/null +++ b/res/TensorFlowTests/UNIT_StridedSlice_000/test.manifest @@ -0,0 +1 @@ +SUMMARY: A simple network that has one StridedSlice with shrink_axis_mask 1 diff --git a/res/TensorFlowTests/UNIT_StridedSlice_000/test.pbtxt b/res/TensorFlowTests/UNIT_StridedSlice_000/test.pbtxt new file mode 100644 index 000000000..db7b12b5b --- /dev/null +++ b/res/TensorFlowTests/UNIT_StridedSlice_000/test.pbtxt @@ -0,0 +1,149 @@ +node { + name: "input" + op: "Const" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_FLOAT + tensor_shape { + dim { + size: 4 + } + } + float_val: 1 + float_val: 5 + float_val: 5 + float_val: 256 + } + } + } +} +node { + name: "begin" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "end" + op: "Const" + 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: "strides" + op: "Const" + attr { + key: "dtype" + value { + type: DT_INT32 + } + } + attr { + key: "value" + value { + tensor { + dtype: DT_INT32 + tensor_shape { + dim { + size: 1 + } + } + int_val: 1 + } + } + } +} +node { + name: "strided_slice" + op: "StridedSlice" + input: "input" + input: "begin" + input: "end" + input: "strides" + attr { + key: "Index" + value { + type: DT_INT32 + } + } + attr { + key: "T" + value { + type: DT_FLOAT + } + } + 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 + } + } +} diff --git a/res/TensorFlowTests/UNIT_Sub_000/test.info b/res/TensorFlowTests/UNIT_Sub_000/test.info new file mode 100644 index 000000000..4a6ba8b83 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Sub_000/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 1] +input, input_02:0, TF_FLOAT, [1, 3, 3, 1] +output, sub:0, TF_FLOAT, [1, 3, 3, 1] diff --git a/res/TensorFlowTests/UNIT_Sub_000/test.pbtxt b/res/TensorFlowTests/UNIT_Sub_000/test.pbtxt new file mode 100644 index 000000000..61ecd0221 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Sub_000/test.pbtxt @@ -0,0 +1,70 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 1 + } + } + } + } +} +node { + name: "sub" + op: "Sub" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Sub_001/test.info b/res/TensorFlowTests/UNIT_Sub_001/test.info new file mode 100644 index 000000000..313581754 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Sub_001/test.info @@ -0,0 +1,3 @@ +input, input_01:0, TF_FLOAT, [1, 3, 3, 5] +input, input_02:0, TF_FLOAT, [5] +output, sub:0, TF_FLOAT, [1, 3, 3, 5] diff --git a/res/TensorFlowTests/UNIT_Sub_001/test.pbtxt b/res/TensorFlowTests/UNIT_Sub_001/test.pbtxt new file mode 100644 index 000000000..a0ab396f9 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Sub_001/test.pbtxt @@ -0,0 +1,61 @@ +node { + name: "input_01" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 3 + } + dim { + size: 3 + } + dim { + size: 5 + } + } + } + } +} +node { + name: "input_02" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 5 + } + } + } + } +} +node { + name: "sub" + op: "Sub" + input: "input_01" + input: "input_02" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/UNIT_Tanh_000/test.info b/res/TensorFlowTests/UNIT_Tanh_000/test.info new file mode 100644 index 000000000..6655a9ff6 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Tanh_000/test.info @@ -0,0 +1,2 @@ +input, Placeholder:0, TF_FLOAT, [1, 2, 1, 2] +output, output/tanh:0, TF_FLOAT, [1, 2, 1, 2] diff --git a/res/TensorFlowTests/UNIT_Tanh_000/test.pbtxt b/res/TensorFlowTests/UNIT_Tanh_000/test.pbtxt new file mode 100644 index 000000000..7b3d28527 --- /dev/null +++ b/res/TensorFlowTests/UNIT_Tanh_000/test.pbtxt @@ -0,0 +1,40 @@ +node { + name: "Placeholder" + op: "Placeholder" + attr { + key: "dtype" + value { + type: DT_FLOAT + } + } + attr { + key: "shape" + value { + shape { + dim { + size: 1 + } + dim { + size: 2 + } + dim { + size: 1 + } + dim { + size: 2 + } + } + } + } +} +node { + name: "output/tanh" + op: "Tanh" + input: "Placeholder" + attr { + key: "T" + value { + type: DT_FLOAT + } + } +} diff --git a/res/TensorFlowTests/explain.sh b/res/TensorFlowTests/explain.sh new file mode 100755 index 000000000..9d6903327 --- /dev/null +++ b/res/TensorFlowTests/explain.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +TESTCASE_REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +### Parse Command-line Arguments +SHOW_PATH=0 + +while true; do + case "$1" in + -p | --path) + SHOW_PATH=1; + shift + ;; + *) + break + ;; + esac +done + +### Generate Report +( + # Print HEADER + echo -n "NAME" + echo -n ",SUMMARY" + if [[ ${SHOW_PATH} -ne 0 ]]; then + echo -n ",PATH" + fi + echo + + # Print ROW(s) + for PREFIX in $(cd "${TESTCASE_REPO}"; ls */test.info | xargs -i dirname {} | sort); do + TESTCASE_DIR="${TESTCASE_REPO}/${PREFIX}" + TESTCASE_MANIFEST_FILE="${TESTCASE_DIR}/test.manifest" + TESTCASE_GRAPHDEF_FILE="${TESTCASE_DIR}/test.pbtxt" + + echo -n "${PREFIX}" + if [[ -f "${TESTCASE_MANIFEST_FILE}" ]]; then + echo -n ",$(cat "${TESTCASE_MANIFEST_FILE}" | grep '^SUMMARY: ' | head -n1 | sed 's/^SUMMARY://g' | xargs)" + else + echo -n ",-" + fi + if [[ ${SHOW_PATH} -ne 0 ]]; then + echo -n ",${TESTCASE_GRAPHDEF_FILE}" + fi + echo + done +) | column -t -s , |