gen_tf_pb.py 25.2 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#####################################################################################
# The MIT License (MIT)
#
# Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#####################################################################################
24
25
26
# This script generates tf pb files for MIGraphX tf operator tests.
# To generate an individual pb file, you can use the following
# command: python -c "import gen_tf_pb; gen_tf_pb.{test_name}_test()"
Khalique's avatar
Khalique committed
27
28
import tensorflow as tf

Khalique's avatar
Khalique committed
29

Khalique's avatar
Khalique committed
30
31
32
33
def tf_test(op_test):
    def run_test():
        g1 = tf.Graph()
        op_test(g1)
Khalique's avatar
Khalique committed
34
35
36
37
38
        tf.io.write_graph(g1,
                          '.',
                          '{}.pb'.format(op_test.__name__),
                          as_text=False)

Khalique's avatar
Khalique committed
39
    return run_test
Khalique's avatar
Khalique committed
40

Khalique's avatar
Khalique committed
41

Khalique's avatar
Khalique committed
42
43
@tf_test
def add_test(g1):
Khalique's avatar
Khalique committed
44
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
45
46
47
48
49
50
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='1')
Khalique's avatar
Khalique committed
51
52
        tf.add(g1_input, g2_input, name='add1')

Khalique's avatar
Khalique committed
53

kahmed10's avatar
kahmed10 committed
54
55
56
57
58
59
60
61
62
63
64
65
@tf_test
def addv2_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='1')
        tf.raw_ops.AddV2(x=g1_input, y=g2_input, name='add1')


Khalique's avatar
Khalique committed
66
67
@tf_test
def add_bcast_test(g1):
Khalique's avatar
Khalique committed
68
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
69
70
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(2, 3), name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32, shape=(2, 1), name='1')
Khalique's avatar
Khalique committed
71
72
        tf.math.add(g1_input, g2_input, name='add_bcast1')

Khalique's avatar
Khalique committed
73

74
75
76
@tf_test
def argmax_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
77
78
79
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(3, 4, 5, 6),
                                            name='0')
80
81
82
83
84
85
        tf.argmax(g1_input, axis=2, name='argmax1')


@tf_test
def argmin_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
86
87
88
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(3, 4, 5, 6),
                                            name='0')
89
90
91
        tf.argmin(g1_input, axis=2, name='argmin1')


Khalique's avatar
Khalique committed
92
93
@tf_test
def assert_less_equal_test(g1):
Khalique's avatar
Khalique committed
94
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
95
96
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(2, 3), name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32, shape=(2, 3), name='1')
Khalique's avatar
Khalique committed
97
        with tf.control_dependencies(
kahmed10's avatar
kahmed10 committed
98
            [tf.compat.v1.assert_less_equal(g1_input, g2_input)]):
Khalique's avatar
Khalique committed
99
100
            tf.add(g1_input, g2_input, name='add1')

Khalique's avatar
Khalique committed
101

Khalique's avatar
Khalique committed
102
103
@tf_test
def batchmatmul_test(g1):
Khalique's avatar
Khalique committed
104
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
105
106
107
108
109
110
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 8, 4),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 4, 8),
                                            name='1')
Khalique's avatar
Khalique committed
111
112
113
114
115
116
        tf.matmul(g1_input,
                  g2_input,
                  transpose_a=True,
                  transpose_b=True,
                  name='batchmatmul1')

Khalique's avatar
Khalique committed
117

Khalique's avatar
Khalique committed
118
119
@tf_test
def batchnorm_test(g1):
Khalique's avatar
Khalique committed
120
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
        g1_input = tf.compat.v1.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.compat.v1.placeholder(tf.float32, shape=(32), name='2')
        g1_mean = tf.compat.v1.placeholder(tf.float32, shape=(32), name='3')
        g1_variance = tf.compat.v1.placeholder(tf.float32,
                                               shape=(32),
                                               name='4')
        tf.compat.v1.nn.fused_batch_norm(x=g1_input,
                                         scale=g1_scale,
                                         offset=g1_offset,
                                         mean=g1_mean,
                                         variance=g1_variance,
                                         epsilon=0.00001,
                                         is_training=False,
                                         name='batchnorm1')


@tf_test
def batchnormv3_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 32),
                                            name='0')
Khalique's avatar
Khalique committed
146
        g1_scale = tf.constant(1.0, dtype=tf.float32, shape=[32], name='1')
