gen_tf_pb.py 26.5 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
def tf_test(op_test):
Alan Turner's avatar
Merge  
Alan Turner committed
31

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

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

Khalique's avatar
Khalique committed
42

Khalique's avatar
Khalique committed
43
44
@tf_test
def add_test(g1):
Khalique's avatar
Khalique committed
45
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
46
47
48
49
50
51
        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
52
53
        tf.add(g1_input, g2_input, name='add1')

Khalique's avatar
Khalique committed
54

kahmed10's avatar
kahmed10 committed
55
56
57
58
59
60
61
62
63
64
65
66
@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
67
68
@tf_test
def add_bcast_test(g1):
Khalique's avatar
Khalique committed
69
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
70
71
        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
72
73
        tf.math.add(g1_input, g2_input, name='add_bcast1')

Khalique's avatar
Khalique committed
74

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


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


Khalique's avatar
Khalique committed
93
94
@tf_test
def assert_less_equal_test(g1):
Khalique's avatar
Khalique committed
95
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
96
97
        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
98
        with tf.control_dependencies(
kahmed10's avatar
kahmed10 committed
99
            [tf.compat.v1.assert_less_equal(g1_input, g2_input)]):
Khalique's avatar
Khalique committed
100
101
            tf.add(g1_input, g2_input, name='add1')

Khalique's avatar
Khalique committed
102

Khalique's avatar
Khalique committed
103
104
@tf_test
def batchmatmul_test(g1):
Khalique's avatar
Khalique committed
105
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
106
107
108
109
110
111
        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
112
113
114
115
116
117
        tf.matmul(g1_input,
                  g2_input,
                  transpose_a=True,
                  transpose_b=True,
                  name='batchmatmul1')

Khalique's avatar
Khalique committed
118

Khalique's avatar
Khalique committed
119
120
@tf_test
def batchnorm_test(g1):
Khalique's avatar
Khalique committed
121
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
122
123
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 32),
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
                                            name='x')
        g1_scale = tf.constant(1.0, dtype=tf.float32, shape=[32], name='scale')
        g1_offset = tf.compat.v1.placeholder(tf.float32,
                                             shape=(32),
                                             name='bias')
        g1_mean = tf.compat.v1.placeholder(tf.float32, shape=(32), name='mean')
        g1_variance = tf.compat.v1.placeholder(tf.float32,
                                               shape=(32),
                                               name='variance')
        tf.compat.v1.nn.fused_batch_norm(x=g1_input,
                                         scale=g1_scale,
                                         offset=g1_offset,
                                         mean=g1_mean,
                                         variance=g1_variance,
                                         epsilon=1e-4,
                                         is_training=False,
                                         name='batchnorm1')


@tf_test
def batchnorm_half_test(g1):
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float16,
                                            shape=(1, 16, 16, 32),
                                            name='x')
        g1_scale = tf.constant(1.0, dtype=tf.float32, shape=[32], name='scale')
        g1_offset = tf.compat.v1.placeholder(tf.float32,
                                             shape=(32),
                                             name='bias')
        g1_mean = tf.compat.v1.placeholder(tf.float32, shape=(32), name='mean')
kahmed10's avatar
kahmed10 committed
154
155
        g1_variance = tf.compat.v1.placeholder(tf.float32,
                                               shape=(32),
156
                                               name='variance')
kahmed10's avatar
kahmed10 committed
157
158
159
160
161
        tf.compat.v1.nn.fused_batch_norm(x=g1_input,
                                         scale=g1_scale,
                                         offset=g1_offset,
                                         mean=g1_mean,
                                         variance=g1_variance,
162
                                         epsilon=1e-4,
kahmed10's avatar
kahmed10 committed
163
164
165
166
167
168
169
170
171
                                         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),
172
173
174
175
176
177
                                            name='x')
        g1_scale = tf.constant(1.0, dtype=tf.float32, shape=[32], name='scale')
        g1_offset = tf.compat.v1.placeholder(tf.float32,
                                             shape=(32),
                                             name='bias')
        g1_mean = tf.compat.v1.placeholder(tf.float32, shape=(32), name='mean')
kahmed10's avatar
kahmed10 committed
178
179
        g1_variance = tf.compat.v1.placeholder(tf.float32,
                                               shape=(32),
180
                                               name='variance')
