gen_tf_pb.py 9.56 KB
Newer Older
Khalique's avatar
Khalique committed
1
2
3
import numpy as np
import tensorflow as tf

Khalique's avatar
Khalique committed
4
5
6
7
8
9
def tf_test(op_test):
    def run_test():
        g1 = tf.Graph()
        op_test(g1)
        tf.io.write_graph(g1, '.', '{}.pb'.format(op_test.__name__), as_text=False)
    return run_test
Khalique's avatar
Khalique committed
10

Khalique's avatar
Khalique committed
11
12
@tf_test
def add_test(g1):
Khalique's avatar
Khalique committed
13
14
15
16
17
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '1')
        tf.add(g1_input, g2_input, name = 'add1')

Khalique's avatar
Khalique committed
18
19
@tf_test
def add_bcast_test(g1):
Khalique's avatar
Khalique committed
20
21
22
23
24
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(2,3), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(2,1), name = '1')
        tf.math.add(g1_input, g2_input, name = 'add_bcast1')

Khalique's avatar
Khalique committed
25
26
@tf_test
def assert_less_equal_test(g1):
Khalique's avatar
Khalique committed
27
28
29
30
31
32
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(2,3), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(2,3), name = '1')
        with tf.control_dependencies([tf.assert_less_equal(g1_input, g2_input)]):
            tf.add(g1_input, g2_input, name = 'add1')

Khalique's avatar
Khalique committed
33
34
@tf_test
def batchmatmul_test(g1):
Khalique's avatar
Khalique committed
35
36
37
38
39
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,2,8,4), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(1,2,4,8), name = '1')
        tf.matmul(g1_input, g2_input, transpose_a=True, transpose_b=True, name='batchmatmul1')

Khalique's avatar
Khalique committed
40
41
@tf_test
def batchnorm_test(g1):
Khalique's avatar
Khalique committed
42
43
44
45
46
47
48
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1, 16, 16, 32), name = '0')
        g1_scale = tf.constant(1.0, dtype=tf.float32, shape=[32], name = '1')
        g1_offset = tf.placeholder(tf.float32, shape=(32), name = '2')
        g1_mean = tf.placeholder(tf.float32, shape=(32), name = '3')
        g1_variance = tf.placeholder(tf.float32, shape=(32), name = '4')
        tf.nn.fused_batch_norm(
Khalique's avatar
Khalique committed
49
50
51
            g1_input, g1_scale, g1_offset, g1_mean, g1_variance,
            epsilon=0.00001, is_training=False, name='batchnorm1'
        )
Khalique's avatar
Khalique committed
52

Khalique's avatar
Khalique committed
53
54
@tf_test
def biasadd_test(g1):
Khalique's avatar
Khalique committed
55
56
57
58
59
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,1,1,500), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(500), name = '1')
        tf.nn.bias_add(g1_input, g2_input, name = 'bias_add1')

Khalique's avatar
Khalique committed
60
61
@tf_test
def cast_test(g1):
Khalique's avatar
Khalique committed
62
63
64
65
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.cast(g1_input, dtype=tf.int32, name='cast1')

Khalique's avatar
Khalique committed
66
67
@tf_test
def concat_test(g1):
Khalique's avatar
Khalique committed
68
69
70
71
72
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(4,7,3), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(4,2,3), name = '1')
        tf.concat([g1_input, g2_input], axis=1, name = 'concat1')

Khalique's avatar
Khalique committed
73
74
@tf_test
def const_test(g1):
Khalique's avatar
Khalique committed
75
76
77
    with g1.as_default():
        tf.constant(1.0, dtype=tf.float32 ,name='constant1')

Khalique's avatar
Khalique committed
78
79
@tf_test
def conv_test(g1):
Khalique's avatar
Khalique committed
80
81
82
83
84
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,16,16,3), name = '0')
        g1_weights = tf.constant(value=1.0, dtype=tf.float32, shape=(3,3,3,32), name = '1')
        tf.nn.conv2d(g1_input, g1_weights, [1,1,1,1], "SAME", name = 'conv1')