kahmed10's avatar
kahmed10 committed
147
148
149
150
151
152
153
154
155
156
157
158
159
        g1_offset = tf.compat.v1.placeholder(tf.float32, shape=(32), name='2')
        g1_mean = tf.compat.v1.placeholder(tf.float32, shape=(32), name='3')
        g1_variance = tf.compat.v1.placeholder(tf.float32,
                                               shape=(32),
                                               name='4')
        tf.raw_ops.FusedBatchNormV3(x=g1_input,
                                    scale=g1_scale,
                                    offset=g1_offset,
                                    mean=g1_mean,
                                    variance=g1_variance,
                                    epsilon=0.00001,
                                    is_training=False,
                                    name='batchnorm1')
Khalique's avatar
Khalique committed
160

Khalique's avatar
Khalique committed
161

Khalique's avatar
Khalique committed
162
163
@tf_test
def biasadd_test(g1):
Khalique's avatar
Khalique committed
164
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
165
166
167
168
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 500),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32, shape=(500), name='1')
Khalique's avatar
Khalique committed
169
170
        tf.nn.bias_add(g1_input, g2_input, name='bias_add1')

Khalique's avatar
Khalique committed
171

kahmed10's avatar
kahmed10 committed
172
173
174
175
176
177
178
179
@tf_test
def biasadd_scalar_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(1, 1), name='0')
        g2_const = tf.constant(1.0, tf.float32, shape=(1, ), name='1')
        tf.nn.bias_add(g1_input, g2_const, name='bias_add1')


Khalique's avatar
Khalique committed
180
181
@tf_test
def cast_test(g1):
Khalique's avatar
Khalique committed
182
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
183
184
185
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
186
187
        tf.cast(g1_input, dtype=tf.int32, name='cast1')

Khalique's avatar
Khalique committed
188

Khalique's avatar
Khalique committed
189
190
@tf_test
def concat_test(g1):
Khalique's avatar
Khalique committed
191
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
192
193
194
195
196
197
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(4, 7, 3),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(4, 2, 3),
                                            name='1')
Khalique's avatar
Khalique committed
198
199
        tf.concat([g1_input, g2_input], axis=1, name='concat1')

Khalique's avatar
Khalique committed
200

Khalique's avatar
Khalique committed
201
202
@tf_test
def const_test(g1):
Khalique's avatar
Khalique committed
203
    with g1.as_default():
Khalique's avatar
Khalique committed
204
205
        tf.constant(1.0, dtype=tf.float32, name='constant1')

Khalique's avatar
Khalique committed
206

Khalique's avatar
Khalique committed
207
208
@tf_test
def conv_test(g1):
Khalique's avatar
Khalique committed
209
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
210
211
212
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 3),
                                            name='0')
Khalique's avatar
Khalique committed
213
214
215
216
217
218
        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
219

kahmed10's avatar
kahmed10 committed
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
@tf_test
def conv_add_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.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')
        conv = tf.nn.conv2d(g1_input,
                            g1_weights, [1, 1, 1, 1],
                            "SAME",
                            name='conv1')
        tf.add(conv, conv, name='add1')


kahmed10's avatar
kahmed10 committed
237
238
239
240
241
242
243
244
245
246
247
248
249
@tf_test
def conv_batch_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(None, 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')


kahmed10's avatar
kahmed10 committed
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
@tf_test
def conv_nchw_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            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",
                     data_format='NCHW',
                     name='conv1')


kahmed10's avatar
kahmed10 committed
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
@tf_test
def conv_relu_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.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')
        conv = tf.nn.conv2d(g1_input,
                            g1_weights, [1, 1, 1, 1],
                            "SAME",
                            name='conv1')
        tf.nn.relu(conv, name='relu1')


@tf_test
def conv_relu6_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.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')
        conv = tf.nn.conv2d(g1_input,
                            g1_weights, [1, 1, 1, 1],
                            "SAME",
                            name='conv1')
        tf.nn.relu6(conv, name='relu1')


Khalique's avatar
Khalique committed
301
302
@tf_test
def depthwiseconv_test(g1):
Khalique's avatar
Khalique committed
303
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
304
305
306
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 3),
                                            name='0')
Khalique's avatar
Khalique committed
307
308
309
310
        g1_weights = tf.constant(value=1.0,
                                 dtype=tf.float32,
                                 shape=(3, 3, 3, 1),
                                 name='1')
kahmed10's avatar
kahmed10 committed
311
312
313
314
        tf.compat.v1.nn.depthwise_conv2d_native(g1_input,
                                                g1_weights, [1, 1, 1, 1],
                                                "SAME",
                                                name='depthwiseconv1')
Khalique's avatar
Khalique committed
315

Khalique's avatar
Khalique committed
316