kahmed10's avatar
kahmed10 committed
181
182
183
184
185
        tf.raw_ops.FusedBatchNormV3(x=g1_input,
                                    scale=g1_scale,
                                    offset=g1_offset,
                                    mean=g1_mean,
                                    variance=g1_variance,
186
                                    epsilon=1e-6,
kahmed10's avatar
kahmed10 committed
187
188
                                    is_training=False,
                                    name='batchnorm1')
Khalique's avatar
Khalique committed
189

Khalique's avatar
Khalique committed
190

Khalique's avatar
Khalique committed
191
192
@tf_test
def biasadd_test(g1):
Khalique's avatar
Khalique committed
193
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
194
195
196
197
        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
198
199
        tf.nn.bias_add(g1_input, g2_input, name='bias_add1')

Khalique's avatar
Khalique committed
200

kahmed10's avatar
kahmed10 committed
201
202
203
204
205
206
207
208
@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
209
210
@tf_test
def cast_test(g1):
Khalique's avatar
Khalique committed
211
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
212
213
214
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
215
216
        tf.cast(g1_input, dtype=tf.int32, name='cast1')

Khalique's avatar
Khalique committed
217

Khalique's avatar
Khalique committed
218
219
@tf_test
def concat_test(g1):
Khalique's avatar
Khalique committed
220
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
221
222
223
224
225
226
        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
227
228
        tf.concat([g1_input, g2_input], axis=1, name='concat1')

Khalique's avatar
Khalique committed
229

Khalique's avatar
Khalique committed
230
231
@tf_test
def const_test(g1):
Khalique's avatar
Khalique committed
232
    with g1.as_default():
Khalique's avatar
Khalique committed
233
234
        tf.constant(1.0, dtype=tf.float32, name='constant1')

Khalique's avatar
Khalique committed
235

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

kahmed10's avatar
kahmed10 committed
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
@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
266
267
268
269
270
271
272
273
274
275
276
277
278
@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
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
@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
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
@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
330
331
@tf_test
def depthwiseconv_test(g1):
Khalique's avatar
Khalique committed
332
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
333
334
335
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 3),
                                            name='0')
Khalique's avatar
Khalique committed
336
337
338
339
        g1_weights = tf.constant(value=1.0,
                                 dtype=tf.float32,
                                 shape=(3, 3, 3, 1),
                                 name='1')
kahmed10's avatar
kahmed10 committed
340
341
342
343
        tf.compat.v1.nn.depthwise_conv2d_native(g1_input,
                                                g1_weights, [1, 1, 1, 1],
                                                "SAME",
                                                name='depthwiseconv1')
Khalique's avatar
Khalique committed
344

Khalique's avatar
Khalique committed
345

Khalique's avatar
Khalique committed
346
347
@tf_test
def expanddims_test(g1):
Khalique's avatar
Khalique committed
348
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
349
350
351
352
        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
353

Khalique's avatar
Khalique committed
354

Khalique's avatar
Khalique committed
355
356
@tf_test
def gather_test(g1):
Khalique's avatar
Khalique committed
357
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
358
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(2, 4), name='0')
Khalique's avatar
Khalique committed
359
360
        tf.gather(g1_input, [1, 1], axis=1, name='gather1')

Khalique's avatar
Khalique committed
361

Khalique's avatar
Khalique committed
362
363
@tf_test
def identity_test(g1):
Khalique's avatar
Khalique committed
364
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
365
366
367
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
368
369
        tf.identity(g1_input, 'identity')

Khalique's avatar
Khalique committed
370

Khalique's avatar
Khalique committed
371
372
@tf_test
def matmul_test(g1):
Khalique's avatar
Khalique committed
373
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
374
375
        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
376
377
378
379
380
381
        tf.matmul(g1_input,
                  g2_input,
                  transpose_a=True,
                  transpose_b=True,
                  name='matmul1')

Khalique's avatar
Khalique committed
382

Khalique's avatar
Khalique committed
383
384
@tf_test
def mean_test(g1):
Khalique's avatar
Khalique committed
385
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
386
387
388
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
389
390
391
392
393
394
        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
395

Khalique's avatar
Khalique committed
396
397
@tf_test
def mean_test_nhwc(g1):
Khalique's avatar
Khalique committed
398
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
399
400
401
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 16, 16, 3),
                                            name='0')
Khalique's avatar
Khalique committed
402
403
404
405
406
        tf.math.reduce_mean(g1_input,
                            axis=(1, 2),
                            keepdims=False,
                            name='mean2')

Khalique's avatar
Khalique committed
407