Khalique's avatar
Khalique committed
85
86
@tf_test
def depthwiseconv_test(g1):
Khalique's avatar
Khalique committed
87
88
89
90
91
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,16,16,3), name = '0')
        g1_weights = tf.constant(value=1.0, dtype=tf.float32, shape=(3,3,3,1), name = '1')
        tf.nn.depthwise_conv2d_native(g1_input, g1_weights, [1,1,1,1], "SAME", name = 'depthwiseconv1')

Khalique's avatar
Khalique committed
92
93
@tf_test
def expanddims_test(g1):
Khalique's avatar
Khalique committed
94
95
96
97
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(2,3,4), name = '0')
        tf.expand_dims(g1_input, axis=-1, name='expanddims_neg')

Khalique's avatar
Khalique committed
98
99
@tf_test
def gather_test(g1):
Khalique's avatar
Khalique committed
100
101
102
103
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(2,4), name = '0')
        tf.gather(g1_input, [1,1], axis=1, name='gather1')

Khalique's avatar
Khalique committed
104
105
@tf_test
def identity_test(g1):
Khalique's avatar
Khalique committed
106
107
108
109
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.identity(g1_input, 'identity')

Khalique's avatar
Khalique committed
110
111
@tf_test
def matmul_test(g1):
Khalique's avatar
Khalique committed
112
113
114
115
116
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(8,4), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(4,8), name = '1')
        tf.matmul(g1_input, g2_input, transpose_a=True, transpose_b=True, name='matmul1')

Khalique's avatar
Khalique committed
117
118
@tf_test
def mean_test(g1):
Khalique's avatar
Khalique committed
119
120
121
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.math.reduce_mean(
Khalique's avatar
Khalique committed
122
123
124
125
126
            g1_input,
            axis=(2,3),
            keepdims=True,
            name='mean1'
        )
Khalique's avatar
Khalique committed
127
        tf.math.reduce_mean(
Khalique's avatar
Khalique committed
128
129
130
131
132
            g1_input,
            axis=(2,3),
            keepdims=False,
            name='mean2'
        )
Khalique's avatar
Khalique committed
133

Khalique's avatar
Khalique committed
134
135
@tf_test
def mean_test_nhwc(g1):
Khalique's avatar
Khalique committed
136
137
138
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,16,16,3), name = '0')
        tf.math.reduce_mean(
Khalique's avatar
Khalique committed
139
140
141
142
143
            g1_input,
            axis=(1,2),
            keepdims=True,
            name='mean1'
        )
Khalique's avatar
Khalique committed
144
        tf.math.reduce_mean(
Khalique's avatar
Khalique committed
145
146
147
148
149
            g1_input,
            axis=(1,2),
            keepdims=False,
            name='mean2'
        )
Khalique's avatar
Khalique committed
150

Khalique's avatar
Khalique committed
151
152
@tf_test
def mul_test(g1):
Khalique's avatar
Khalique committed
153
154
155
156
157
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,1,1,16), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(1,1,1,16), name = '1')
        tf.multiply(g1_input, g2_input, name='mul1')

Khalique's avatar
Khalique committed
158
159
@tf_test
def pack_test(g1):
Khalique's avatar
Khalique committed
160
161
162
163
164
165
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(2), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(2), name = '1')
        g3_input = tf.placeholder(tf.float32, shape=(2), name = '2')
        tf.stack([g1_input, g2_input, g3_input], axis=1, name = 'pack1')

Khalique's avatar
Khalique committed
166
167
@tf_test
def pack_test_nhwc(g1):
Khalique's avatar
Khalique committed
168
169
170
171
172
173
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,1,1,2), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(1,1,1,2), name = '1')
        g3_input = tf.placeholder(tf.float32, shape=(1,1,1,2), name = '2')
        tf.stack([g1_input, g2_input, g3_input], axis=3, name = 'pack1')

Khalique's avatar
Khalique committed
174
175
@tf_test
def pooling_test(g1):
Khalique's avatar
Khalique committed
176
177
178
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,16,16,3), name = '0')
        tf.nn.avg_pool(
Khalique's avatar
Khalique committed
179
180
181
182
183
184
185
            value=g1_input,
            ksize=(1,2,2,1),
            strides=(1,2,2,1),
            padding='VALID',
            data_format='NHWC',
            name='avg_pooling'
        )