Khalique's avatar
Khalique committed
317
318
@tf_test
def expanddims_test(g1):
Khalique's avatar
Khalique committed
319
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
320
321
322
323
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(2, 3, 4),
                                            name='0')
        tf.expand_dims(g1_input, axis=0, name='expanddims_neg')
Khalique's avatar
Khalique committed
324

Khalique's avatar
Khalique committed
325

Khalique's avatar
Khalique committed
326
327
@tf_test
def gather_test(g1):
Khalique's avatar
Khalique committed
328
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
329
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(2, 4), name='0')
Khalique's avatar
Khalique committed
330
331
        tf.gather(g1_input, [1, 1], axis=1, name='gather1')

Khalique's avatar
Khalique committed
332

Khalique's avatar
Khalique committed
333
334
@tf_test
def identity_test(g1):
Khalique's avatar
Khalique committed
335
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
336
337
338
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
339
340
        tf.identity(g1_input, 'identity')

Khalique's avatar
Khalique committed
341

Khalique's avatar
Khalique committed
342
343
@tf_test
def matmul_test(g1):
Khalique's avatar
Khalique committed
344
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
345
346
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(8, 4), name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32, shape=(4, 8), name='1')
Khalique's avatar
Khalique committed
347
348
349
350
351
352
        tf.matmul(g1_input,
                  g2_input,
                  transpose_a=True,
                  transpose_b=True,
                  name='matmul1')

Khalique's avatar
Khalique committed
353

Khalique's avatar
Khalique committed
354
355
@tf_test
def mean_test(g1):
Khalique's avatar
Khalique committed
356
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
357
358
359
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
360
361
362
363
364
365
        tf.math.reduce_mean(g1_input, axis=(2, 3), keepdims=True, name='mean1')
        tf.math.reduce_mean(g1_input,
                            axis=(2, 3),
                            keepdims=False,
                            name='mean2')

Khalique's avatar
Khalique committed
366

Khalique's avatar
Khalique committed
367
368
@tf_test
def mean_test_nhwc(g1):
Khalique's avatar
Khalique committed
369
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
370
371
372
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 3),
                                            name='0')
Khalique's avatar
Khalique committed
373
374
375
376
377
        tf.math.reduce_mean(g1_input,
                            axis=(1, 2),
                            keepdims=False,
                            name='mean2')

Khalique's avatar
Khalique committed
378

Khalique's avatar
Khalique committed
379
380
@tf_test
def mul_test(g1):
Khalique's avatar
Khalique committed
381
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
382
383
384
385
386
387
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 16),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 16),
                                            name='1')
Khalique's avatar
Khalique committed
388
389
        tf.multiply(g1_input, g2_input, name='mul1')

Khalique's avatar
Khalique committed
390

kahmed10's avatar
kahmed10 committed
391
392
393
394
395
396
397
398
399
400
@tf_test
def multi_output_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
        tf.nn.relu(g1_input, 'relu')
        tf.tanh(g1_input, 'tanh')


kahmed10's avatar
kahmed10 committed
401
402
403
404
405
406
@tf_test
def noop_test(g1):
    with g1.as_default():
        tf.raw_ops.NoOp(name='noop1')


kahmed10's avatar
kahmed10 committed
407
408
409
410
411
412
413
@tf_test
def onehot_test(g1):
    with g1.as_default():
        g1_input = tf.constant((1, 1, 1, 1, 1), dtype=tf.int32)
        tf.one_hot(g1_input, 2, name='onehot1')


Khalique's avatar
Khalique committed
414
415
@tf_test
def pack_test(g1):
Khalique's avatar
Khalique committed
416
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
417
418
419
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(2), name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32, shape=(2), name='1')
        g3_input = tf.compat.v1.placeholder(tf.float32, shape=(2), name='2')
Khalique's avatar
Khalique committed
420
421
        tf.stack([g1_input, g2_input, g3_input], axis=1, name='pack1')

Khalique's avatar
Khalique committed
422

Khalique's avatar
Khalique committed
423
424
@tf_test
def pack_test_nhwc(g1):
Khalique's avatar
Khalique committed
425
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
426
427
428
429
430
431
432
433
434
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 2),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 2),
                                            name='1')
        g3_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 2),
                                            name='2')
Khalique's avatar
Khalique committed
435
436
        tf.stack([g1_input, g2_input, g3_input], axis=3, name='pack1')

Khalique's avatar
Khalique committed
437

kahmed10's avatar
kahmed10 committed
438
439
440
441
442
443
444
445
446
@tf_test
def pad_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(2, 4), name='0')
        paddings = tf.constant([[1, 1], [2, 2]])

        tf.pad(g1_input, paddings, name='pad1')