Khalique's avatar
Khalique committed
408
409
@tf_test
def mul_test(g1):
Khalique's avatar
Khalique committed
410
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
411
412
413
414
415
416
        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
417
418
        tf.multiply(g1_input, g2_input, name='mul1')

Khalique's avatar
Khalique committed
419

kahmed10's avatar
kahmed10 committed
420
421
422
423
424
425
426
427
428
429
@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
430
431
432
433
434
435
@tf_test
def noop_test(g1):
    with g1.as_default():
        tf.raw_ops.NoOp(name='noop1')


kahmed10's avatar
kahmed10 committed
436
437
438
439
440
441
442
@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
443
444
@tf_test
def pack_test(g1):
Khalique's avatar
Khalique committed
445
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
446
447
448
        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
449
450
        tf.stack([g1_input, g2_input, g3_input], axis=1, name='pack1')

Khalique's avatar
Khalique committed
451

Khalique's avatar
Khalique committed
452
453
@tf_test
def pack_test_nhwc(g1):
Khalique's avatar
Khalique committed
454
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
455
456
457
458
459
460
461
462
463
        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
464
465
        tf.stack([g1_input, g2_input, g3_input], axis=3, name='pack1')

Khalique's avatar
Khalique committed
466

kahmed10's avatar
kahmed10 committed
467
468
469
470
471
472
473
474
475
@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
476
477
@tf_test
def pooling_test(g1):
Khalique's avatar
Khalique committed
478
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
        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
494

Khalique's avatar
Khalique committed
495

Khalique's avatar
Khalique committed
496
497
@tf_test
def pow_test(g1):
Khalique's avatar
Khalique committed
498
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
499
500
501
502
503
504
        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
505
506
        tf.pow(g1_input, g2_input, name='pow1')

Khalique's avatar
Khalique committed
507

Khalique's avatar
Khalique committed
508
509
@tf_test
def relu_test(g1):
Khalique's avatar
Khalique committed
510
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
511
512
513
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
514
515
        tf.nn.relu(g1_input, 'relu')

Khalique's avatar
Khalique committed
516

Khalique's avatar
Khalique committed
517
518
@tf_test
def relu6_test(g1):
Khalique's avatar
Khalique committed
519
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
520
521
522
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
523
524
        tf.nn.relu6(g1_input, 'relu6')

Khalique's avatar
Khalique committed
525

526
@tf_test
527
def relu6_half_test(g1):
528
529
    with g1.as_default():
        g1_input = tf.compat.v1.placeholder(tf.float16,
530
                                            shape=(1, 3, 16, 16),
531
532
533
534
                                            name='0')
        tf.nn.relu6(g1_input, 'relu6')


Khalique's avatar
Khalique committed
535
536
@tf_test
def reshape_test(g1):
Khalique's avatar
Khalique committed
537
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
538
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(16), name='0')
Khalique's avatar
Khalique committed
539
540
        tf.reshape(g1_input, (1, 1, 1, 16), 'reshape')

Khalique's avatar
Khalique committed
541

Khalique's avatar
Khalique committed
542
543
@tf_test
def rsqrt_test(g1):
Khalique's avatar
Khalique committed
544
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
545
546
547
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
548
549
        tf.math.rsqrt(g1_input, 'rsqrt')

Khalique's avatar
Khalique committed
550

551
552
553
@tf_test
def shape_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
554
555
556
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
557
558
559
    g1.create_op(op_type='Shape', inputs=[g1_input])


Khalique's avatar
Khalique committed
560
561
@tf_test
def slice_test(g1):
Khalique's avatar
Khalique committed
562
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
563
564
565
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 10),
                                            name='0')
Khalique's avatar
Khalique committed
566
567
        tf.slice(g1_input, [1, 0], [2, -1], name='slice1')

Khalique's avatar
Khalique committed
568

Khalique's avatar
Khalique committed
569
570
@tf_test
def softmax_test(g1):
Khalique's avatar
Khalique committed
571
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
572
        g1_input = tf.compat.v1.placeholder(tf.float32, shape=(1, 3), name='0')
Khalique's avatar
Khalique committed
573
574
        tf.nn.softmax(g1_input, name='softmax')

Khalique's avatar
Khalique committed
575

kahmed10's avatar
kahmed10 committed
576
577
578
@tf_test
def split_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
579
580
581
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 30),
                                            name='0')
kahmed10's avatar
kahmed10 committed
582
583
584
585
586
587
588
589
        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