Khalique's avatar
Khalique committed
186
        tf.nn.max_pool(
Khalique's avatar
Khalique committed
187
188
189
190
191
192
193
            value=g1_input,
            ksize=(1,2,2,1),
            strides=(1,2,2,1),
            padding='VALID',
            data_format='NHWC',
            name='max_pooling'
        )
Khalique's avatar
Khalique committed
194

Khalique's avatar
Khalique committed
195
196
@tf_test
def pow_test(g1):
Khalique's avatar
Khalique committed
197
198
199
200
201
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '1')
        tf.pow(g1_input, g2_input, name = 'pow1')

Khalique's avatar
Khalique committed
202
203
@tf_test
def relu_test(g1):
Khalique's avatar
Khalique committed
204
205
206
207
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.nn.relu(g1_input, 'relu')

Khalique's avatar
Khalique committed
208
209
@tf_test
def relu6_test(g1):
Khalique's avatar
Khalique committed
210
211
212
213
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.nn.relu6(g1_input, 'relu6')

Khalique's avatar
Khalique committed
214
215
@tf_test
def reshape_test(g1):
Khalique's avatar
Khalique committed
216
217
218
219
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(16), name = '0')
        tf.reshape(g1_input, (1,1,1,16), 'reshape')

Khalique's avatar
Khalique committed
220
221
@tf_test
def rsqrt_test(g1):
Khalique's avatar
Khalique committed
222
223
224
225
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.math.rsqrt(g1_input, 'rsqrt')

Khalique's avatar
Khalique committed
226
227
@tf_test
def slice_test(g1):
Khalique's avatar
Khalique committed
228
229
230
231
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(5,10), name = '0')
        tf.slice(g1_input, [1, 0], [2, -1], name = 'slice1')

Khalique's avatar
Khalique committed
232
233
@tf_test
def softmax_test(g1):
Khalique's avatar
Khalique committed
234
235
236
237
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3), name = '0')
        tf.nn.softmax(g1_input, name='softmax')

Khalique's avatar
Khalique committed
238
239
@tf_test
def sqdiff_test(g1):
Khalique's avatar
Khalique committed
240
241
242
243
244
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '1')
        tf.squared_difference(g1_input, g2_input, name = 'sqdiff')

Khalique's avatar
Khalique committed
245
246
@tf_test
def squeeze_test(g1):
Khalique's avatar
Khalique committed
247
248
249
250
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,2,3,1), name = '0')
        tf.squeeze(g1_input, name='squeeze')

Khalique's avatar
Khalique committed
251
252
@tf_test
def stopgradient_test(g1):
Khalique's avatar
Khalique committed
253
254
255
256
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.stop_gradient(g1_input, 'stopgradient')

Khalique's avatar
Khalique committed
257
258
@tf_test
def stridedslice_test(g1):
Khalique's avatar
Khalique committed
259
260
261
262
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,1,1,10), name = '0')
        tf.strided_slice(g1_input, [0, 0, 0, 0], [1, 1, 1, 5], [1,1,1,1], shrink_axis_mask=2, name = 'stridedslice1')

Khalique's avatar
Khalique committed
263
264
@tf_test
def stridedslice_masks_test(g1):
Khalique's avatar
Khalique committed
265
266
267
268
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,3,10), name = '0')
        tf.strided_slice(g1_input, [0, 1, 1, 0], [0, 0, 0, 0], [1,1,1,1], begin_mask=9, end_mask=15, name = 'stridedslice1')

Khalique's avatar
Khalique committed
269
270
@tf_test
def sub_test(g1):
Khalique's avatar
Khalique committed
271
272
273
274
275
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '0')
        g2_input = tf.placeholder(tf.float32, shape=(1,2,2,3), name = '1')
        tf.subtract(g1_input, g2_input, name = 'sub1')

Khalique's avatar
Khalique committed
276
277
@tf_test
def tanh_test(g1):
Khalique's avatar
Khalique committed
278
279
280
281
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.tanh(g1_input, 'tanh')

Khalique's avatar
Khalique committed
282
283
@tf_test
def transpose_test(g1):
Khalique's avatar
Khalique committed
284
285
286
    with g1.as_default():
        g1_input = tf.placeholder(tf.float32, shape=(1,3,16,16), name = '0')
        tf.transpose(g1_input, perm=[0,2,3,1], name = 'transpose')