Khalique's avatar
Khalique committed
447
448
@tf_test
def pooling_test(g1):
Khalique's avatar
Khalique committed
449
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 3),
                                            name='0')
        tf.compat.v1.nn.avg_pool(value=g1_input,
                                 ksize=(1, 2, 2, 1),
                                 strides=(1, 2, 2, 1),
                                 padding='VALID',
                                 data_format='NHWC',
                                 name='avg_pooling')
        tf.compat.v1.nn.max_pool(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
465

Khalique's avatar
Khalique committed
466

Khalique's avatar
Khalique committed
467
468
@tf_test
def pow_test(g1):
Khalique's avatar
Khalique committed
469
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
470
471
472
473
474
475
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='1')
Khalique's avatar
Khalique committed
476
477
        tf.pow(g1_input, g2_input, name='pow1')

Khalique's avatar
Khalique committed
478

Khalique's avatar
Khalique committed
479
480
@tf_test
def relu_test(g1):
Khalique's avatar
Khalique committed
481
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
482
483
484
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
485
486
        tf.nn.relu(g1_input, 'relu')

Khalique's avatar
Khalique committed
487

Khalique's avatar
Khalique committed
488
489
@tf_test
def relu6_test(g1):
Khalique's avatar
Khalique committed
490
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
491
492
493
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
494
495
        tf.nn.relu6(g1_input, 'relu6')

Khalique's avatar
Khalique committed
496

497
498
499
500
501
502
503
504
505
@tf_test
def relu6_mismatch_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float16,
                                            shape=(1, 3, 13, 37),
                                            name='0')
        tf.nn.relu6(g1_input, 'relu6')


Khalique's avatar
Khalique committed
506
507
@tf_test
def reshape_test(g1):
Khalique's avatar
Khalique committed
508
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
509
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(16), name='0')
Khalique's avatar
Khalique committed
510
511
        tf.reshape(g1_input, (1, 1, 1, 16), 'reshape')

Khalique's avatar
Khalique committed
512

Khalique's avatar
Khalique committed
513
514
@tf_test
def rsqrt_test(g1):
Khalique's avatar
Khalique committed
515
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
516
517
518
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
519
520
        tf.math.rsqrt(g1_input, 'rsqrt')

Khalique's avatar
Khalique committed
521

522
523
524
@tf_test
def shape_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
525
526
527
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
528
529
530
    g1.create_op(op_type='Shape', inputs=[g1_input])


Khalique's avatar
Khalique committed
531
532
@tf_test
def slice_test(g1):
Khalique's avatar
Khalique committed
533
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
534
535
536
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 10),
                                            name='0')
Khalique's avatar
Khalique committed
537
538
        tf.slice(g1_input, [1, 0], [2, -1], name='slice1')

Khalique's avatar
Khalique committed
539

Khalique's avatar
Khalique committed
540
541
@tf_test
def softmax_test(g1):
Khalique's avatar
Khalique committed
542
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
543
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(1, 3), name='0')
Khalique's avatar
Khalique committed
544
545
        tf.nn.softmax(g1_input, name='softmax')

Khalique's avatar
Khalique committed
546

kahmed10's avatar
kahmed10 committed
547
548
549
@tf_test
def split_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
550
551
552
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 30),
                                            name='0')
kahmed10's avatar
kahmed10 committed
553
554
555
556
557
558
559
560
        split0, split1, split2 = tf.split(g1_input, 3, 1, name='split')
        tf.concat([split0, split1], axis=1, name='concat1')
        tf.concat([split1, split2], axis=1, name='concat2')


@tf_test
def split_test_one_output(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
561
562
563
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 30),
                                            name='0')
kahmed10's avatar
kahmed10 committed
564
565
566
567
568
569
        tf.split(g1_input, 1, 1, name='split')


@tf_test
def split_test_vector_as_input(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
570
571
572
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 30),
                                            name='0')
kahmed10's avatar
kahmed10 committed
573
574
575
576
577
578
579
        split0, split1, split2 = tf.split(g1_input, [4, 15, 11],
                                          1,
                                          name='split')
        tf.concat([split0, split1], axis=1, name='concat1')
        tf.concat([split1, split2], axis=1, name='concat2')


Khalique's avatar
Khalique committed
580
581
@tf_test
def sqdiff_test(g1):
Khalique's avatar
Khalique committed
582
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
583
584
585
586
587
588
589
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='1')
        tf.compat.v1.squared_difference(g1_input, g2_input, name='sqdiff')
Khalique's avatar
Khalique committed
590