590
591
592
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 30),
                                            name='0')
kahmed10's avatar
kahmed10 committed
593
594
595
596
597
598
        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
599
600
601
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(5, 30),
                                            name='0')
kahmed10's avatar
kahmed10 committed
602
603
604
605
606
607
608
        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
609
610
@tf_test
def sqdiff_test(g1):
Khalique's avatar
Khalique committed
611
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
612
613
614
615
616
617
618
        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
619

Khalique's avatar
Khalique committed
620

Khalique's avatar
Khalique committed
621
622
@tf_test
def squeeze_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, 2, 3, 1),
                                            name='0')
Khalique's avatar
Khalique committed
627
628
        tf.squeeze(g1_input, name='squeeze')

Khalique's avatar
Khalique committed
629

Khalique's avatar
Khalique committed
630
631
@tf_test
def stopgradient_test(g1):
Khalique's avatar
Khalique committed
632
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
633
634
635
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
636
637
        tf.stop_gradient(g1_input, 'stopgradient')

Khalique's avatar
Khalique committed
638

Khalique's avatar
Khalique committed
639
640
@tf_test
def stridedslice_test(g1):
Khalique's avatar
Khalique committed
641
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
642
643
644
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 1, 1, 10),
                                            name='0')
Khalique's avatar
Khalique committed
645
646
647
648
        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
649

Khalique's avatar
Khalique committed
650
651
@tf_test
def stridedslice_masks_test(g1):
Khalique's avatar
Khalique committed
652
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
653
654
655
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 3, 10),
                                            name='0')
Khalique's avatar
Khalique committed
656
657
658
659
660
        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
661

Khalique's avatar
Khalique committed
662
663
@tf_test
def sub_test(g1):
Khalique's avatar
Khalique committed
664
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
665
666
667
668
669
670
        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
671
672
        tf.subtract(g1_input, g2_input, name='sub1')

Khalique's avatar
Khalique committed
673

Khalique's avatar
Khalique committed
674
675
@tf_test
def tanh_test(g1):
Khalique's avatar
Khalique committed
676
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
677
678
679
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
680
681
        tf.tanh(g1_input, 'tanh')

Khalique's avatar
Khalique committed
682

Khalique's avatar
Khalique committed
683
684
@tf_test
def transpose_test(g1):
Khalique's avatar
Khalique committed
685
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
686
687
688
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(1, 3, 16, 16),
                                            name='0')
Khalique's avatar
Khalique committed
689
        tf.transpose(g1_input, perm=[0, 2, 3, 1], name='transpose')
690
691
692
693
694


@tf_test
def variable_batch_test(g1):
    with g1.as_default():
kahmed10's avatar
kahmed10 committed
695
696
697
        g1_input = tf.compat.v1.placeholder(tf.float32,
                                            shape=(0, 3, 16, 16),
                                            name='0')
698
        tf.identity(g1_input, name='identity')
kahmed10's avatar
kahmed10 committed
699
700
701
702
703
704
705
706
707
708
709
710
711


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
712
    biasadd_scalar_test()
kahmed10's avatar
kahmed10 committed
713
714
715
716
    cast_test()
    concat_test()
    const_test()
    conv_test()
kahmed10's avatar
kahmed10 committed
717
    conv_add_test()
kahmed10's avatar
kahmed10 committed
718
    conv_batch_test()
kahmed10's avatar
kahmed10 committed
719
    conv_nchw_test()
kahmed10's avatar
kahmed10 committed
720
721
    conv_relu_test()
    conv_relu6_test()
kahmed10's avatar
kahmed10 committed
722
723
724
725
726
727
728
729
    depthwiseconv_test()
    expanddims_test()
    gather_test()
    identity_test()
    matmul_test()
    mean_test()
    mean_test_nhwc()
    mul_test()
kahmed10's avatar
kahmed10 committed
730
    multi_output_test()
kahmed10's avatar
kahmed10 committed
731
    noop_test()
kahmed10's avatar
kahmed10 committed
732
    onehot_test()
kahmed10's avatar
kahmed10 committed
733
734
    pack_test()
    pack_test_nhwc()
kahmed10's avatar
kahmed10 committed
735
    pad_test()
kahmed10's avatar
kahmed10 committed
736
737
738
739
    pooling_test()
    pow_test()
    relu_test()
    relu6_test()
740
    relu6_half_test()
kahmed10's avatar
kahmed10 committed
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
    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()