Khalique's avatar
Khalique committed
591

Khalique's avatar
Khalique committed
592
593
@tf_test
def squeeze_test(g1):
Khalique's avatar
Khalique committed
594
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
595
596
597
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 3, 1),
                                            name='0')
Khalique's avatar
Khalique committed
598
599
        tf.squeeze(g1_input, name='squeeze')

Khalique's avatar
Khalique committed
600

Khalique's avatar
Khalique committed
601
602
@tf_test
def stopgradient_test(g1):
Khalique's avatar
Khalique committed
603
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
604
605
606
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
607
608
        tf.stop_gradient(g1_input, 'stopgradient')

Khalique's avatar
Khalique committed
609

Khalique's avatar
Khalique committed
610
611
@tf_test
def stridedslice_test(g1):
Khalique's avatar
Khalique committed
612
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
613
614
615
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 10),
                                            name='0')
Khalique's avatar
Khalique committed
616
617
618
619
        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
620

Khalique's avatar
Khalique committed
621
622
@tf_test
def stridedslice_masks_test(g1):
Khalique's avatar
Khalique committed
623
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
624
625
626
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 3, 10),
                                            name='0')
Khalique's avatar
Khalique committed
627
628
629
630
631
        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
632

Khalique's avatar
Khalique committed
633
634
@tf_test
def sub_test(g1):
Khalique's avatar
Khalique committed
635
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
636
637
638
639
640
641
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='0')
        g2_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 2, 2, 3),
                                            name='1')
Khalique's avatar
Khalique committed
642
643
        tf.subtract(g1_input, g2_input, name='sub1')

Khalique's avatar
Khalique committed
644

Khalique's avatar
Khalique committed
645
646
@tf_test
def tanh_test(g1):
Khalique's avatar
Khalique committed
647
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
648
649
650
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
651
652
        tf.tanh(g1_input, 'tanh')

Khalique's avatar
Khalique committed
653

Khalique's avatar
Khalique committed
654
655
@tf_test
def transpose_test(g1):
Khalique's avatar
Khalique committed
656
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
657
658
659
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
660
        tf.transpose(g1_input, perm=[0, 2, 3, 1], name='transpose')
661
662
663
664
665


@tf_test
def variable_batch_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
666
667
668
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(0, 3, 16, 16),
                                            name='0')
669
        tf.identity(g1_input, name='identity')
kahmed10's avatar
kahmed10 committed
670
671
672
673
674
675
676
677
678
679
680
681
682


if __name__ == '__main__':
    add_test()
    addv2_test()
    add_bcast_test()
    argmax_test()
    argmin_test()
    assert_less_equal_test()
    batchmatmul_test()
    batchnorm_test()
    batchnormv3_test()
    biasadd_test()
kahmed10's avatar
kahmed10 committed
683
    biasadd_scalar_test()
kahmed10's avatar
kahmed10 committed
684
685
686
687
    cast_test()
    concat_test()
    const_test()
    conv_test()
kahmed10's avatar
kahmed10 committed
688
    conv_add_test()
kahmed10's avatar
kahmed10 committed
689
    conv_batch_test()
kahmed10's avatar
kahmed10 committed
690
    conv_nchw_test()
kahmed10's avatar
kahmed10 committed
691
692
    conv_relu_test()
    conv_relu6_test()
kahmed10's avatar
kahmed10 committed
693
694
695
696
697
698
699
700
    depthwiseconv_test()
    expanddims_test()
    gather_test()
    identity_test()
    matmul_test()
    mean_test()
    mean_test_nhwc()
    mul_test()
kahmed10's avatar
kahmed10 committed
701
    multi_output_test()
kahmed10's avatar
kahmed10 committed
702
    noop_test()
kahmed10's avatar
kahmed10 committed
703
    onehot_test()
kahmed10's avatar
kahmed10 committed
704
705
    pack_test()
    pack_test_nhwc()
kahmed10's avatar
kahmed10 committed
706
    pad_test()
kahmed10's avatar
kahmed10 committed
707
708
709
710
    pooling_test()
    pow_test()
    relu_test()
    relu6_test()
711
    relu6_mismatch_test()
kahmed10's avatar
kahmed10 committed
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
    reshape_test()
    rsqrt_test()
    shape_test()
    slice_test()
    softmax_test()
    split_test()
    split_test_one_output()
    split_test_vector_as_input()
    sqdiff_test()
    squeeze_test()
    stopgradient_test()
    stridedslice_test()
    stridedslice_masks_test()
    sub_test()
    tanh_test()
    transpose_test()
    variable_batch_test()