Lines Matching refs:name

118     name = node["name"]
125 input_node_name = outputs_lookup[ip[0]][ip[1]].name
128 return name, input_nodes, attrs
142 name, input_nodes, _ = get_inputs(node, kwargs)
146 [name],
147 name=name
187 name=tensor_name,
200 name, _, _ = get_inputs(node, kwargs)
204 np_arr = weights[name]
208 tensor_node = onnx.helper.make_tensor_value_info(name, data_type, dims)
212 name=name,
224 tval_node = onnx.helper.make_tensor_value_info(name, dtype_t, kwargs["in_shape"])
234 name, input_nodes, attrs = get_inputs(node, kwargs)
264 make_node('Conv', input_nodes, [name], group=num_group, **kwargs_)
275 name, input_nodes, attrs = get_inputs(node, kwargs)
316 outputs=[name],
329 name, inputs, attrs = get_inputs(node, kwargs)
340 create_tensor([y, x], name+'_starts', kwargs['initializer'])
341 create_tensor([2, 3], name+'_axes', kwargs['initializer'])
343 create_tensor([y + h, x + w], name+'_ends', kwargs['initializer'])
345 create_tensor([0], name+'_0', kwargs['initializer'])
346 create_tensor([2], name+'_2', kwargs['initializer'])
347 create_tensor([4], name+'_4', kwargs['initializer'])
349 make_node('Shape', [inputs[1]], [name+'_shape']),
350 make_node('Slice', [name+'_shape', name+'_2', name+'_4', name+'_0'], [name+'_h_w']),
351 make_node('Add', [name+'_starts', name+'_h_w'], [name+'_ends'])
355 make_node('Slice', [inputs[0], name+'_starts', name+'_ends', name+'_axes'], [name])
366 name, input_nodes, attrs = get_inputs(node, kwargs)
377 make_node('Flatten', [input_nodes[0]], [name+'_data_flattened'])
381 make_node('Shape', [input_nodes[0]], [name+'_orig_shape']),
382 make_node('Shape', [name+'_orig_shape'], [name+'_dim']),
383 make_node('Flatten', [input_nodes[0]], [name+'_data_flattened'], axis=-1),
386 in_nodes = [name+'_data_flattened', input_nodes[1]]
389 create_const_scalar_node(name+'_bias', np.int32(0).astype(dtype), kwargs)
390 in_nodes.append(name+'_bias')
396 make_node('Gemm', in_nodes, [name], alpha=1.0, beta=1.0, transA=0, transB=1, name=name)
399 create_tensor([0], name+'_0', kwargs['initializer'])
400 create_tensor([1], name+'_1', kwargs['initializer'])
401 create_tensor([num_hidden], name+'_num_hidden', kwargs['initializer'])
403 make_node('Gemm', in_nodes, [name+'_gemm'], alpha=1.0, beta=1.0, transA=0, transB=1),
404 make_node('Sub', [name+'_dim', name+'_1'], [name+'dim_minus_1']),
405 make_node('Slice', [name+'_orig_shape', name+'_0', name+'dim_minus_1'],
406 [name+'_shape_sliced']),
407 make_node('Concat', [name+'_shape_sliced', name+'_num_hidden'],
408 [name+'_shape_new'], axis=0),
409 make_node('Reshape', [name+'_gemm', name+'_shape_new'], [name], name=name)
420 name, input_nodes, attrs = get_inputs(node, kwargs)
432 [name],
433 name=name,
513 name, input_nodes, attrs = get_inputs(node, kwargs)
532 [name],
533 name=name
550 name, input_nodes, attrs = get_inputs(node, kwargs)
564 create_const_node(name+"_pads", np.array(onnx_pad_width, dtype='int64'), kwargs)
567 create_const_scalar_node(name+"_const", pad_value, kwargs)
569 … make_node("Pad", [input_nodes[0], name+"_pads", name+"_const"], [name], mode=pad_mode, name=name)
573 make_node("Pad", [input_nodes[0], name+"_pads"], [name], mode=pad_mode, name=name)
581 outputs=[name],
585 name=name
591 outputs=[name],
594 name=name
605 name=node_name
620 name, inputs, attrs = get_inputs(node, kwargs)
627 nodes.append(create_helper_trans_node(name+"_a", inputs[0]))
628 input_nodes.append(name+"_a")
633 nodes.append(create_helper_trans_node(name+"_b", inputs[1]))
634 input_nodes.append(name+"_b")
638 nodes.append(onnx.helper.make_node('MatMul', input_nodes, [name], name=name))
642 def transpose_last_two_dim(name, kwargs): argument
646 create_tensor([0], name+'_0', kwargs['initializer'])
647 create_tensor([1], name+'_1', kwargs['initializer'])
648 create_tensor([8], name+'_8', kwargs['initializer'])
652 make_node('Shape', [name], [name+'_shape']),
653 make_node('Shape', [name+'_shape'], [name+'_dim']),
654 make_node('Sub', [name+'_8', name+'_dim'], [name+'_sub']),
655 make_node('Concat', [name+'_sub', name+'_0'], [name+'_concat'], axis=0),
656 make_node('Pad', [name+'_shape', name+'_concat', name+'_1'], [name+'_shape_8_dim']),
657 make_node('Reshape', [name, name+'_shape_8_dim'], [name+'_data_8_dim']),
658 make_node('Transpose', [name+'_data_8_dim'], [name+'_data_t'], perm=perm),
659 make_node('Shape', [name+'_data_t'], [name+'_new_shape_']),
660 make_node('Slice', [name+'_new_shape_', name+'_sub', name+'_8', name+'_0'],
661 [name+'_new_shape']),
662 make_node('Reshape', [name+'_data_t', name+'_new_shape'], [name+'_transposed']),
676 name, inputs, attrs = get_inputs(node, kwargs)
706 make_node('MatMul', input_nodes, [name])
710 create_const_scalar_node(name+"_alpha", dtype.type(alpha), kwargs)
712 make_node('MatMul', input_nodes, [name+'_matmul']),
713 make_node('Mul', [name+'_matmul', name+'_alpha'], [name])
723 name, input_nodes, attrs = get_inputs(node, kwargs)
763 make_node('AveragePool', [input_nodes[0]], [name], ceil_mode=ceil_mode,
768 make_node('MaxPool', [input_nodes[0]], [name], ceil_mode=ceil_mode, **kwargs_)
772 make_node('LpPool', [input_nodes[0]], [name], p=p_value, **kwargs_)
776 make_node('GlobalAveragePool', [input_nodes[0]], [name])
780 make_node('GlobalMaxPool', [input_nodes[0]], [name])
784 make_node('GlobalLpPool', [input_nodes[0]], [name], p=p_value)
818 name, input_nodes, attrs = get_inputs(node, kwargs)
825 outputs=[name],
826 name=name,
837 name, input_nodes, attrs = get_inputs(node, kwargs)
849 outputs=[name],
850 name=name)
853 create_const_scalar_node(name+"_sqrt2", sqrt2, kwargs)
854 create_const_scalar_node(name+"_one", np.float32(1.0), kwargs)
855 create_const_scalar_node(name+"_half", np.float32(0.5), kwargs)
857 make_node("Div", [input_nodes[0], name+"_sqrt2"], [name+"_div0_out"]),
858 make_node("Erf", [name+"_div0_out"], [name+"_erf0_out"]),
859 make_node("Add", [name+"_erf0_out", name+"_one"], [name+"_add0_out"]),
860 make_node("Mul", [input_nodes[0], name+"_add0_out"], [name+"_mul0_out"]),
861 make_node("Mul", [name+"_mul0_out", name+"_half"], [name], name=name)
868 outputs=[name],
869 name=name,
882 name, input_nodes, attrs = get_inputs(node, kwargs)
902 create_tensor([-65500.0], name+"_mask_val", kwargs["initializer"], dtype=dtype)
903 create_tensor([1], name+"_1", kwargs["initializer"])
904 create_const_scalar_node(name+"_0_s", np.int64(0), kwargs)
905 create_const_scalar_node(name+"_1_s", np.int64(1), kwargs)
907 make_node("Shape", [data], [name+"_shape"]),
908 make_node("Shape", [name+"_shape"], [name+"_dim"]),
909 make_node("Sub", [name+"_dim", name+"_1"], [name+"_dim_m1"]),
910 make_node("Slice", [name+"_shape", name+"_dim_m1", name+"_dim"],
911 [name+"_dim_last_"]),
912 make_node("Squeeze", [name+"_dim_last_"], [name+"_dim_last"], axes=[0]),
913 make_node("Range", [name+"_0_s", name+"_dim_last", name+"_1_s"], [name+"_range"]),
914 make_node("Cast", [input_nodes[1]], [name+"_len"], to=int(TensorProto.INT64)),
915 make_node("Unsqueeze", [name+"_len"], [name+"_len_unsqueezed"], axes=[-1]),
916 make_node("Less", [name+"_range", name+"_len_unsqueezed"], [name+"_less"]),
917 make_node("Where", [name+'_less', data, name+"_mask_val"], [name+"_data_masked"])
919 data = name+"_data_masked"
922 make_node("Softmax", [data], [name], axis=-1)
927 create_tensor([temperature], name+"_tmp", kwargs["initializer"], dtype=dtype)
929 make_node("Div", [data, name+"_tmp"], [name+'_data']),
930 make_node("Exp", [name+'_data'], [name+"_exp_out"]),
931 make_node("ReduceSum", [name+"_exp_out"], [name+"_rsum_out"], axes=[axis], keepdims=1),
935 make_node("Div", [name+"_exp_out", name+"_rsum_out"], [name], name=name),
941 create_tensor([axis], name+"_axis", kwargs["initializer"])
942 create_tensor([0], name+"_0", kwargs["initializer"])
943 create_tensor([1], name+"_1", kwargs["initializer"])
944 create_const_scalar_node(name+'_-1_s', np.int64(-1), kwargs)
945 create_const_scalar_node(name+'_0_s', np.int64(0), kwargs)
946 create_const_scalar_node(name+'_1_s', np.int64(1), kwargs)
949 make_node("Cast", [length], [name+"_length"], to=int(TensorProto.INT64)),
950 make_node("Cast", [name+"_0"], [name+"_0_itype"], to=dtype_t),
951 make_node("Cast", [name+"_1"], [name+"_1_itype"], to=dtype_t),
953 make_node("Div", [name+"_exp_out", name+"_rsum_out"], [name+"_div1_out"]),
955 make_node("Shape", [data], [name+"_shape0_out"]),
956 make_node("Shape", [name+"_shape0_out"], [name+"_in_dim"]),
957 make_node("Add", [name+"_in_dim", name+"_axis"], [name+"_dim+axis"]),
958 make_node("Less", [name+"_axis", name+"_0_s"], [name+"_less0_out"]),
959 … make_node("Where", [name+"_less0_out", name+"_dim+axis", name+"_axis"], [name+"_final_axis"]),
961 make_node("Add", [name+"_final_axis", name+"_1_s"], [name+"_final_axis+1"]),
962 …make_node("Slice", [name+"_shape0_out", name+"_final_axis", name+"_final_axis+1"], [name+"_axis_di…
963 make_node("Squeeze", [name+"_axis_dim"], [name+"_axis_dim_s"], axes=[0]),
964 … make_node("Range", [name+"_0_s", name+"_axis_dim_s", name+"_1_s"], [name+"_range0_out"]),
966 make_node("Squeeze", [name+"_in_dim"], [name+"_in_dim_s"], axes=[0]),
967 make_node("Range", [name+"_0_s", name+"_in_dim_s", name+"_1_s"], [name+"_range1_out"]),
968 make_node("Equal", [name+"_range1_out", name+"_final_axis"], [name+"_equal_out"]),
969 make_node("Cast", [name+"_equal_out"], [name+"_one_hot"], to=int(TensorProto.INT64)),
971 make_node("Sub", [name+"_axis_dim_s", name+"_1_s"], [name+"_sub0_out"]),
972 make_node("Mul", [name+"_one_hot", name+"_sub0_out"], [name+"_mul0_out"]),
973 make_node("Add", [name+"_mul0_out", name+"_1_s"], [name+"_add0_out"]),
974 make_node('Reshape', [name+"_range0_out", name+"_add0_out"], [name+"_reshape0_out"]),
976 make_node("Mul", [name+"_one_hot", name+"_-1_s"], [name+"_mul1_out"]),
977 make_node("Add", [name+"_mul1_out", name+"_1_s"], [name+"_add1_out"]),
978 make_node("Sub", [name+"_shape0_out", name+"_1_s"], [name+"_sub1_out"]),
979 make_node("Mul", [name+"_add1_out", name+"_sub1_out"], [name+"_mul2_out"]),
980 make_node("Add", [name+"_mul2_out", name+"_1_s"], [name+"_add2_out"]),
981 make_node('Reshape', [name+"_length", name+"_add2_out"], [name+"_reshape1_out"]),
983 make_node("Less", [name+"_reshape0_out", name+"_reshape1_out"], [name+"_less_out"]),
984 make_node("Cast", [name+"_less_out"], [name+"_mask"], to=dtype_t),
985 make_node("Mul", [name+"_div1_out", name+"_mask"], [name+"_mul3_out"]),
986 … make_node("ReduceSum", [name+"_mul3_out"], [name+"_rsum1_out"], axes=[axis], keepdims=1),
987 make_node("Equal", [name+"_rsum1_out", name+"_0_itype"], [name+"_equal1_out"]),
988 … make_node("Where", [name+"_equal1_out", name+"_1_itype", name+"_rsum1_out"], [name+"_where_out"]),
989 make_node("Div", [name+"_mul3_out", name+"_where_out"], [name], name=name)
1003 name = node["name"]
1005 input1 = kwargs["outputs_lookup"][node["inputs"][0][0]][node["inputs"][0][1]].name
1010 [name],
1012 name=name
1022 name = node["name"]
1023 input1 = kwargs["outputs_lookup"][node["inputs"][0][0]][node["inputs"][0][1]].name
1028 [name],
1029 name=name
1048 name, input_nodes, attrs = get_inputs(node, kwargs)
1054 [name],
1056 name=name
1066 name, input_nodes, attrs = get_inputs(node, kwargs)
1075 [name],
1077 name=name
1083 [name],
1084 name=name
1095 name, input_nodes, attrs = get_inputs(node, kwargs)
1105 outputs=[name],
1106 name=name,
1121 name, input_nodes, attrs = get_inputs(node, kwargs)
1131 [name],
1133 name=name
1144 name, input_nodes, attrs = get_inputs(node, kwargs)
1154 make_node('Identity', [input_nodes[0]], [name])
1173 name, input_nodes, attrs = get_inputs(node, kwargs)
1182 create_const_scalar_node(name+"_min", np.float32(a_min).astype(input_dtype), kwargs)
1183 create_const_scalar_node(name+"_max", np.float32(a_max).astype(input_dtype), kwargs)
1185 make_node("Clip", [input_nodes[0], name+"_min", name+"_max"], [name], name=name)
1189 make_node("Clip", input_nodes, [name], name=name, min=a_min, max=a_max)
1197 name, input_nodes, attrs = get_inputs(node, kwargs)
1217 if i.name == input_nodes[0]:
1221 if name.startswith("_rminusscalar"):
1228 if name.startswith("_rdivscalar"):
1245 name=scalar_op_name,
1253 if "_rminusscalar" in name or "_rdivscalar" in name:
1254 print(name)
1258 [name],
1259 name=name
1265 [name],
1266 name=name
1273 tensor_node = onnx.helper.make_tensor_value_info(name, dtype_t, dims)
1277 name=name,
1355 name, input_nodes, attrs = get_inputs(node, kwargs)
1364 create_tensor([-1], name+'_-1', kwargs['initializer'])
1366 create_tensor([1], name+'_1', kwargs['initializer'])
1368 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1369 make_node('Shape', [name+'_shape'], [name+'_dim']),
1370 make_node('Tile', [name+'_1', name+'_dim'], [name+'_tile']),
1371 make_node('Reshape', [input_nodes[0], name+'_-1'], [name+'_reshape']),
1372 make_node('ArgMax', [name+'_reshape'], [name+'_argmax'], axis=0, keepdims=True,),
1373 make_node('Reshape', [name+'_argmax', name+'_tile'], [name+'_ret']),
1374 make_node('Cast', [name+'_ret'], [name], to=dtype_t, name=name)
1378 make_node('Reshape', [input_nodes[0], name+'_-1'], [name+'_reshape']),
1379 make_node('ArgMax', [name+'_reshape'], [name+'_argmax'], axis=0, keepdims=True,),
1380 make_node('Cast', [name+'_argmax'], [name], to=dtype_t, name=name)
1385 make_node('ArgMax', [input_nodes[0]], [name+'_argmax'], axis=axis, keepdims=keepdims,),
1386 make_node('Cast', [name+'_argmax'], [name], to=dtype_t, name=name)
1397 name, input_nodes, attrs = get_inputs(node, kwargs)
1406 create_tensor([-1], name+'_-1', kwargs['initializer'])
1408 create_tensor([1], name+'_1', kwargs['initializer'])
1410 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1411 make_node('Shape', [name+'_shape'], [name+'_dim']),
1412 make_node('Tile', [name+'_1', name+'_dim'], [name+'_tile']),
1413 make_node('Reshape', [input_nodes[0], name+'_-1'], [name+'_reshape']),
1414 make_node('ArgMin', [name+'_reshape'], [name+'_argmin'], axis=0, keepdims=True,),
1415 make_node('Reshape', [name+'_argmin', name+'_tile'], [name+'_ret']),
1416 make_node('Cast', [name+'_ret'], [name], to=dtype_t, name=name)
1420 make_node('Reshape', [input_nodes[0], name+'_-1'], [name+'_reshape']),
1421 make_node('ArgMin', [name+'_reshape'], [name+'_argmin'], axis=0, keepdims=True,),
1422 make_node('Cast', [name+'_argmin'], [name], to=dtype_t, name=name)
1427 make_node('ArgMin', [input_nodes[0]], [name+'_argmin'], axis=axis, keepdims=keepdims,),
1428 make_node('Cast', [name+'_argmin'], [name], to=dtype_t, name=name)
1453 name, input_nodes, attrs = get_inputs(node, kwargs)
1462 node = make_node('ReduceMin', input_nodes, [name], axes=axes, keepdims=keepdims)
1465 create_tensor([1], name+'_1', kwargs['initializer'])
1467 make_node('ReduceMin', input_nodes, [name+'_reduce'], axes=axes, keepdims=keepdims),
1468 make_node('Shape', [name+'_reduce'], [name+'_reduce_shape']),
1469 make_node('Concat', [name+'_1', name+'_reduce_shape'], [name+'_concat'], axis=0),
1470 make_node('Reshape', [name+'_reduce', name+'_concat'], [name+'_reshape']),
1471 make_node('Squeeze', [name+'_reshape'], [name], axes=[0]),
1476 node = make_node('ReduceMin', input_nodes, [name], keepdims=keepdims)
1480 create_tensor([1], name+'_1', kwargs['initializer'])
1482 make_node('ReduceMin', input_nodes, [name+'_rmin'], keepdims=keepdims),
1483 make_node('Reshape', [name+'_rmin', name+'_1'], [name])
1494 name, input_nodes, attrs = get_inputs(node, kwargs)
1503 node = make_node('ReduceMax', input_nodes, [name], axes=axes, keepdims=keepdims)
1506 create_tensor([1], name+'_1', kwargs['initializer'])
1508 make_node('ReduceMax', input_nodes, [name+'_reduce'], axes=axes, keepdims=keepdims),
1509 make_node('Shape', [name+'_reduce'], [name+'_reduce_shape']),
1510 make_node('Concat', [name+'_1', name+'_reduce_shape'], [name+'_concat'], axis=0),
1511 make_node('Reshape', [name+'_reduce', name+'_concat'], [name+'_reshape']),
1512 make_node('Squeeze', [name+'_reshape'], [name], axes=[0]),
1517 node = make_node('ReduceMax', input_nodes, [name], keepdims=keepdims)
1521 create_tensor([1], name+'_1', kwargs['initializer'])
1523 make_node('ReduceMax', input_nodes, [name+'_rmax'], keepdims=keepdims),
1524 make_node('Reshape', [name+'_rmax', name+'_1'], [name])
1535 name, input_nodes, attrs = get_inputs(node, kwargs)
1544 node = make_node('ReduceMean', input_nodes, [name], axes=axes, keepdims=keepdims)
1547 create_tensor([1], name+'_1', kwargs['initializer'])
1549 … make_node('ReduceMean', input_nodes, [name+'_reduce'], axes=axes, keepdims=keepdims),
1550 make_node('Shape', [name+'_reduce'], [name+'_reduce_shape']),
1551 make_node('Concat', [name+'_1', name+'_reduce_shape'], [name+'_concat'], axis=0),
1552 make_node('Reshape', [name+'_reduce', name+'_concat'], [name+'_reshape']),
1553 make_node('Squeeze', [name+'_reshape'], [name], axes=[0]),
1558 node = make_node('ReduceMean', input_nodes, [name], keepdims=keepdims)
1562 create_tensor([1], name+'_1', kwargs['initializer'])
1564 make_node('ReduceMean', input_nodes, [name+'_reduce'], keepdims=keepdims),
1565 make_node('Reshape', [name+'_reduce', name+'_1'], [name])
1576 name, input_nodes, attrs = get_inputs(node, kwargs)
1585 node = make_node('ReduceProd', input_nodes, [name], axes=axes, keepdims=keepdims)
1588 create_tensor([1], name+'_1', kwargs['initializer'])
1590 … make_node('ReduceProd', input_nodes, [name+'_reduce'], axes=axes, keepdims=keepdims),
1591 make_node('Shape', [name+'_reduce'], [name+'_reduce_shape']),
1592 make_node('Concat', [name+'_1', name+'_reduce_shape'], [name+'_concat'], axis=0),
1593 make_node('Reshape', [name+'_reduce', name+'_concat'], [name+'_reshape']),
1594 make_node('Squeeze', [name+'_reshape'], [name], axes=[0]),
1599 node = make_node('ReduceProd', input_nodes, [name], keepdims=keepdims)
1603 create_tensor([1], name+'_1', kwargs['initializer'])
1605 make_node('ReduceProd', input_nodes, [name+'_reduce'], keepdims=keepdims),
1606 make_node('Reshape', [name+'_reduce', name+'_1'], [name])
1723 name, input_nodes, attrs = get_inputs(node, kwargs)
1751 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1752 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2',
1753 name+'_dim3', name+'_dim4', name+'_dim5'],
1755 make_node('Mul', [name+'_dim2', name+'_dim3'], [name+'_mul_1']),
1756 make_node('Mul', [name+'_dim4', name+'_dim5'], [name+'_mul_2']),
1757 make_node('Concat', [name+'_dim0', name+'_dim1', name+'_mul_1', name+'_mul_2'],
1758 [name+'_shape_new'], axis=0),
1759 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name)
1764 create_tensor([4], name+'_4', kwargs['initializer'])
1766 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1767 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2',
1768 name+'_dim3'], axis=0),
1769 make_node('Div', [name+'_dim1', name+'_4'], [name+'_div']),
1770 make_node('Concat', [name+'_dim0', name+'_div', name+'_4', name+'_dim2', name+'_dim3'],
1771 [name+'_shape_new'], axis=0),
1772 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name)
1777 create_tensor([2], name+'_2', kwargs['initializer'])
1779 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1780 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2',
1781 name+'_dim3', name+'_dim4'], axis=0),
1782 make_node('Concat', [name+'_dim0', name+'_dim1', name+'_2', name+'_2',
1783 name+'_dim3', name+'_dim4'], [name+'_shape_new'], axis=0),
1784 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name)
1789 create_tensor([1], name+'_1', kwargs['initializer'])
1790 create_tensor([-1], name+'_m1', kwargs['initializer'])
1792 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1793 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2',
1794 name+'_dim3'], axis=0),
1795 make_node('Concat', [name+'_1', name+'_m1', name+'_dim1', name+'_dim2', name+'_dim3'],
1796 [name+'_shape_new'], axis=0),
1797 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name)
1802 create_tensor([1], name+'_1', kwargs['initializer'])
1803 create_tensor([1000], name+'_1000', kwargs['initializer'])
1805 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1806 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2'], axis=0),
1807 make_node('Concat', [name+'_1', name+'_1000', name+'_dim1', name+'_dim2'],
1808 [name+'_shape_new'], axis=0),
1809 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name)
1814 create_tensor([-1], name+'_m1', kwargs['initializer'])
1815 create_tensor([12], name+'_12', kwargs['initializer'])
1817 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1818 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2'], axis=0),
1819 make_node('Concat', [name+'_dim0', name+'_12', name+'_m1', name+'_dim2'],
1820 [name+'_shape_new'], axis=0),
1821 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name)
1826 create_tensor([-1], name+'_m1', kwargs['initializer'])
1827 create_tensor([16], name+'_16', kwargs['initializer'])
1829 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1830 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2'], axis=0),
1831 make_node('Concat', [name+'_dim0', name+'_16', name+'_m1', name+'_dim2'],
1832 [name+'_shape_new'], axis=0),
1833 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name)
1838 create_tensor([0], name+'_0', kwargs['initializer'])
1839 create_tensor([1], name+'_1', kwargs['initializer'])
1840 create_tensor([2], name+'_2', kwargs['initializer'])
1841 create_tensor([-1], name+'_-1', kwargs['initializer'])
1843 make_node('Shape', [input_nodes[0]], [name+'_shape']),
1844 make_node('Slice', [name+'_shape', name+'_0',
1845 name+'_1'], [name+'_1st_dim']),
1846 make_node('Slice', [name+'_shape', name+'_1',
1847 name+'_2'], [name+'_2nd_dim']),
1848 make_node('Mul', [name+'_1st_dim', name+'_2nd_dim'], [name+'_mul']),
1849 make_node('Concat', [name+'_mul', name+'_-1'], [name+'_shape_new'], axis=0),
1850 make_node('Reshape', [input_nodes[0], name+'_shape_new'], [name], name=name),
1861 create_tensor(targ_shape, name+'_targ_shape', kwargs['initializer'])
1866 make_node('Reshape', [input_nodes[0], name+'_targ_shape'], [name], name=name)
1869 create_tensor([0], name+'_0', kwargs['initializer'])
1870 create_tensor([1], name+'_1', kwargs['initializer'])
1872 make_node('Shape', [name+'_targ_shape'], [name+'_targ_dim']),
1873 make_node('Shape', [input_nodes[0]], [name+'_orig_shape']),
1874 make_node('Shape', [name+'_orig_shape'], [name+'_orig_dim']),
1875 make_node('Sub', [name+'_targ_dim', name+'_orig_dim'], [name+'_dim_diff']),
1876 make_node('Abs', [name+'_dim_diff'], [name+'_pad_len']),
1877 make_node('Less', [name+'_targ_dim', name+'_orig_dim'], [name+'_targ_less_orig']),
1878 make_node('Less', [name+'_orig_dim', name+'_targ_dim'], [name+'_orig_less_targ']),
1879 make_node('Where', [name+'_targ_less_orig', name+'_pad_len', name+'_0'],
1880 [name+'_targ_pad_len']),
1881 make_node('Where', [name+'_orig_less_targ', name+'_pad_len', name+'_0'],
1882 [name+'_orig_pad_len']),
1883 make_node('Concat', [name+'_targ_pad_len', name+'_0'], [name+'_targ_pads'], axis=0),
1884 make_node('Concat', [name+'_orig_pad_len', name+'_0'], [name+'_orig_pads'], axis=0),
1885 make_node('Pad', [name+'_targ_shape', name+'_targ_pads', name+'_1'],
1886 [name+'_targ_shape_padded'], mode='constant'),
1887 make_node('Pad', [name+'_orig_shape', name+'_orig_pads', name+'_1'],
1888 [name+'_orig_shape_padded'], mode='constant'),
1889 make_node('Equal', [name+'_targ_shape_padded', name+'_0'],
1890 [name+'_targ_shape_0_mask']),
1891 make_node('Where', [name+'_targ_shape_0_mask', name+'_orig_shape_padded',
1892 name+'_targ_shape_padded'], [name+'_targ_shape_new']),
1893 make_node('Shape', [name+'_targ_shape_new'], [name+'_targ_new_dim']),
1894 make_node('Slice', [name+'_targ_shape_new', name+'_targ_pad_len',
1895 name+'_targ_new_dim'], [name+'_targ_shape_final']),
1896 make_node('Reshape', [input_nodes[0], name+'_targ_shape_final'], [name], name=name)
1906 name, input_nodes, attrs = get_inputs(node, kwargs)
1911 onnx.helper.make_node("Cast", input_nodes, [name], to=dtype_t, name=name)
1922 name, input_nodes, attrs = get_inputs(node, kwargs)
1929 create_tensor([axis], name+'_axis', kwargs["initializer"])
1930 create_tensor([begin], name+'_begin', kwargs["initializer"])
1935 make_node('Shape', [input_nodes[0]], [name+"_data_shape"])
1939 create_tensor([-1], name+'_-1', kwargs["initializer"])
1941 make_node('Shape', [name+'_data_shape'], [name+'_data_dim']),
1942 make_node('Add', [name+'_data_dim', name+'_-1'], [name+'_axis_max']),
1943 … make_node('Slice', [name+'_data_shape', name+'_axis_max', name+'_data_dim'], [name+'_end']),
1946 create_tensor([axis+1], name+"_axis_plus_1", kwargs["initializer"])
1948 make_node('Slice', [name+'_data_shape', name+'_axis', name+'_axis_plus_1'],
1949 [name+"_end"])
1952 create_tensor([int(end)], name+'_end', kwargs["initializer"])
1955 make_node('Slice', [input_nodes[0], name+'_begin', name+'_end', name+'_axis'],
1956 [name], name=name)
1969 name, input_nodes, attrs = get_inputs(node, kwargs)
1978 make_node('Split', [input_nodes[0]], [name+str(i)+'_' for i in range(num_outputs)],
1983 make_node('Squeeze', [name+str(i)+'_'], [name+str(i)], axes=[axis])
1987 make_node('Split', [input_nodes[0]], [name+str(i) for i in range(num_outputs)],
1998 name, input_nodes, attrs = get_inputs(node, kwargs)
2005 [name],
2007 name=name,
2016 name, input_nodes, attrs = get_inputs(node, kwargs)
2025 [name],
2026 name=name
2032 [name],
2034 name=name,
2079 name, input_nodes, attrs = get_inputs(node, kwargs)
2086 [name],
2088 name=name,
2097 name, input_nodes, attrs = get_inputs(node, kwargs)
2104 [name],
2106 name=name,
2115 name, input_nodes, _ = get_inputs(node, kwargs)
2124 name=power2_name,
2137 [name],
2138 name=name
2149 name, input_nodes, attrs = get_inputs(node, kwargs)
2160 outputs=[name],
2163 name=name
2169 outputs=[name],
2171 name=name
2189 name, input_nodes, attrs = get_inputs(node, kwargs)
2198 [name],
2201 name=name
2211 name, input_nodes, _ = get_inputs(node, kwargs)
2218 make_node('Less', [input_nodes[0], input_nodes[1]], [name+'_lt']),
2219 make_node('Cast', [name+'_lt'], [name], to=dtype_t)
2230 name, input_nodes, _ = get_inputs(node, kwargs)
2237 make_node('LessOrEqual', [input_nodes[0], input_nodes[1]], [name+'_lt']),
2238 make_node('Cast', [name+'_lt'], [name], to=dtype_t)
2249 name, input_nodes, _ = get_inputs(node, kwargs)
2256 make_node('GreaterOrEqual', [input_nodes[0], input_nodes[1]], [name+'_gt']),
2257 make_node('Cast', [name+'_gt'], [name], to=dtype_t)
2269 name, input_nodes, _ = get_inputs(node, kwargs)
2276 make_node('Greater', [input_nodes[0], input_nodes[1]], [name+'_gt']),
2277 make_node('Cast', [name+'_gt'], [name], to=dtype_t)
2289 name, input_nodes, _ = get_inputs(node, kwargs)
2296 make_node("Equal", input_nodes, [name+"_equal"]),
2297 make_node("Cast", [name+"_equal"], [name], name=name, to=int(dtype_t))
2308 name, input_nodes, _ = get_inputs(node, kwargs)
2315 make_node("Equal", input_nodes, [name+"_equal"]),
2316 make_node("Not", [name+"_equal"], [name+"_not"]),
2317 make_node("Cast", [name+"_not"], [name], name=name, to=int(dtype_t))
2329 name, input_nodes, _ = get_inputs(node, kwargs)
2334 make_node("Cast", [input_nodes[0]], [name+"_cast0"], to=int(TensorProto.BOOL)),
2335 make_node("Cast", [input_nodes[1]], [name+"_cast1"], to=int(TensorProto.BOOL)),
2336 make_node("And", [name+"_cast0", name+"_cast1"], [name+"_and"]),
2337 make_node("Cast", [name+"_and"], [name], name=name, to=int(dtype_t))
2349 name, input_nodes, _ = get_inputs(node, kwargs)
2354 make_node("Cast", [input_nodes[0]], [name+"_cast0"], to=int(TensorProto.BOOL)),
2355 make_node("Cast", [input_nodes[1]], [name+"_cast1"], to=int(TensorProto.BOOL)),
2356 make_node("Or", [name+"_cast0", name+"_cast1"], [name+"_or"]),
2357 make_node("Cast", [name+"_or"], [name], name=name, to=int(dtype_t))
2369 name, input_nodes, _ = get_inputs(node, kwargs)
2374 make_node("Cast", [input_nodes[0]], [name+"_cast0"], to=int(TensorProto.BOOL)),
2375 make_node("Cast", [input_nodes[1]], [name+"_cast1"], to=int(TensorProto.BOOL)),
2376 make_node("Xor", [name+"_cast0", name+"_cast1"], [name+"_xor"]),
2377 make_node("Cast", [name+"_xor"], [name], name=name, to=int(dtype_t))
2389 name, input_nodes, _ = get_inputs(node, kwargs)
2394 make_node("Cast", [input_nodes[0]], [name+"_cast"], to=int(TensorProto.BOOL)),
2395 make_node("Not", [name+"_cast"], [name+"_not"]),
2396 make_node("Cast", [name+"_not"], [name], name=name, to=int(dtype_t))
2407 name, input_nodes, _ = get_inputs(node, kwargs)
2409 create_tensor([1], name+'_1', kwargs['initializer'])
2411 make_node('Size', [input_nodes[0]], [name+'_size']),
2412 make_node('Reshape', [name+'_size', name+'_1'], [name], name=name)
2423 name, input_nodes, attrs = get_inputs(node, kwargs)
2437 make_node('Exp', [input_nodes[0]], [name+'_exp']),
2438 make_node('ReduceSum', [name+'_exp'], [name+'_rsum'], axes=[axis], keepdims=1),
2439 make_node('Div', [name+'_exp', name+'_rsum'], [name+'_div']),
2440 make_node('Log', [name+'_div'], [name])
2451 name, input_nodes, attrs = get_inputs(node, kwargs)
2466 reduce_node = make_node(onnx_op_name, input_nodes, [name], axes=axes, keepdims=keepdims)
2469 create_tensor([1], name+'_1', kwargs['initializer'])
2471 make_node(onnx_op_name, input_nodes, [name+'_norm'], axes=axes, keepdims=keepdims),
2472 make_node('Shape', [name+'_norm'], [name+'_norm_shape']),
2473 make_node('Concat', [name+'_1', name+'_norm_shape'], [name+'_concat'], axis=0),
2474 make_node('Reshape', [name+'_norm', name+'_concat'], [name+'_reshape']),
2475 make_node('Squeeze', [name+'_reshape'], [name], axes=[0]),
2481 reduce_node = make_node(onnx_op_name, input_nodes, [name], keepdims=keepdims)
2484 create_tensor([1], name+'_1', kwargs['initializer'])
2486 make_node(onnx_op_name, input_nodes, [name+'_norm'], keepdims=keepdims),
2487 make_node('Reshape', [name+'_norm', name+'_1'], [name])
2497 name, input_nodes, attrs = get_inputs(node, kwargs)
2507 [name],
2510 name=name,
2520 name, _, attrs = get_inputs(node, kwargs)
2532 [name],
2537 name=name
2547 name, input_nodes, attrs = get_inputs(node, kwargs)
2559 [name],
2564 name=name
2574 name, input_nodes, attrs = get_inputs(node, kwargs)
2582 [name],
2585 name=name
2596 name, input_nodes, attrs = get_inputs(node, kwargs)
2601 create_tensor([0], name+'_0', kwargs['initializer'])
2602 create_tensor([1], name+'_1', kwargs['initializer'])
2603 create_tensor(reps, name+'_reps', kwargs['initializer'], dtype='int64')
2604 create_tensor([len(reps)], name+'_reps_len', kwargs['initializer'])
2607 make_node('Shape', [data], [name+'_data_shape']),
2608 make_node('Shape', [name+'_data_shape'], [name+'_data_dim']),
2609 make_node('Max', [name+'_data_dim', name+'_reps_len'], [name+'_max']),
2610 make_node('Sub', [name+'_max', name+'_data_dim'], [name+'_data_diff']),
2611 make_node('Concat', [name+'_data_diff', name+'_0'], [name+'_concat0_out'], axis=0),
2612 … make_node('Pad', [name+'_data_shape', name+'_concat0_out', name+'_1'], [name+'_data_shape_pad']),
2613 make_node('Reshape', [data, name+'_data_shape_pad'], [name+'_data']),
2614 make_node('Sub', [name+'_max', name+'_reps_len'], [name+'_reps_diff']),
2615 make_node('Concat', [name+'_reps_diff', name+'_0'], [name+'_concat1_out'], axis=0),
2616 make_node('Pad', [name+'_reps', name+'_concat1_out', name+'_1'], [name+'_reps_pad']),
2617 make_node('Tile', [name+'_data', name+'_reps_pad'], [name], name=name),
2628 name, input_nodes, attrs = get_inputs(node, kwargs)
2642 name=output_shape_name,
2654 [name],
2655 name=name
2667 name, input_nodes, attrs = get_inputs(node, kwargs)
2683 create_tensor([k], name+'_k', kwargs['initializer'])
2690 make_node('TopK', [input_nodes[0], name+'_k'], [name+'0', name+'1'], axis=axis,
2695 make_node('TopK', [input_nodes[0], name+'_k'], [name+'0', name+'_1_i'], axis=axis,
2697 make_node('Cast', [name+'_1_i'], [name+'1'],
2702 make_node('TopK', [input_nodes[0], name+'_k'], [name+'0', name+'_'], axis=axis,
2708 make_node('TopK', [input_nodes[0], name+'_k'], [name+'_', name], axis=axis,
2713 make_node('TopK', [input_nodes[0], name+'_k'], [name+'__', name+'_tmp'], axis=axis,
2715 make_node('Cast', [name+'_tmp'], [name],
2728 name, input_nodes, attrs = get_inputs(node, kwargs)
2736 make_node('Cast', [indices], [name+'_indices'], to=int(TensorProto.INT64)),
2741 make_node('Gather', [data, name+'_indices'], [name], axis=axis, name=name)
2746 create_tensor([-1], name+'_-1', kwargs["initializer"])
2748 make_node('Shape', [data], [name+'_data_shape']),
2754 make_node('Shape', [name+'_data_shape'], [name+'_data_dim']),
2755 make_node('Add', [name+'_data_dim', name+'_-1'], [name+'_axis_max']),
2756 …make_node('Slice', [name+'_data_shape', name+'_axis_max', name+'_data_dim'], [name+'_slice0_out']),
2760 create_tensor([axis], name+'_axis', kwargs["initializer"])
2761 create_tensor([axis+1], name+'_axis+1', kwargs["initializer"])
2763 … make_node('Slice', [name+'_data_shape', name+'_axis', name+'_axis+1'], [name+'_slice0_out']),
2767 create_tensor([0], name+'_0', kwargs["initializer"])
2769 make_node('Add', [name+'_slice0_out', name+'_-1'], [name+'_max']),
2770 make_node('Greater', [name+'_indices', name+'_max'], [name+'_max_mask']),
2771 … make_node('Where', [name+'_max_mask', name+'_max', name+'_indices'], [name+'_where0_out']),
2772 make_node('Less', [name+'_indices', name+'_0'], [name+'_min_mask']),
2773 … make_node('Where', [name+'_min_mask', name+'_0', name+'_where0_out'], [name+'_where1_out']),
2774 make_node('Gather', [data, name+'_where1_out'], [name], axis=axis, name=name)
2779 make_node('Mod', [name+'_indices', name+'_slice0_out'], [name+'_mod0_out']),
2780 make_node('Gather', [data, name+'_mod0_out'], [name], axis=axis, name=name)
2795 name, input_nodes, attrs = get_inputs(node, kwargs)
2803 create_tensor([axes], name+"_axes", kwargs["initializer"])
2804 create_tensor([axes+1], name+"_axes+1", kwargs["initializer"])
2805 create_const_scalar_node(name+'_0_s', np.int64(0), kwargs)
2806 create_const_scalar_node(name+'_1_s', np.int64(1), kwargs)
2807 create_const_scalar_node(name+"_2_s", np.int64(2).astype(dtype), kwargs)
2808 create_const_scalar_node(name+"_eps", np.float32(eps), kwargs)
2811 make_node("ReduceMean", [input_nodes[0]], [name+"_rm0_out"], axes=[axes]),
2812 make_node("Sub", [input_nodes[0], name+"_rm0_out"], [name+"_sub0_out"]),
2813 make_node("Pow", [name+"_sub0_out", name+"_2_s"], [name+"_pow0_out"]),
2814 make_node("ReduceMean", [name+"_pow0_out"], [name+"_rm1_out"], axes=[axes]),
2815 make_node("Add", [name+"_rm1_out", name+"_eps"], [name+"_add0_out"]),
2816 make_node("Sqrt", [name+"_add0_out"], [name+"_sqrt0_out"]),
2817 make_node("Div", [name+"_sub0_out", name+"_sqrt0_out"], [name+"_div0_out"]),
2822 make_node("Mul", [name+"_div0_out", input_nodes[1]], [name+"_mul0_out"]),
2826 make_node('Neg', [input_nodes[2]], [name+'_neg']),
2827 make_node("Sub", [name+"_mul0_out", name+'_neg'], [name])
2831 make_node("Shape", [input_nodes[0]], [name+"_shape0_out"]),
2832 make_node("Shape", [name+"_shape0_out"], [name+"_in_dim"]),
2833 make_node("Squeeze", [name+"_in_dim"], [name+"_in_dim_s"], axes=[0]),
2834 make_node("Range", [name+"_0_s", name+"_in_dim_s", name+"_1_s"], [name+"_range"]),
2835 make_node("Equal", [name+"_range", name+"_axes"], [name+"_equal"]),
2836 make_node("Cast", [name+"_equal"], [name+"_one_hot"], to=int(TensorProto.INT64)),
2837 … make_node("Slice", [name+"_shape0_out", name+"_axes", name+"_axes+1"], [name+"_slice_out"]),
2838 make_node("Squeeze", [name+"_slice_out"], [name+"_slice_out_s"], axes=[0]),
2839 make_node("Sub", [name+"_slice_out_s", name+"_1_s"], [name+"_sub1_out"]),
2840 make_node("Mul", [name+"_one_hot", name+"_sub1_out"], [name+"_mul0_out"]),
2841 make_node("Add", [name+"_mul0_out", name+"_1_s"], [name+"_add1_out"]),
2842 make_node('Reshape', [input_nodes[1], name+"_add1_out"], [name+"gamma_exp"]),
2843 make_node('Reshape', [input_nodes[2], name+"_add1_out"], [name+"beta_exp"]),
2844 make_node('Expand', [name+"gamma_exp", name+"_shape0_out"], [name+"gamma_exp1"]),
2845 make_node('Expand', [name+"beta_exp", name+"_shape0_out"], [name+"beta_exp1"]),
2846 make_node("Mul", [name+"_div0_out", name+"gamma_exp1"], [name+"_mul1_out"]),
2847 make_node("Add", [name+"_mul1_out", name+"beta_exp1"], [name], name=name)
2859 name, input_nodes, attrs = get_inputs(node, kwargs)
2864 create_tensor([0], name+"_0", kwargs["initializer"])
2865 create_tensor([1], name+"_1", kwargs["initializer"])
2866 create_tensor([1], name+"_1_f", kwargs["initializer"], dtype='float32')
2867 create_tensor([2], name+"_2", kwargs["initializer"])
2868 create_tensor([3], name+"_3", kwargs["initializer"])
2869 create_tensor([heads], name+"_c", kwargs["initializer"])
2870 create_tensor([3], name+"_d", kwargs["initializer"])
2872 make_node('Shape', [input_nodes[0]], [name+"_data_shape"]),
2873 make_node('Slice', [name+'_data_shape', name+'_0', name+'_1'], [name+"_a"]),
2874 make_node('Slice', [name+'_data_shape', name+'_1', name+'_2'], [name+"_b"]),
2875 make_node('Slice', [name+'_data_shape', name+'_2', name+'_3'], [name+"_cde"]),
2876 make_node('Div', [name+'_cde', name+'_c'], [name+'_de']),
2877 make_node('Div', [name+'_de', name+'_d'], [name+'_e']),
2878 make_node('Cast', [name+'_e'], [name+'_e_f'], to=int(TensorProto.FLOAT)),
2879 make_node('Sqrt', [name+'_e_f'], [name+'_sqrt_e']),
2880 make_node('Div', [name+'_1_f', name+'_sqrt_e'], [name+'_1_over_sqrt_e']),
2881 make_node('Mul', [name+'_b', name+'_c'], [name+'_bc']),
2883 make_node("Concat", [name+'_a', name+'_b', name+'_c', name+'_d', name+'_e'], \
2884 [name+'_shape0'], axis=0),
2885 make_node("Concat", [name+'_0', name+'_0', name+'_0', name+'_0', name+'_0'], \
2886 [name+'_slice_start0'], axis=0),
2887 make_node("Concat", [name+'_a', name+'_b', name+'_c', name+'_1', name+'_e'], \
2888 [name+'_slice_end0'], axis=0),
2889 make_node("Concat", [name+'_a', name+'_b', name+'_c', name+'_e'], \
2890 [name+'_shape1'], axis=0),
2891 make_node("Concat", [name+'_bc', name+'_a', name+'_e'], \
2892 [name+'_shape2'], axis=0),
2893 make_node("Concat", [name+'_0', name+'_0', name+'_0', name+'_1', name+'_0'], \
2894 [name+'_slice_start1'], axis=0),
2895 make_node("Concat", [name+'_a', name+'_b', name+'_c', name+'_2', name+'_e'], \
2896 [name+'_slice_end1'], axis=0),
2898 make_node('Reshape', [input_nodes[0], name+'_shape0'], [name+'_reshape0_out']),
2899 make_node('Slice', [name+'_reshape0_out', name+'_slice_start0', name+'_slice_end0'], \
2900 [name+'_slice0_out']),
2901 make_node('Reshape', [name+'_slice0_out', name+'_shape1'], [name+'_reshape1_out']),
2902 make_node('Transpose', [name+'_reshape1_out'], [name+'_transpose0_out'], \
2904 make_node('Reshape', [name+'_transpose0_out', name+'_shape2'], [name+'_reshape2_out']),
2905 make_node('Mul', [name+'_reshape2_out', name+'_1_over_sqrt_e'], [name+'_mul0_out']),
2906 make_node('Slice', [name+'_reshape0_out', name+'_slice_start1', name+'_slice_end1'], \
2907 [name+'_slice1_out']),
2908 make_node('Reshape', [name+'_slice1_out', name+'_shape1'], [name+'_reshape3_out']),
2909 make_node('Transpose', [name+'_reshape3_out'], [name+'_transpose1_out'], \
2911 make_node('Reshape', [name+'_transpose1_out', name+'_shape2'], [name+'_reshape4_out']),
2912 make_node('Transpose', [name+'_reshape4_out'], [name+'_transpose2_out'], \
2914 make_node('MatMul', [name+'_mul0_out', name+'_transpose2_out'], [name], name=name)
2924 name, input_nodes, attrs = get_inputs(node, kwargs)
2929 create_tensor([num_heads], name+"_const_num_heads", kwargs["initializer"])
2930 create_tensor([0], name+"_const_0", kwargs["initializer"])
2931 create_tensor([1], name+"_const_1", kwargs["initializer"])
2932 create_tensor([2], name+"_const_2", kwargs["initializer"])
2933 create_tensor([3], name+"_const_3", kwargs["initializer"])
2934 create_tensor([4], name+"_const_4", kwargs["initializer"])
2935 create_tensor([5], name+"_const_5", kwargs["initializer"])
2936 create_tensor([0, 0, num_heads, 3, -1], name+"_reshape0_shape", kwargs["initializer"])
2937 create_tensor([0, 0, 0, 2, 0], name+"_slice_start", kwargs["initializer"])
2938 create_tensor([0, 0, 0, -1], name+"_reshape1_shape", kwargs["initializer"])
2939 create_tensor([0, 0, -1], name+"_reshape4_shape", kwargs["initializer"])
2942 make_node("Shape", [qkv], [name+"_shape_qkv"]),
2943 make_node("Slice", [name+"_shape_qkv", name+"_const_0", name+"_const_1"], [name+"_qkv_d0"]),
2944 make_node("Slice", [name+"_shape_qkv", name+"_const_1", name+"_const_2"], [name+"_qkv_d1"]),
2945 make_node("Slice", [name+"_shape_qkv", name+"_const_2", name+"_const_3"], [name+"_qkv_d2"]),
2946 make_node('Mul', [name+"_qkv_d1", name+'_const_num_heads'], [name+'_mul_out']),
2947 make_node("Reshape", [qkv, name+"_reshape0_shape"], [name+"_reshape0_output"]),
2948 make_node("Shape", [name+"_reshape0_output"], [name+"_shape_reshape0"]),
2949 … make_node("Slice", [name+"_shape_reshape0", name+"_const_4", name+"_const_5"], [name+"_d4"]),
2950 …make_node("Concat", [name+"_mul_out", name+"_qkv_d0", name+"_d4"], [name+"_reshape2_shape"], axis=…
2951 make_node("Concat", [name+"_qkv_d1", name+"_const_num_heads", name+"_qkv_d0", name+"_d4"], \
2952 [name+"_reshape3_shape"], axis=0),
2953 …make_node("Concat", [name+"_qkv_d0", name+"_qkv_d1", name+"_qkv_d2", name+"_const_3", name+"_d4"],…
2954 [name+"_slice_end"], axis=0),
2955 …make_node("Slice", [name+"_reshape0_output", name+"_slice_start", name+"_slice_end"], [name+"_slic…
2956 … make_node("Reshape", [name+"_slice_output", name+"_reshape1_shape"], [name+"_reshape1_output"]),
2957 … make_node("Transpose", [name+"_reshape1_output"], [name+"_transpose0_output"], perm=[1, 2, 0, 3]),
2958 …make_node("Reshape", [name+"_transpose0_output", name+"_reshape2_shape"], [name+"_reshape2_output"…
2959 make_node("MatMul", [att, name+"_reshape2_output"], [name+"_matmul_output"]),
2960 … make_node("Reshape", [name+"_matmul_output", name+"_reshape3_shape"], [name+"_reshape3_output"]),
2961 … make_node("Transpose", [name+"_reshape3_output"], [name+"_transpose2_output"], perm=[2, 0, 1, 3]),
2962 make_node("Reshape", [name+"_transpose2_output", name+"_reshape4_shape"], [name], name=name)
2973 name, input_nodes, attrs = get_inputs(node, kwargs)
2979 shape_name = name+'_shape_0'
2981 create_tensor([0], name+'_0', kwargs["initializer"])
2982 create_tensor([1], name+'_1', kwargs["initializer"])
2983 create_const_scalar_node(name+'_0_s', np.int64(0), kwargs)
2984 create_const_scalar_node(name+'_1_s', np.int64(1), kwargs)
2988 make_node('Shape', [shape_name], [name+'_in_dim']),
2989 make_node('Squeeze', [name+'_in_dim'], [name+'_in_dim_s'], axes=[0]),
2990 make_node('Range', [name+'_0_s', name+'_in_dim_s', name+'_1_s'], [name+'_range']),
2995 create_tensor([axis], name+'_'+str(axis), kwargs["initializer"])
2996 create_tensor([size[i]-1], name+'_size_'+str(i), kwargs["initializer"])
2998 make_node('Equal', [name+'_range', name+'_'+str(axis)], [name+'_equal_'+str(i)]),
2999 … make_node('Cast', [name+'_equal_'+str(i)], [name+'_cast_'+str(i)], to=int(TensorProto.INT64)),
3000 make_node('Mul', [name+'_size_'+str(i), name+'_cast_'+str(i)], [name+'_mul_'+str(i)]),
3001 make_node('Add', [name+'_mul_'+str(i), name+'_1'], [name+'_add_'+str(i)]),
3002 make_node('Mul', [name+'_add_'+str(i), shape_name], [name+'_shape_'+str(i+1)])
3004 shape_name = name+'_shape_'+str(i+1)
3007 make_node('Expand', [input_nodes[0], shape_name], [name], name=name)
3020 name, input_nodes, attrs = get_inputs(node, kwargs)
3027 return [make_node('Identity', [input_nodes[0]], [name], name=name)]
3029 create_tensor([0], name+'_0', kwargs["initializer"])
3030 create_tensor([1], name+'_1', kwargs["initializer"])
3031 create_tensor([2], name+'_2', kwargs["initializer"])
3032 create_const_scalar_node(name+'_0_s', np.int64(0), kwargs)
3033 create_const_scalar_node(name+'_1_s', np.int64(1), kwargs)
3034 create_const_scalar_node(name+'_2_s', np.int64(2), kwargs)
3035 create_tensor([mask_val], name+'_mask_val', kwargs["initializer"], dtype='float32')
3038 make_node('Shape', [input_nodes[0]], [name+'_in_shape']),
3039 make_node('Slice', [name+'_in_shape', name+'_0', name+'_1'], [name+'_slice_0']),
3040 make_node('Slice', [name+'_in_shape', name+'_1', name+'_2'], [name+'_slice_1']),
3041 make_node('Concat', [name+'_slice_0', name+'_1'], [name+'_shape_0'], axis=0),
3042 make_node('Shape', [name+'_in_shape'], [name+'_in_dim']),
3043 make_node('Squeeze', [name+'_in_dim'], [name+'_in_dim_s'], axes=[0]),
3044 make_node('Range', [name+'_0_s', name+'_in_dim_s', name+'_1_s'], [name+'_range_0']),
3045 make_node('Less', [name+'_range_0', name+'_2'], [name+'_less_0']),
3046 make_node('Where', [name+'_less_0', name+'_in_shape', name+'_1'], [name+'_shape_1'])
3051 make_node('Squeeze', [name+'_slice_0'], [name+'_max_len'], axes=[0]),
3052 make_node('Range', [name+'_0_s', name+'_max_len', name+'_1_s'], [name+'_range_1']),
3053 make_node('Reshape', [name+'_range_1', name+'_shape_0'], [name+"_reshape_0"]),
3054 make_node('Cast', [input_nodes[1]], [name+'_cast'], to=int(TensorProto.INT64)),
3055 make_node('Less', [name+'_reshape_0', name+'_cast'], [name+'_less_1']),
3056 make_node('Reshape', [name+'_less_1', name+'_shape_1'], [name+"_reshape_1"]),
3057 … make_node('Where', [name+'_reshape_1', input_nodes[0], name+'_mask_val'], [name], name=name),
3061 make_node('Squeeze', [name+'_slice_1'], [name+'_max_len'], axes=[0]),
3062 make_node('Range', [name+'_0_s', name+'_max_len', name+'_1_s'], [name+'_range_1']),
3063 make_node('Reshape', [input_nodes[1], name+'_shape_0'], [name+"_reshape_0"]),
3064 make_node('Cast', [name+"_reshape_0"], [name+'_cast'], to=int(TensorProto.INT64)),
3065 make_node('Less', [name+'_range_1', name+'_cast'], [name+'_less_1']),
3066 make_node('Reshape', [name+'_less_1', name+'_shape_1'], [name+"_reshape_1"]),
3067 … make_node('Where', [name+'_reshape_1', input_nodes[0], name+'_mask_val'], [name], name=name),
3079 name, input_nodes, attrs = get_inputs(node, kwargs)
3084 make_node('Cast', [input_nodes[0]], [name+'_indices_casted'], to=int(TensorProto.INT64)),
3085 make_node('Gather', [input_nodes[1], name+'_indices_casted'], [name], axis=axis, name=name)
3095 name, input_nodes, attrs = get_inputs(node, kwargs)
3103 outputs=[name+"_unsqueeze"+str(idx)],
3110 inputs=[name+"_unsqueeze"+str(i) for i in range(len(nodes))],
3111 outputs=[name],
3112 name=name,
3123 name, input_nodes, attrs = get_inputs(node, kwargs)
3145 create_tensor(axes, name+'_axes', kwargs['initializer'])
3146 create_tensor(starts, name+'_starts', kwargs['initializer'])
3147 create_tensor(ends, name+'_ends', kwargs['initializer'])
3148 create_tensor(steps, name+'_steps', kwargs['initializer'])
3151 make_node("Slice", [input_nodes[0], name+'_starts', name+'_ends', name+'_axes',
3152 name+'_steps'], [name], name=name)
3163 name, _, attrs = get_inputs(node, kwargs)
3169 create_tensor(shape, name+'_shape', kwargs['initializer'])
3170 tensor_value = make_tensor(name+'_zero', data_type, [1], [0])
3172 make_node('ConstantOfShape', [name+'_shape'], [name], name=name, value=tensor_value)
3182 name, _, attrs = get_inputs(node, kwargs)
3188 create_tensor(shape, name+'_shape', kwargs['initializer'])
3189 tensor_value = make_tensor(name+'_one', data_type, [1], [1])
3191 make_node('ConstantOfShape', [name+'_shape'], [name], name=name, value=tensor_value)
3201 name, input_nodes, _ = get_inputs(node, kwargs)
3207 tensor_value = make_tensor(name+"_zero", dtype_t, [1], [0])
3209 make_node("Shape", [input_nodes[0]], [name+"_shape"]),
3210 make_node("ConstantOfShape", [name+"_shape"], [name], name=name, value=tensor_value)
3220 name, input_nodes, _ = get_inputs(node, kwargs)
3226 tensor_value = make_tensor(name+"_one", dtype_t, [1], [1])
3228 make_node("Shape", [input_nodes[0]], [name+"_shape"]),
3229 make_node("ConstantOfShape", [name+"_shape"], [name], name=name, value=tensor_value)
3239 name, input_nodes, attrs = get_inputs(node, kwargs)
3256 create_const_scalar_node(name+"_start", np.dtype(dtype).type(start), kwargs)
3257 create_const_scalar_node(name+"_step", np.dtype(dtype).type(step), kwargs)
3258 create_const_scalar_node(name+"_half_step", np.dtype(dtype).type(float(step)*0.5), kwargs)
3264 make_node('Shape', [input_nodes[0]], [name+"_shape0_out"]),
3265 make_node("ReduceProd", [name+"_shape0_out"], [name+"_redprod0_out"]),
3266 make_node('Squeeze', [name+'_redprod0_out'], [name+'_reshape0_out'], axes=[0]),
3267 make_node("Cast", [name+"_reshape0_out"], [name+"_cast0_out"], to=dtype_t),
3268 make_node("Mul", [name+"_cast0_out", name+"_step"], [name+"_mul0_out"]),
3269 make_node("Add", [name+"_mul0_out", name+"_start"], [name+"_add1_out"]),
3270 make_node("Sub", [name+"_add1_out", name+"_half_step"], [name+"_sub0_out"]),
3271 … make_node("Range", [name+"_start", name+"_sub0_out", name+"_step"], [name+"_range0_out"]),
3272 make_node("Reshape", [name+"_range0_out", name+"_shape0_out"], [name], name=name)
3276 create_tensor([int(axis)], name+"_axis_start", kwargs["initializer"], dtype='int64')
3277 create_tensor([int(axis)+1], name+"_axis_end", kwargs["initializer"], dtype='int64')
3279 make_node('Shape', [input_nodes[0]], [name+"_shape0_out"]),
3280 …make_node('Slice', [name+"_shape0_out", name+"_axis_start", name+"_axis_end"], [name+"_slice0_out"…
3281 make_node("ReduceProd", [name+"_slice0_out"], [name+"_reprod0_out"]),
3282 make_node('Squeeze', [name+'_reprod0_out'], [name+'_reshape0_out'], axes=[0]),
3283 make_node("Cast", [name+"_reshape0_out"], [name+"_cast0_out"], to=dtype_t),
3284 make_node("Mul", [name+"_cast0_out", name+"_step"], [name+"_mul0_out"]),
3285 make_node("Add", [name+"_mul0_out", name+"_start"], [name+"_add1_out"]),
3286 make_node("Sub", [name+"_add1_out", name+"_half_step"], [name+"_sub0_out"]),
3287 make_node("Range", [name+"_start", name+"_sub0_out", name+"_step"], [name], name=name)
3299 name, input_nodes, attrs = get_inputs(node, kwargs)
3319 create_tensor([], name+'_roi', kwargs['initializer'], dtype='float32')
3320 create_tensor([], name+'_scales_empty', kwargs['initializer'],
3325 create_tensor([0], name+'_0', kwargs['initializer'])
3326 create_tensor([2], name+'_2', kwargs['initializer'])
3327 create_tensor([height, width], name+'_h_w', kwargs['initializer'], dtype='int64')
3329 make_node('Shape', [input_nodes[0]], [name+'_shape']),
3330 make_node('Slice', [name+'_shape', name+'_0', name+'_2'], [name+'_shape_01']),
3331 make_node('Concat', [name+'_shape_01', name+'_h_w'], [name+'_sizes'], axis=0),
3334 create_tensor([1, 1, scale_height, scale_width], name+'_scales', kwargs['initializer'],
3337 make_node('Shape', [input_nodes[0]], [name+'_shape']),
3338 make_node('Cast', [name+'_shape'], [name+'_shape_f'], to=int(TensorProto.FLOAT)),
3339 make_node('Mul', [name+'_shape_f', name+'_scales'], [name+'_sizes_']),
3340 make_node('Cast', [name+'_sizes_'], [name+'_sizes'], to=int(TensorProto.INT64)),
3343 … make_node('Resize', [input_nodes[0], name+'_roi', name+'_scales_empty', name+'_sizes'], [name],
3344 mode='linear', coordinate_transformation_mode='align_corners', name=name)
3355 name, _, attrs = get_inputs(node, kwargs)
3374 create_const_scalar_node(name+"_start", np.dtype(dtype).type(start), kwargs)
3375 create_const_scalar_node(name+"_stop", np.dtype(dtype).type(stop), kwargs)
3376 create_const_scalar_node(name+"_step", np.dtype(dtype).type(step), kwargs)
3379 make_node("Range", [name+"_start", name+"_stop", name+"_step"], [name], name=name)
3390 name, input_nodes, attrs = get_inputs(node, kwargs)
3398 create_tensor([8], name+'_8', kwargs['initializer'])
3399 create_tensor([0], name+'_0', kwargs['initializer'])
3400 create_tensor([1], name+'_1', kwargs['initializer'])
3401 create_tensor([-1], name+'_m1', kwargs['initializer'])
3402 create_tensor([axis], name+'_axis', kwargs['initializer'])
3403 create_tensor([axis+1], name+'_axis_p1', kwargs['initializer'])
3404 create_const_scalar_node(name+'_m1_s', np.int64(-1), kwargs)
3407 make_node('Shape', [input_nodes[0]], [name+'_shape']),
3408 make_node('Shape', [name+'_shape'], [name+'_dim']),
3409 make_node('Sub', [name+'_8', name+'_dim'], [name+'_sub']),
3410 make_node('Concat', [name+'_0', name+'_sub'], [name+'_concat'], axis=0),
3411 make_node('Pad', [name+'_shape', name+'_concat', name+'_1'], [name+'_shape_8_dim']),
3412 make_node('Reshape', [input_nodes[0], name+'_shape_8_dim'], [name+'_data_8_dim']),
3413 make_node('Transpose', [name+'_data_8_dim'], [name+'_data_t'], perm=perm),
3414 make_node('Slice', [name+'_shape', name+'_axis', name+'_axis_p1'], [name+'_axis_len']),
3415 make_node('Sub', [name+'_axis_len', name+'_1'], [name+'_axis_len_m1']),
3416 make_node('Squeeze', [name+'_axis_len_m1'], [name+'_axis_len_m1_s'], axes=[0]),
3417 make_node('Range', [name+'_axis_len_m1_s', name+'_m1_s', name+'_m1_s'], [name+'_indices']),
3418 make_node('Gather', [name+'_data_t', name+'_indices'], [name+'_gather']),
3419 make_node('Transpose', [name+'_gather'], [name+'_data_reversed'], perm=perm),
3420 make_node('Reshape', [name+'_data_reversed', name+'_shape'], [name], name=name)
3432 name, input_nodes, attrs = get_inputs(node, kwargs)
3446 create_tensor([repeats], name+'_rep', kwargs['initializer'])
3447 create_tensor([1, repeats], name+'_repeats', kwargs['initializer'])
3449 make_node('Shape', [input_nodes[0]], [name+'_shape']),
3450 make_node('ReduceProd', [name+'_shape'], [name+'_size']),
3451 make_node('Reshape', [input_nodes[0], name+'_size'], [name+'_flat']),
3452 make_node('Unsqueeze', [name+'_flat'], [name+'_unsqueeze'], axes=[-1]),
3453 make_node('Tile', [name+'_unsqueeze', name+'_repeats'], [name+'_tile']),
3454 make_node('Mul', [name+'_size', name+'_rep'], [name+'_new_size']),
3455 make_node('Reshape', [name+'_tile', name+'_new_size'], [name], name=name)
3460 create_tensor([repeats], name+'_repeats', kwargs['initializer'])
3461 create_tensor([1], name+'_1', kwargs['initializer'])
3462 create_tensor([0], name+'_0', kwargs['initializer'])
3463 create_tensor([axis], name+'_axis', kwargs['initializer'])
3464 create_const_scalar_node(name+"_0_s", np.int64(0), kwargs)
3465 create_const_scalar_node(name+"_1_s", np.int64(1), kwargs)
3467 make_node('Shape', [input_nodes[0]], [name+'_shape']),
3468 make_node('Shape', [name+'_shape'], [name+'_dim']),
3469 make_node('Squeeze', [name+'_dim'], [name+'_dim_s'], axes=[0]),
3470 make_node('Range', [name+'_0_s', name+'_dim_s', name+'_1_s'], [name+'_range'])
3474 make_node('Add', [name+'_axis', name+'_dim'], [name+'_true_axis']),
3475 make_node('Equal', [name+'_range', name+'_true_axis'], [name+'_one_hot'])
3479 make_node('Equal', [name+'_range', name+'_axis'], [name+'_one_hot'])
3482 make_node('Cast', [name+'_one_hot'], [name+'_one_hot_int'], to=int(TensorProto.INT64)),
3483 make_node('Mul', [name+'_repeats', name+'_one_hot_int'], [name+'_mul']),
3484 make_node('Add', [name+'_mul', name+'_1'], [name+'_add']),
3485 make_node('Concat', [name+'_1', name+'_add'], [name+'_repeats_tensor'], axis=0)
3489 make_node('Concat', [name+'_shape', name+'_1'], [name+'_unsqueeze_shape'], axis=0),
3490 make_node('Reshape', [input_nodes[0], name+'_unsqueeze_shape'],
3491 [name+'_unsqueeze'])
3495 make_node('Unsqueeze', [input_nodes[0]], [name+'_unsqueeze'], axes=[axis+1])
3498 make_node('Tile', [name+'_unsqueeze', name+'_repeats_tensor'], [name+'_tile']),
3499 make_node('Mul', [name+'_shape', name+'_add'], [name+'_new_shape']),
3500 make_node('Reshape', [name+'_tile', name+'_new_shape'], [name], name=name)
3511 name, input_nodes, attrs = get_inputs(node, kwargs)
3549 create_tensor([coord_start], name+'_cs', kwargs['initializer'])
3550 create_tensor([coord_start+4], name+'_cs_p4', kwargs['initializer'])
3551 create_tensor([score_index], name+'_si', kwargs['initializer'])
3552 create_tensor([score_index+1], name+'_si_p1', kwargs['initializer'])
3553 create_tensor([topk], name+'_topk', kwargs['initializer'])
3554 create_tensor([overlap_thresh], name+'_ot', kwargs['initializer'], dtype=np.float32)
3555 create_tensor([valid_thresh], name+'_vt', kwargs['initializer'], dtype=np.float32)
3556 create_tensor([-1], name+'_m1', kwargs['initializer'])
3557 create_tensor([-1], name+'_m1_f', kwargs['initializer'], dtype=dtype)
3558 create_tensor([0], name+'_0', kwargs['initializer'])
3559 create_tensor([1], name+'_1', kwargs['initializer'])
3560 create_tensor([2], name+'_2', kwargs['initializer'])
3561 create_tensor([3], name+'_3', kwargs['initializer'])
3562 create_tensor([0, 1, -1], name+'_scores_shape', kwargs['initializer'])
3563 create_tensor([0, 0, 1, 0], name+'_pad', kwargs['initializer'])
3564 create_tensor([0, -1], name+'_bat_spat_helper', kwargs['initializer'])
3565 create_const_scalar_node(name+"_0_s", np.int64(0), kwargs)
3566 create_const_scalar_node(name+"_1_s", np.int64(1), kwargs)
3569 make_node('Shape', [input_nodes[0]], [name+'_shape']),
3570 make_node('Shape', [name+'_shape'], [name+'_dim']),
3571 make_node('Sub', [name+'_dim', name+'_2'], [name+'_dim_m2']),
3572 make_node('Slice', [name+'_shape', name+'_dim_m2', name+'_dim'], [name+'_shape_last2']),
3573 make_node('Concat', [name+'_m1', name+'_shape_last2'], [name+'_shape_3d'], axis=0),
3574 make_node('Reshape', [input_nodes[0], name+'_shape_3d'], [name+'_data_3d']),
3575 make_node('Slice', [name+'_data_3d', name+'_cs', name+'_cs_p4', name+'_m1'],
3576 [name+'_boxes']),
3577 make_node('Slice', [name+'_data_3d', name+'_si', name+'_si_p1', name+'_m1'],
3578 [name+'_scores_raw']),
3579 make_node('Reshape', [name+'_scores_raw', name+'_scores_shape'], [name+'_scores']),
3580 make_node('Shape', [name+'_scores'], [name+'_scores_shape_actual']),
3582 [name+'_boxes', name+'_scores', name+'_topk', name+'_ot', name+'_vt'],
3583 [name+'_nms'], center_point_box=center_point_box),
3584 make_node('Slice', [name+'_nms', name+'_0', name+'_3', name+'_m1', name+'_2'],
3585 [name+'_nms_sliced']),
3586 make_node('GatherND', [name+'_data_3d', name+'_nms_sliced'], [name+'_candidates']),
3587 make_node('Pad', [name+'_candidates', name+'_pad', name+'_m1_f'], [name+'_cand_padded']),
3588 make_node('Shape', [name+'_nms'], [name+'_nms_shape']),
3589 make_node('Slice', [name+'_nms_shape', name+'_0', name+'_1'], [name+'_cand_cnt']),
3590 make_node('Squeeze', [name+'_cand_cnt'], [name+'_cc_s'], axes=[0]),
3591 make_node('Range', [name+'_0_s', name+'_cc_s', name+'_1_s'], [name+'_cand_indices']),
3592 make_node('Slice', [name+'_scores_shape_actual', name+'_0', name+'_3', name+'_m1',
3593 name+'_2'], [name+'_shape_bat_spat']),
3594 make_node('Slice', [name+'_shape_bat_spat', name+'_1', name+'_2'], [name+'_spat_dim']),
3595 make_node('Expand', [name+'_cand_cnt', name+'_shape_bat_spat'], [name+'_base_indices']),
3596 make_node('ScatterND', [name+'_base_indices', name+'_nms_sliced', name+'_cand_indices'],
3597 [name+'_indices']),
3598 make_node('TopK', [name+'_indices', name+'_spat_dim'], [name+'_indices_sorted', name+'__'],
3600 make_node('Gather', [name+'_cand_padded', name+'_indices_sorted'], [name+'_gather']),
3601 make_node('Reshape', [name+'_gather', name+'_shape'], [name+'0'])
3613 name, input_nodes, attrs = get_inputs(node, kwargs)
3626 tensor_value = make_tensor(name+"_scalar", dtype_t, [1], [scalar])
3628 make_node("Constant", [], [name+"_rhs"], value=tensor_value),
3629 make_node("Greater", [input_nodes[0], name+"_rhs"], [name+"_gt"]),
3630 make_node("Cast", [name+"_gt"], [name], to=dtype_t, name=name)
3641 name, input_nodes, attrs = get_inputs(node, kwargs)
3655 tensor_value = make_tensor(name+"_scalar", dtype_t, [1], [scalar])
3657 make_node("Constant", [], [name+"_rhs"], value=tensor_value),
3658 make_node("Less", [input_nodes[0], name+"_rhs"], [name+"_lt"]),
3659 make_node("Cast", [name+"_lt"], [name], to=dtype_t, name=name)
3669 name, input_nodes, attrs = get_inputs(node, kwargs)
3683 tensor_value = make_tensor(name+"_scalar", dtype_t, [1], [scalar])
3685 make_node("Constant", [], [name+"_rhs"], value=tensor_value),
3686 make_node("Equal", [input_nodes[0], name+"_rhs"], [name+"_eq"]),
3687 make_node("Cast", [name+"_eq"], [name], to=dtype_t, name=name)
3699 name, input_nodes, _ = get_inputs(node, kwargs)
3702 create_tensor([0], name+'_0', kwargs['initializer'])
3703 create_tensor([1], name+'_1', kwargs['initializer'])
3705 make_node('Shape', [input_nodes[0]], [name+'_cond_shape']),
3706 make_node('Shape', [name+'_cond_shape'], [name+'_cond_dim']),
3707 make_node('Shape', [input_nodes[1]], [name+'_x_shape']),
3708 make_node('Shape', [name+'_x_shape'], [name+'_x_dim']),
3709 make_node('Sub', [name+'_x_dim', name+'_cond_dim'], [name+'_sub']),
3710 make_node('Concat', [name+'_0', name+'_sub'], [name+'_concat'], axis=0),
3711 make_node('Pad', [name+'_cond_shape', name+'_concat', name+'_1'], [name+'_cond_new_shape']),
3712 make_node('Reshape', [input_nodes[0], name+'_cond_new_shape'], [name+'_cond']),
3713 make_node('Cast', [name+'_cond'], [name+'_bool'], to=int(TensorProto.BOOL)),
3714 make_node('Where', [name+'_bool', input_nodes[1], input_nodes[2]], [name], name=name)
3724 name, input_nodes, attrs = get_inputs(node, kwargs)
3735 create_tensor([scalar], name+'_scalar', kwargs['initializer'], dtype=dtype)
3737 make_node('Max', [input_nodes[0], name+'_scalar'], [name], name=name)
3747 name, input_nodes, attrs = get_inputs(node, kwargs)
3758 create_tensor([scalar], name+'_scalar', kwargs['initializer'], dtype=dtype)
3760 make_node('Min', [input_nodes[0], name+'_scalar'], [name], name=name)
3770 name, input_nodes, attrs = get_inputs(node, kwargs)
3788 create_tensor([0], name+'_0', kwargs["initializer"])
3789 create_tensor([2], name+'_2', kwargs["initializer"])
3790 create_tensor([4], name+'_4', kwargs["initializer"])
3791 create_tensor([2], name+'_2f', kwargs["initializer"], dtype='float32')
3792 create_tensor([clip], name+'_clip', kwargs["initializer"], dtype='float32')
3793 create_tensor([std0, std1, std2, std3], name+'_std_1d', kwargs["initializer"], dtype='float32')
3794 create_tensor([1, 4], name+'_std_shape', kwargs["initializer"])
3797 make_node("Cast", [data], [name+'_data'], to=int(onnx.TensorProto.FLOAT)),
3798 make_node("Cast", [anchors], [name+'_anchors'], to=int(onnx.TensorProto.FLOAT)),
3799 make_node('Reshape', [name+'_std_1d', name+'_std_shape'], [name+'_std']),
3800 make_node("Mul", [name+'_data', name+'_std'], [name+'_mul0_out']),
3801 make_node('Slice', [name+'_mul0_out', name+'_0', name+'_2', name+'_2'], [name+'_data_xy']),
3802 make_node('Slice', [name+'_mul0_out', name+'_2', name+'_4', name+'_2'], [name+'_data_wh']),
3807 … make_node('Slice', [name+'_anchors', name+'_0', name+'_2', name+'_2'], [name+'_slice0_out']),
3808 … make_node('Slice', [name+'_anchors', name+'_2', name+'_4', name+'_2'], [name+'_slice1_out']),
3809 make_node('Sub', [name+'_slice1_out', name+'_slice0_out'], [name+'_anchor_wh']),
3810 make_node('Div', [name+'_anchor_wh', name+'_2f'], [name+'_div0_out']),
3811 make_node("Add", [name+'_slice0_out', name+'_div0_out'], [name+'_anchor_xy']),
3815 … make_node('Slice', [name+'_anchors', name+'_0', name+'_2', name+'_2'], [name+'_anchor_xy']),
3816 … make_node('Slice', [name+'_anchors', name+'_2', name+'_4', name+'_2'], [name+'_anchor_wh']),
3820 make_node("Mul", [name+'_data_xy', name+'_anchor_wh'], [name+'_mul1_out']),
3821 make_node("Add", [name+'_mul1_out', name+'_anchor_xy'], [name+'_add0_out']),
3826 make_node("Less", [name+"_data_wh", name+"_clip"], [name+"_less0_out"]),
3827 … make_node('Where', [name+'_less0_out', name+'_data_wh', name+'_clip'], [name+'_where0_out']),
3828 make_node("Exp", [name+'_where0_out'], [name+'_exp0_out']),
3832 make_node("Exp", [name+'_data_wh'], [name+'_exp0_out']),
3836 make_node("Mul", [name+'_exp0_out', name+'_anchor_wh'], [name+'_mul2_out']),
3837 make_node('Div', [name+'_mul2_out', name+'_2f'], [name+'_div1_out']),
3838 make_node('Sub', [name+'_add0_out', name+'_div1_out'], [name+'_sub0_out']),
3839 make_node('Add', [name+'_add0_out', name+'_div1_out'], [name+'_add1_out']),
3840 make_node('Concat', [name+'_sub0_out', name+'_add1_out'], [name+'concat0_out'], axis=2),
3841 make_node("Cast", [name+'concat0_out'], [name], to=dtype_t, name=name)
3851 name, input_nodes, attrs = get_inputs(node, kwargs)
3861 make_node("GlobalAveragePool", [input_nodes[0]], [name], name=name)
3872 name, input_nodes, _ = get_inputs(node, kwargs)
3878 make_node('Sub', [input_nodes[1], input_nodes[1]], [name+'_zero']),
3879 make_node('Mod', [input_nodes[0], input_nodes[1]], [name+'_mod'], fmod=1),
3880 make_node('Less', [input_nodes[0], name+'_zero'], [name+'_mask_0']),
3881 make_node('Less', [input_nodes[1], name+'_zero'], [name+'_mask_1']),
3882 make_node('Equal', [name+'_mod', name+'_zero'], [name+'_mask_2_']),
3883 make_node('Not', [name+'_mask_2_'], [name+'_mask_2']),
3884 make_node('Xor', [name+'_mask_0', name+'_mask_1'], [name+'_mask_']),
3885 make_node('And', [name+'_mask_', name+'_mask_2'], [name+'_mask']),
3886 make_node('Where', [name+'_mask', input_nodes[1], name+'_zero'], [name+'_adjustment']),
3887 make_node('Add', [name+'_mod', name+'_adjustment'], [name+'_adjusted']),
3888 make_node('Equal', [input_nodes[1], name+'_zero'], [name+'_mask_div_0']),
3889 make_node('Where', [name+'_mask_div_0', name+'_zero', name+'_adjusted'], [name], name=name)
3900 name, input_nodes, attrs = get_inputs(node, kwargs)
3919 make_node('Shape', [rhs], [name+'_shape_rhs']),
3920 make_node('Reshape', [lhs, name+'_shape_rhs'], [name], name=name)
3924 create_tensor([0], name+'_0', kwargs["initializer"])
3926 make_node('Shape', [lhs], [name+'_lhs_shape']),
3927 make_node('Shape', [name+'_lhs_shape'], [name+'_lhs_dim']),
3928 make_node('Shape', [rhs], [name+'_rhs_shape']),
3929 make_node('Shape', [name+'_rhs_shape'], [name+'_rhs_dim']),
3933 create_tensor([lhs_begin], name+'_lhs_begin', kwargs["initializer"])
3935 create_tensor([lhs_begin], name+'_lhs_begin_neg', kwargs["initializer"])
3937 make_node('Add', [name+'_lhs_dim', name+'_lhs_begin_neg'], [name+'_lhs_begin']),
3941 create_tensor([rhs_begin], name+'_rhs_begin', kwargs["initializer"])
3943 create_tensor([rhs_begin], name+'_rhs_begin_neg', kwargs["initializer"])
3945 make_node('Add', [name+'_rhs_dim', name+'_rhs_begin_neg'], [name+'_rhs_begin']),
3950 make_node('Add', [name+'_lhs_dim', name+'_0'], [name+'_lhs_end']),
3955 create_tensor([lhs_end], name+'_lhs_end', kwargs["initializer"])
3957 create_tensor([lhs_end], name+'_lhs_end_neg', kwargs["initializer"])
3959 make_node('Add', [name+'_lhs_dim', name+'_lhs_end_neg'], [name+'_lhs_end']),
3964 make_node('Add', [name+'_rhs_dim', name+'_0'], [name+'_rhs_end']),
3969 create_tensor([rhs_end], name+'_rhs_end', kwargs["initializer"])
3971 create_tensor([rhs_end], name+'_rhs_end_neg', kwargs["initializer"])
3973 make_node('Add', [name+'_rhs_dim', name+'_rhs_end_neg'], [name+'_rhs_end']),
3977 make_node('Slice', [name+'_lhs_shape', name+'_0', name+'_lhs_begin'], [name+'_slice0_out']),
3978 … make_node('Slice', [name+'_rhs_shape', name+'_rhs_begin', name+'_rhs_end'], [name+'_slice1_out']),
3979 … make_node('Concat', [name+'_slice0_out', name+'_slice1_out'], [name+'_concat0_out'], axis=0),
3980 … make_node('Slice', [name+'_lhs_shape', name+'_lhs_end', name+'_lhs_dim'], [name+'_slice2_out']),
3981 … make_node('Concat', [name+'_concat0_out', name+'_slice2_out'], [name+'_concat1_out'], axis=0),
3982 make_node('Reshape', [lhs, name+'_concat1_out'], [name], name=name)
3993 name, input_nodes, _ = get_inputs(node, kwargs)
4002 create_tensor([0], name+'_0', kwargs['initializer'])
4003 create_tensor([1], name+'_1', kwargs['initializer'])
4004 create_tensor([8], name+'_8', kwargs['initializer'])
4007 make_node('Shape', [indices], [name+'_indices_shape']),
4008 make_node('Shape', [name+'_indices_shape'], [name+'_indices_dim']),
4009 make_node('Sub', [name+'_8', name+'_indices_dim'], [name+'_sub0_out']),
4010 make_node('Concat', [name+'_0', name+'_sub0_out'], [name+'_concat0_out'], axis=0),
4011 … make_node('Pad', [name+'_indices_shape', name+'_concat0_out', name+'_1'], [name+'_shape_8_dim']),
4012 make_node('Reshape', [indices, name+'_shape_8_dim'], [name+'_indices_8_dim']),
4013 make_node('Transpose', [name+'_indices_8_dim'], [name+'_transpose0_output'], perm=perm),
4015 make_node('Slice', [name+'_indices_shape', name+'_0', name+'_1'],
4016 [name+'_slice0_out']),
4017 make_node('Slice', [name+'_indices_shape', name+'_1', name+'_indices_dim'],
4018 [name+'_slice1_out']),
4019 … make_node('Concat', [name+'_slice1_out', name+'_slice0_out'], [name+'_concat1_out'], axis=0),
4020 … make_node('Reshape', [name+'_transpose0_output', name+'_concat1_out'], [name+'_reshape0_out']),
4022 … make_node('Cast', [name+'_reshape0_out'], [name+'_cast0_out'], to=int(onnx.TensorProto.INT64)),
4023 make_node('GatherND', [data, name+'_cast0_out'], [name], name=name)
4034 name, input_nodes, attrs = get_inputs(node, kwargs)
4047 create_tensor([], name+'_roi', kwargs['initializer'], dtype='float32')
4048 create_tensor([1, 1, scale, scale], name+'_scales', kwargs['initializer'],
4051 make_node('Resize', [input_nodes[0], name+'_roi', name+'_scales'], [name], mode='nearest',
4063 name, input_nodes, attrs = get_inputs(node, kwargs)
4077 create_tensor(indices, name+'_ind', kwargs['initializer'])
4078 create_tensor(indices[::-1], name+'_ind_rev', kwargs['initializer'])
4079 create_tensor(vals, name+'_vals', kwargs['initializer'])
4080 create_tensor(perm, name+'_perm', kwargs['initializer'])
4081 create_tensor([0], name+'_0', kwargs['initializer'])
4082 create_tensor([1], name+'_1', kwargs['initializer'])
4083 create_tensor([8], name+'_8', kwargs['initializer'])
4086 make_node('Shape', [input_nodes[0]], [name+'_shape']),
4087 make_node('Shape', [name+'_shape'], [name+'_dim']),
4088 make_node('Sub', [name+'_8', name+'_dim'], [name+'_sub']),
4089 make_node('ScatterND', [name+'_perm', name+'_ind', name+'_vals'],
4090 [name+'_perm_new']),
4091 make_node('GatherND', [name+'_shape', name+'_ind'], [name+'_gather']),
4092 make_node('ScatterND', [name+'_shape', name+'_ind_rev', name+'_gather'],
4093 [name+'_shape_new']),
4094 make_node('Concat', [name+'_0', name+'_sub'], [name+'_pad'], axis=0),
4095 make_node('Pad', [name+'_shape', name+'_pad', name+'_1'], [name+'_shape_padded']),
4096 make_node('Reshape', [input_nodes[0], name+'_shape_padded'], [name+'_data_padded']),
4097 make_node('Transpose', [name+'_data_padded'], [name+'_trans'], perm=perm),
4098 make_node('Reshape', [name+'_trans', name+'_shape_new'], [name])
4110 name, input_nodes, attrs = get_inputs(node, kwargs)
4113 zero = make_tensor(name+'_zero', TensorProto.INT64, [1], [0])
4118 make_node('Shape', [input_nodes[1]], [name+'_shape_1']),
4119 make_node('Shape', [name+'_shape_1'], [name+'_dim_1']),
4120 make_node('ConstantOfShape', [name+'_dim_1'], [name+'_starts'], value=zero),
4121 make_node('Slice', [input_nodes[0], name+'_starts', name+'_shape_1'], [name])
4125 create_tensor([0], name+'_0', kwargs['initializer'])
4126 create_tensor(axes, name+'_axes_', kwargs['initializer'])
4128 make_node('Shape', [input_nodes[0]], [name+'_shape_0']),
4129 make_node('Shape', [input_nodes[1]], [name+'_shape_1']),
4130 make_node('Shape', [name+'_shape_0'], [name+'_dim_0']),
4131 make_node('Less', [name+'_axes_', name+'_0'], [name+'_less']),
4132 make_node('Cast', [name+'_less'], [name+'_mask'], to=int(TensorProto.INT64)),
4133 make_node('Mul', [name+'_mask', name+'_dim_0'], [name+'_mul']),
4134 make_node('Add', [name+'_axes_', name+'_mul'], [name+'_axes']),
4135 make_node('ConstantOfShape', [name+'_dim_0'], [name+'_starts'], value=zero),
4136 make_node('GatherND', [name+'_shape_1', name+'_axes'], [name+'_gather']),
4137 make_node('ScatterND', [name+'_shape_0', name+'_axes', name+'_gather'],
4138 [name+'_ends']),
4139 make_node('Slice', [input_nodes[0], name+'_starts', name+'_ends'], [name])
4150 name, input_nodes, attrs = get_inputs(node, kwargs)
4159 make_node('Shape', [rhs], [name+'_rhs_shape']),
4160 make_node('Expand', [lhs, name+'_rhs_shape'], [name], name=name)
4167 create_tensor([0], name+'_0', kwargs['initializer'])
4168 create_tensor(lhs_axes, name+'_lhs_axes', kwargs['initializer'])
4169 create_tensor(rhs_axes, name+'_rhs_axes', kwargs['initializer'])
4172 make_node('Shape', [lhs], [name+'_lhs_shape']),
4173 make_node('Shape', [rhs], [name+'_rhs_shape']),
4174 make_node('Shape', [name+'_lhs_shape'], [name+'_lhs_dim']),
4175 make_node('Less', [name+'_lhs_axes', name+'_0'], [name+'_less']),
4176 make_node('Cast', [name+'_less'], [name+'_mask'], to=int(onnx.TensorProto.INT64)),
4177 make_node('Mul', [name+'_mask', name+'_lhs_dim'], [name+'_mul']),
4178 make_node('Add', [name+'_lhs_axes', name+'_mul'], [name+'_lhs_axes_positive']),
4179 make_node('GatherND', [name+'_rhs_shape', name+'_rhs_axes'], [name+'_gather']),
4180 make_node('ScatterND', [name+'_lhs_shape', name+'_lhs_axes_positive', name+'_gather'],
4181 [name+'_scatter']),
4182 make_node('Expand', [lhs, name+'_scatter'], [name], name=name)
4194 name, input_nodes, attrs = get_inputs(node, kwargs)
4209 create_tensor([0], name+'_0', kwargs['initializer'])
4210 create_tensor([0], name+'_0_s', kwargs['initializer'], dtype='float32')
4211 create_tensor([1], name+'_1', kwargs['initializer'])
4212 create_tensor([5], name+'_5', kwargs['initializer'])
4215 make_node('Slice', [input_nodes[1], name+'_1', name+'_5', name+'_1'], [name+'_rois']),
4216 make_node('Slice', [input_nodes[1], name+'_0', name+'_1', name+'_1'], [name+'_inds___']),
4217 make_node('Squeeze', [name+'_inds___'], [name+'_inds__'], axes=[1]),
4218 make_node('Relu', [name+'_inds__'], [name+'_inds_']),
4219 make_node('Cast', [name+'_inds_'], [name+'_inds'], to=int(TensorProto.INT64)),
4220 make_node('RoiAlign', [input_nodes[0], name+'_rois', name+'_inds'], [name+'_roi'],
4223 make_node('Unsqueeze', [name+'_inds___'], [name+'_unsq'], axes=(2, 3)),
4224 make_node('Less', [name+'_unsq', name+'_0_s'], [name+'_less']),
4225 make_node('Where', [name+'_less', name+'_0_s', name+'_roi'], [name])
4236 name, input_nodes, attrs = get_inputs(node, kwargs)
4246 make_node('MatMul', [lhs, rhs], [name]),
4250 create_tensor([-2], name+'_-2', kwargs['initializer'])
4251 create_tensor([-1], name+'_-1', kwargs['initializer'])
4252 create_tensor([0], name+'_0', kwargs['initializer'])
4253 create_tensor([100], name+'_100', kwargs['initializer'])
4258 make_node('Shape', [lhs], [name+'_lhs_shape']),
4259 make_node('Shape', [name+'_lhs_shape'], [name+'_lhs_dim']),
4260 make_node('Slice', [name+'_lhs_shape', name+'_0', name+'_-2'],
4261 [name+'_lhs_slice0']),
4262 make_node('Slice', [name+'_lhs_shape', name+'_-2', name+'_100'],
4263 [name+'_lhs_slice1']),
4264 make_node('Concat', [name+'_-1', name+'_lhs_slice1'], [name+'_lhs_concat1'], axis=0),
4265 make_node('Reshape', [lhs, name+'_lhs_concat1'], [name+'_lhs_3d']),
4266 make_node('Transpose', [name+'_lhs_3d'], [name+'_lhs_3d_transpose'], perm=perm),
4267 make_node('Shape', [name+'_lhs_3d_transpose'], [name+'_lhs_shape_3d']),
4268 make_node('Slice', [name+'_lhs_shape_3d', name+'_-2', name+'_100'],
4269 [name+'_lhs_slice2']),
4270 … make_node('Concat', [name+'_lhs_slice0', name+'_lhs_slice2'], [name+'_lhs_concat2'], axis=0),
4271 make_node('Reshape', [name+'_lhs_3d_transpose', name+'_lhs_concat2'], [name+'_lhs']),
4272 make_node('MatMul', [name+'_lhs', rhs], [name]),
4277 make_node('Shape', [rhs], [name+'_rhs_shape']),
4278 make_node('Shape', [name+'_rhs_shape'], [name+'_rhs_dim']),
4279 make_node('Slice', [name+'_rhs_shape', name+'_0', name+'_-2'],
4280 [name+'_rhs_slice0']),
4281 make_node('Slice', [name+'_rhs_shape', name+'_-2', name+'_100'],
4282 [name+'_rhs_slice1']),
4283 make_node('Concat', [name+'_-1', name+'_rhs_slice1'], [name+'_rhs_concat1'], axis=0),
4284 make_node('Reshape', [rhs, name+'_rhs_concat1'], [name+'_rhs_3d']),
4285 make_node('Transpose', [name+'_rhs_3d'], [name+'_rhs_3d_transpose'], perm=perm),
4286 make_node('Shape', [name+'_rhs_3d_transpose'], [name+'_rhs_shape_3d']),
4287 make_node('Slice', [name+'_rhs_shape_3d', name+'_-2', name+'_100'],
4288 [name+'_rhs_slice2']),
4289 … make_node('Concat', [name+'_rhs_slice0', name+'_rhs_slice2'], [name+'_rhs_concat2'], axis=0),
4290 make_node('Reshape', [name+'_rhs_3d_transpose', name+'_rhs_concat2'], [name+'_rhs']),
4291 make_node('MatMul', [lhs, name+'_rhs'], [name]),
4296 make_node('Shape', [lhs], [name+'_lhs_shape']),
4297 make_node('Shape', [name+'_lhs_shape'], [name+'_lhs_dim']),
4298 make_node('Slice', [name+'_lhs_shape', name+'_0', name+'_-2'],
4299 [name+'_lhs_slice0']),
4300 make_node('Slice', [name+'_lhs_shape', name+'_-2', name+'_100'],
4301 [name+'_lhs_slice1']),
4302 make_node('Concat', [name+'_-1', name+'_lhs_slice1'], [name+'_lhs_concat1'], axis=0),
4303 make_node('Reshape', [lhs, name+'_lhs_concat1'], [name+'_lhs_3d']),
4304 make_node('Transpose', [name+'_lhs_3d'], [name+'_lhs_3d_transpose'], perm=perm),
4305 make_node('Shape', [name+'_lhs_3d_transpose'], [name+'_lhs_shape_3d']),
4306 make_node('Slice', [name+'_lhs_shape_3d', name+'_-2', name+'_100'],
4307 [name+'_lhs_slice2']),
4308 … make_node('Concat', [name+'_lhs_slice0', name+'_lhs_slice2'], [name+'_lhs_concat2'], axis=0),
4309 make_node('Reshape', [name+'_lhs_3d_transpose', name+'_lhs_concat2'], [name+'_lhs']),
4311 make_node('Shape', [rhs], [name+'_rhs_shape']),
4312 make_node('Shape', [name+'_rhs_shape'], [name+'_rhs_dim']),
4313 make_node('Slice', [name+'_rhs_shape', name+'_0', name+'_-2'],
4314 [name+'_rhs_slice0']),
4315 make_node('Slice', [name+'_rhs_shape', name+'_-2', name+'_100'],
4316 [name+'_rhs_slice1']),
4317 make_node('Concat', [name+'_-1', name+'_rhs_slice1'], [name+'_rhs_concat1'], axis=0),
4318 make_node('Reshape', [rhs, name+'_rhs_concat1'], [name+'_rhs_3d']),
4319 make_node('Transpose', [name+'_rhs_3d'], [name+'_rhs_3d_transpose'], perm=perm),
4320 make_node('Shape', [name+'_rhs_3d_transpose'], [name+'_rhs_shape_3d']),
4321 make_node('Slice', [name+'_rhs_shape_3d', name+'_-2', name+'_100'],
4322 [name+'_rhs_slice2']),
4323 … make_node('Concat', [name+'_rhs_slice0', name+'_rhs_slice2'], [name+'_rhs_concat2'], axis=0),
4324 make_node('Reshape', [name+'_rhs_3d_transpose', name+'_rhs_concat2'], [name+'_rhs']),
4325 make_node('MatMul', [name+'_lhs', name+'_rhs'], [name]),
4336 name, input_nodes, _ = get_inputs(node, kwargs)
4345 ln2v = make_tensor(name+'_ln2', dtype_t, [1], ln2)
4348 make_node('Log', [input_nodes[0]], [name+'_log']),
4349 make_node('Constant', [], [name+'_ln2'], value=ln2v),
4350 make_node('Div', [name+'_log', name+'_ln2'], [name], name=name)
4361 name, input_nodes, attrs = get_inputs(node, kwargs)
4372 create_tensor([axis], name+'_axis', kwargs['initializer'])
4374 make_node('Shape', [input_nodes[0]], [name+'_shape']),
4375 make_node('Gather', [name+'_shape', name+'_axis'], [name+'_k'])
4379 make_node('TopK', [input_nodes[0], name+'_k'], [name+'_', name], axis=axis,
4384 make_node('TopK', [input_nodes[0], name+'_k'], [name+'_', name+'_temp'], axis=axis,
4386 make_node('Cast', [name+'_temp'], [name],
4399 name, input_nodes, attrs = get_inputs(node, kwargs)
4406 … create_tensor([off_value, on_value], name+'_values', kwargs['initializer'], dtype=np.dtype(dtype))
4407 create_tensor([depth], name+'_depth', kwargs['initializer'])
4409 make_node('Cast', [input_nodes[0]], [name+'_cast'], to=int(TensorProto.INT64)),
4410 make_node('OneHot', [name+'_cast', name+'_depth', name+'_values'], [name], name=name)
4421 name, input_nodes, attrs = get_inputs(node, kwargs)
4431 make_node('RandomUniformLike', [input_nodes[0]], [name], name=name,
4444 name, input_nodes, attrs = get_inputs(node, kwargs)
4453 make_node('Shape', [input_nodes[0]], [name+'_shape']),
4454 make_node('Split', [name+'_shape'], [name+'_dim0', name+'_dim1', name+'_dim2']),
4455 make_node('Expand', [name+'_dim0', name+'_dim1'], [name+'_seq_len']),
4456 make_node('ReverseSequence', [input_nodes[0], name+'_seq_len'], [name],
4461 make_node('Cast', [input_nodes[1]], [name+'_seq_len'], to=int(TensorProto.INT64)),
4462 make_node('ReverseSequence', [input_nodes[0], name+'_seq_len'], [name],
4477 name, input_nodes, attrs = get_inputs(node, kwargs)
4508 create_tensor([0], name+'_0', kwargs['initializer'])
4509 create_tensor([1], name+'_1', kwargs['initializer'])
4510 create_tensor([state_size], name+'_state_size', kwargs['initializer'])
4511 create_tensor([direction], name+'_direction', kwargs['initializer'])
4513 tensor_1 = make_tensor(name+'_1_f', onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[dtype], [1], [1])
4516 make_node('Shape', [data], [name+'_data_shape']),
4517 …make_node('Split', [name+'_data_shape'], [name+'_seq_length', name+'_batch_size', name+'_input_siz…
4518 …make_node('Concat', [name+'_direction', name+'_batch_size', name+'_state_size'], [name+'_concat'],…
4519 make_node('ConstantOfShape', [name+'_concat'], [name+'_COS'], value=tensor_1),
4520 make_node('Mul', [input_nodes[2], name+'_COS'], [name+'initial_h']),
4526 make_node('Mul', [input_nodes[3], name+'_COS'], [name+'initial_c']),
4532 create_tensor([8*state_size], name+'_8*state_size', kwargs['initializer'])
4533 create_tensor([4*state_size*state_size], name+'_4*state_size^2', kwargs['initializer'])
4534 create_tensor([1, 4*state_size, state_size], name+'_WR_shape', kwargs['initializer'])
4535 create_tensor([1, 8*state_size], name+'_B_shape', kwargs['initializer'])
4536 create_tensor([4*4*state_size*state_size], name+'_WR_offset', kwargs['initializer'])
4541 make_node('Slice', [param, name+'_0', name+'_4*state_size^2'], [name+'_W0_1d']),
4542 … make_node('Split', [name+'_W0_1d'], [name+'_W00', name+'_W01', name+'_W02', name+'_W03']),
4543 … make_node('Concat', [name+'_W00', name+'_W03', name+'_W01', name+'_W02'], [name+'_W0_'], axis=0),
4544 make_node('Reshape', [name+'_W0_', name+'_WR_shape'], [name+'_W0']),
4546 … make_node('Add', [name+'_4*state_size^2', name+'_4*state_size^2'], [name+'_R0_offset']),
4547 … make_node('Slice', [param, name+'_4*state_size^2', name+'_R0_offset'], [name+'_R0_1d']),
4548 … make_node('Split', [name+'_R0_1d'], [name+'_R00', name+'_R01', name+'_R02', name+'_R03']),
4549 … make_node('Concat', [name+'_R00', name+'_R03', name+'_R01', name+'_R02'], [name+'_R0_'], axis=0),
4550 make_node('Reshape', [name+'_R0_', name+'_WR_shape'], [name+'_R0']),
4552 make_node('Add', [name+'_WR_offset', name+'_8*state_size'], [name+'_B0_offset']),
4553 make_node('Slice', [param, name+'_WR_offset', name+'_B0_offset'], [name+'_B0_1d']),
4554 … make_node('Split', [name+'_B0_1d'], [name+'_B00', name+'_B01', name+'_B02', name+'_B03',
4555name+'_B04', name+'_B05', name+'_B06', name+'_B07']),
4556 make_node('Concat', [name+'_B00', name+'_B03', name+'_B01', name+'_B02',
4557name+'_B04', name+'_B07', name+'_B05', name+'_B06'], [name+'_B0_'], axis=0),
4558 make_node('Reshape', [name+'_B0_', name+'_B_shape'], [name+'_B0']),
4560 … make_node('Split', [name+'initial_h'], [name+'_initial_h0', name+'_initial_h1'], axis=0),
4561 … make_node('Split', [name+'initial_c'], [name+'_initial_c0', name+'_initial_c1'], axis=0),
4563 make_node('Tile', [name+'_seq_length', name+'_batch_size'], [name+'_seq_len_']),
4564 make_node("Cast", [name+'_seq_len_'], [name+"_seq_len"], to=int(TensorProto.INT32)),
4566 make_node('LSTM', [data, name+'_W0', name+'_R0', name+'_B0', name+'_seq_len',
4567 name+'_initial_h0', name+'_initial_c0'],
4568 … [name+'_lstm0_out_', name+'_lstm0_h', name+'_lstm0_c'], hidden_size=state_size),
4569 make_node('Squeeze', [name+'_lstm0_out_'], [name+'_lstm0_out'], axes=[1]),
4573 make_node('Add', [name+'_R0_offset', name+'_4*state_size^2'], [name+'_W1_offset']),
4574 make_node('Slice', [param, name+'_R0_offset', name+'_W1_offset'], [name+'_W1_1d']),
4575 … make_node('Split', [name+'_W1_1d'], [name+'_W10', name+'_W11', name+'_W12', name+'_W13']),
4576 … make_node('Concat', [name+'_W10', name+'_W13', name+'_W11', name+'_W12'], [name+'_W1_'], axis=0),
4577 make_node('Reshape', [name+'_W1_', name+'_WR_shape'], [name+'_W1']),
4579 make_node('Slice', [param, name+'_W1_offset', name+'_WR_offset'], [name+'_R1_1d']),
4580 … make_node('Split', [name+'_R1_1d'], [name+'_R10', name+'_R11', name+'_R12', name+'_R13']),
4581 … make_node('Concat', [name+'_R10', name+'_R13', name+'_R11', name+'_R12'], [name+'_R1_'], axis=0),
4582 make_node('Reshape', [name+'_R1_', name+'_WR_shape'], [name+'_R1']),
4584 make_node('Add', [name+'_B0_offset', name+'_8*state_size'], [name+'_B1_offset']),
4585 make_node('Slice', [param, name+'_B0_offset', name+'_B1_offset'], [name+'_B1_1d']),
4586 … make_node('Split', [name+'_B1_1d'], [name+'_B10', name+'_B11', name+'_B12', name+'_B13',
4587name+'_B14', name+'_B15', name+'_B16', name+'_B17']),
4588 make_node('Concat', [name+'_B10', name+'_B13', name+'_B11', name+'_B12',
4589name+'_B14', name+'_B17', name+'_B15', name+'_B16'], [name+'_B1_'], axis=0),
4590 make_node('Reshape', [name+'_B1_', name+'_B_shape'], [name+'_B1']),
4592 … make_node('LSTM', [name+'_lstm0_out', name+'_W1', name+'_R1', name+'_B1', name+'_seq_len',
4593 name+'_initial_h1', name+'_initial_c1'],
4594 … [name+'_lstm1_out_', name+'_lstm1_h', name+'_lstm1_c'], hidden_size=state_size),
4595 make_node('Squeeze', [name+'_lstm1_out_'], [name], axes=[1]),
4596 make_node('Concat', [name+'_lstm0_h', name+'_lstm1_h'], [name+'1'], axis=0),
4597 make_node('Concat', [name+'_lstm0_c', name+'_lstm1_c'], [name+'2'], axis=0),
4601 create_tensor([4*state_size], name+'_4*state_size', kwargs['initializer'])
4602 create_tensor([8*state_size], name+'_8*state_size', kwargs['initializer'])
4603 … create_tensor([4*state_size*state_size], name+'_4*state_size^2', kwargs['initializer'])
4604 create_tensor([1, 4*state_size, state_size], name+'_R_shape', kwargs['initializer'])
4605 create_tensor([1, 8*state_size], name+'_B_shape', kwargs['initializer'])
4609 make_node('Mul', [name+'_4*state_size', name+'_input_size'], [name+'_mul0']),
4610 make_node('Slice', [param, name+'_0', name+'_mul0'], [name+'_W_1d']),
4611 … make_node('Split', [name+'_W_1d'], [name+'_W0', name+'_W1', name+'_W2', name+'_W3']),
4612 … make_node('Concat', [name+'_W0', name+'_W3', name+'_W1', name+'_W2'], [name+'_W_'], axis=0),
4613 make_node('Concat', [name+'_1', name+'_4*state_size', name+'_input_size'],
4614 [name+'_W_shape'], axis=0),
4615 make_node('Reshape', [name+'_W_', name+'_W_shape'], [name+'_W']),
4617 make_node('Add', [name+'_mul0', name+'_4*state_size^2'], [name+'_add0']),
4618 make_node('Slice', [param, name+'_mul0', name+'_add0'], [name+'_R_1d']),
4619 … make_node('Split', [name+'_R_1d'], [name+'_R0', name+'_R1', name+'_R2', name+'_R3']),
4620 … make_node('Concat', [name+'_R0', name+'_R3', name+'_R1', name+'_R2'], [name+'_R_'], axis=0),
4621 make_node('Reshape', [name+'_R_', name+'_R_shape'], [name+'_R']),
4623 make_node('Add', [name+'_add0', name+'_8*state_size'], [name+'_add1']),
4624 make_node('Slice', [param, name+'_add0', name+'_add1'], [name+'_B_1d']),
4625 … make_node('Split', [name+'_B_1d'], [name+'_B0', name+'_B1', name+'_B2', name+'_B3',
4626name+'_B4', name+'_B5', name+'_B6', name+'_B7']),
4627 make_node('Concat', [name+'_B0', name+'_B3', name+'_B1', name+'_B2',
4628name+'_B4', name+'_B7', name+'_B5', name+'_B6'], [name+'_B_'], axis=0),
4629 make_node('Reshape', [name+'_B_', name+'_B_shape'], [name+'_B']),
4631 make_node('Tile', [name+'_seq_length', name+'_batch_size'], [name+'_seq_len_']),
4632 … make_node("Cast", [name+'_seq_len_'], [name+"_seq_len"], to=int(TensorProto.INT32)),
4634 make_node('LSTM', [data, name+'_W', name+'_R', name+'_B',
4635 name+'_seq_len', name+'initial_h', name+'initial_c'],
4636 [name+'0_', name+'1', name+'2'], hidden_size=state_size),
4637 make_node('Squeeze', [name+'0_'], [name], axes=[1]),
4640 create_tensor([-1], name+'_-1', kwargs['initializer'])
4641 create_tensor([4*state_size], name+'_4*state_size', kwargs['initializer'])
4642 create_tensor([8*state_size], name+'_8*state_size', kwargs['initializer'])
4643 … create_tensor([4*state_size*state_size], name+'_4*state_size^2', kwargs['initializer'])
4644 create_tensor([1, 4*state_size, state_size], name+'_R_shape', kwargs['initializer'])
4645 create_tensor([1, 8*state_size], name+'_B_shape', kwargs['initializer'])
4649 make_node('Mul', [name+'_4*state_size', name+'_input_size'], [name+'_mul0']),
4650 make_node('Slice', [param, name+'_0', name+'_mul0'], [name+'_W_1d']),
4651 … make_node('Split', [name+'_W_1d'], [name+'_W0', name+'_W1', name+'_W2', name+'_W3']),
4652 make_node('Concat', [name+'_W0', name+'_W3', name+'_W1', name+'_W2'],
4653 [name+'_W_'], axis=0),
4654 make_node('Concat', [name+'_1', name+'_4*state_size', name+'_input_size'],
4655 [name+'_W_shape'], axis=0),
4656 make_node('Reshape', [name+'_W_', name+'_W_shape'], [name+'_W_fwd']),
4658 make_node('Add', [name+'_mul0', name+'_4*state_size^2'], [name+'_add0']),
4659 make_node('Slice', [param, name+'_mul0', name+'_add0'], [name+'_R_1d']),
4660 … make_node('Split', [name+'_R_1d'], [name+'_R0', name+'_R1', name+'_R2', name+'_R3']),
4661 … make_node('Concat', [name+'_R0', name+'_R3', name+'_R1', name+'_R2'], [name+'_R_'], axis=0),
4662 make_node('Reshape', [name+'_R_', name+'_R_shape'], [name+'_R_fwd']),
4664 make_node('Add', [name+'_add0', name+'_mul0'], [name+'_add1']),
4665 make_node('Slice', [param, name+'_add0', name+'_add1'], [name+'_W_1d_bwd']),
4666 make_node('Split', [name+'_W_1d_bwd'],
4667 [name+'_W0_bwd', name+'_W1_bwd', name+'_W2_bwd', name+'_W3_bwd']),
4668 … make_node('Concat', [name+'_W0_bwd', name+'_W3_bwd', name+'_W1_bwd', name+'_W2_bwd'],
4669 [name+'_W_bwd_'], axis=0),
4670 make_node('Reshape', [name+'_W_bwd_', name+'_W_shape'], [name+'_W_bwd']),
4672 make_node('Add', [name+'_add1', name+'_4*state_size^2'], [name+'_add2']),
4673 make_node('Slice', [param, name+'_add1', name+'_add2'], [name+'_R_1d_bwd']),
4674 make_node('Split', [name+'_R_1d_bwd'],
4675 [name+'_R0_bwd', name+'_R1_bwd', name+'_R2_bwd', name+'_R3_bwd']),
4676 … make_node('Concat', [name+'_R0_bwd', name+'_R3_bwd', name+'_R1_bwd', name+'_R2_bwd'],
4677 [name+'_R_bwd_'], axis=0),
4678 make_node('Reshape', [name+'_R_bwd_', name+'_R_shape'], [name+'_R_bwd']),
4680 make_node('Add', [name+'_add2', name+'_8*state_size'], [name+'_add3']),
4681 make_node('Slice', [param, name+'_add2', name+'_add3'], [name+'_B_1d']),
4682 … make_node('Split', [name+'_B_1d'], [name+'_B0', name+'_B1', name+'_B2', name+'_B3',
4683name+'_B4', name+'_B5', name+'_B6', name+'_B7']),
4684 make_node('Concat', [name+'_B0', name+'_B3', name+'_B1', name+'_B2',
4685name+'_B4', name+'_B7', name+'_B5', name+'_B6'], [name+'_B_'], axis=0),
4686 make_node('Reshape', [name+'_B_', name+'_B_shape'], [name+'_B_fwd']),
4688 make_node('Add', [name+'_add3', name+'_8*state_size'], [name+'_add4']),
4689 make_node('Slice', [param, name+'_add3', name+'_add4'], [name+'_B_1d_bwd']),
4690 make_node('Split', [name+'_B_1d_bwd'],
4691 [name+'_B0_bwd', name+'_B1_bwd', name+'_B2_bwd', name+'_B3_bwd',
4692 name+'_B4_bwd', name+'_B5_bwd', name+'_B6_bwd', name+'_B7_bwd']),
4693 … make_node('Concat', [name+'_B0_bwd', name+'_B3_bwd', name+'_B1_bwd', name+'_B2_bwd',
4694name+'_B4_bwd', name+'_B7_bwd', name+'_B5_bwd', name+'_B6_bwd'],
4695 [name+'_B_bwd_'], axis=0),
4696 make_node('Reshape', [name+'_B_bwd_', name+'_B_shape'], [name+'_B_bwd']),
4698 make_node('Tile', [name+'_seq_length', name+'_batch_size'], [name+'_seq_len_']),
4699 … make_node("Cast", [name+'_seq_len_'], [name+"_seq_len"], to=int(TensorProto.INT32)),
4701 make_node('Concat', [name+'_W_fwd', name+'_W_bwd'], [name+'_W'], axis=0),
4702 make_node('Concat', [name+'_R_fwd', name+'_R_bwd'], [name+'_R'], axis=0),
4703 make_node('Concat', [name+'_B_fwd', name+'_B_bwd'], [name+'_B'], axis=0),
4704 make_node('LSTM', [data, name+'_W', name+'_R', name+'_B',
4705 name+'_seq_len', name+'initial_h', name+'initial_c'],
4706 … [name+'0_', name+'1', name+'2'], hidden_size=state_size, direction='bidirectional'),
4707 make_node('Transpose', [name+'0_'], [name+'0_t'], perm=[0, 2, 1, 3]),
4708 make_node('Concat', [name+'_seq_length', name+'_batch_size', name+'_-1'],
4709 [name+'_shape_out'], axis=0),
4710 make_node('Reshape', [name+'0_t', name+'_shape_out'], [name]),
4717 create_tensor([6*state_size], name+'_6*state_size', kwargs['initializer'])
4718 create_tensor([3*state_size*state_size], name+'_3*state_size^2', kwargs['initializer'])
4719 create_tensor([1, 3*state_size, state_size], name+'_WR_shape', kwargs['initializer'])
4720 create_tensor([1, 6*state_size], name+'_B_shape', kwargs['initializer'])
4721 create_tensor([4*3*state_size*state_size], name+'_WR_offset', kwargs['initializer'])
4726 make_node('Slice', [param, name+'_0', name+'_3*state_size^2'], [name+'_W0_1d']),
4727 make_node('Split', [name+'_W0_1d'], [name+'_W00', name+'_W01', name+'_W02']),
4728 make_node('Concat', [name+'_W01', name+'_W00', name+'_W02'], [name+'_W0_'], axis=0),
4729 make_node('Reshape', [name+'_W0_', name+'_WR_shape'], [name+'_W0']),
4731 … make_node('Add', [name+'_3*state_size^2', name+'_3*state_size^2'], [name+'_R0_offset']),
4732 … make_node('Slice', [param, name+'_3*state_size^2', name+'_R0_offset'], [name+'_R0_1d']),
4733 make_node('Split', [name+'_R0_1d'], [name+'_R00', name+'_R01', name+'_R02']),
4734 make_node('Concat', [name+'_R01', name+'_R00', name+'_R02'], [name+'_R0_'], axis=0),
4735 make_node('Reshape', [name+'_R0_', name+'_WR_shape'], [name+'_R0']),
4737 make_node('Add', [name+'_WR_offset', name+'_6*state_size'], [name+'_B0_offset']),
4738 make_node('Slice', [param, name+'_WR_offset', name+'_B0_offset'], [name+'_B0_1d']),
4739 make_node('Split', [name+'_B0_1d'], [name+'_B00', name+'_B01', name+'_B02',
4740 name+'_B03', name+'_B04', name+'_B05']),
4741 make_node('Concat', [name+'_B01', name+'_B00', name+'_B02',
4742 name+'_B04', name+'_B03', name+'_B05'], [name+'_B0_'], axis=0),
4743 make_node('Reshape', [name+'_B0_', name+'_B_shape'], [name+'_B0']),
4745 … make_node('Split', [name+'initial_h'], [name+'_initial_h0', name+'_initial_h1'], axis=0),
4747 make_node('Tile', [name+'_seq_length', name+'_batch_size'], [name+'_seq_len_']),
4748 make_node("Cast", [name+'_seq_len_'], [name+"_seq_len"], to=int(TensorProto.INT32)),
4750 make_node('GRU', [data, name+'_W0', name+'_R0', name+'_B0', name+'_seq_len',
4751 name+'_initial_h0'],
4752 … [name+'_gru0_out_', name+'_gru0_h'], hidden_size=state_size, linear_before_reset=1),
4753 make_node('Squeeze', [name+'_gru0_out_'], [name+'_gru0_out'], axes=[1]),
4757 make_node('Add', [name+'_R0_offset', name+'_3*state_size^2'], [name+'_W1_offset']),
4758 make_node('Slice', [param, name+'_R0_offset', name+'_W1_offset'], [name+'_W1_1d']),
4759 make_node('Split', [name+'_W1_1d'], [name+'_W10', name+'_W11', name+'_W12']),
4760 make_node('Concat', [name+'_W11', name+'_W10', name+'_W12'], [name+'_W1_'], axis=0),
4761 make_node('Reshape', [name+'_W1_', name+'_WR_shape'], [name+'_W1']),
4763 make_node('Slice', [param, name+'_W1_offset', name+'_WR_offset'], [name+'_R1_1d']),
4764 make_node('Split', [name+'_R1_1d'], [name+'_R10', name+'_R11', name+'_R12']),
4765 make_node('Concat', [name+'_R11', name+'_R10', name+'_R12'], [name+'_R1_'], axis=0),
4766 make_node('Reshape', [name+'_R1_', name+'_WR_shape'], [name+'_R1']),
4768 make_node('Add', [name+'_B0_offset', name+'_6*state_size'], [name+'_B1_offset']),
4769 make_node('Slice', [param, name+'_B0_offset', name+'_B1_offset'], [name+'_B1_1d']),
4770 make_node('Split', [name+'_B1_1d'], [name+'_B10', name+'_B11', name+'_B12',
4771 name+'_B13', name+'_B14', name+'_B15']),
4772 make_node('Concat', [name+'_B11', name+'_B10', name+'_B12',
4773 name+'_B14', name+'_B13', name+'_B15'], [name+'_B1_'], axis=0),
4774 make_node('Reshape', [name+'_B1_', name+'_B_shape'], [name+'_B1']),
4776 … make_node('GRU', [name+'_gru0_out', name+'_W1', name+'_R1', name+'_B1', name+'_seq_len',
4777 name+'_initial_h1'],
4778 … [name+'_gru1_out_', name+'_gru1_h'], hidden_size=state_size, linear_before_reset=1),
4779 make_node('Squeeze', [name+'_gru1_out_'], [name], axes=[1]),
4780 make_node('Concat', [name+'_gru0_h', name+'_gru1_h'], [name+'1'], axis=0)
4784 create_tensor([3*state_size], name+'_3*state_size', kwargs['initializer'])
4785 create_tensor([6*state_size], name+'_6*state_size', kwargs['initializer'])
4786 create_tensor([3*state_size*state_size], name+'_3*state_size^2', kwargs['initializer'])
4787 create_tensor([1, 3*state_size, state_size], name+'_R_shape', kwargs['initializer'])
4788 create_tensor([1, 6*state_size], name+'_B_shape', kwargs['initializer'])
4792 make_node('Mul', [name+'_3*state_size', name+'_input_size'], [name+'_mul0']),
4793 make_node('Slice', [param, name+'_0', name+'_mul0'], [name+'_W_1d']),
4794 make_node('Split', [name+'_W_1d'], [name+'_W0', name+'_W1', name+'_W2']),
4795 make_node('Concat', [name+'_W1', name+'_W0', name+'_W2'], [name+'_W_'], axis=0),
4796 …make_node('Concat', [name+'_1', name+'_3*state_size', name+'_input_size'], [name+'_W_shape'], axis…
4797 make_node('Reshape', [name+'_W_', name+'_W_shape'], [name+'_W']),
4799 make_node('Add', [name+'_mul0', name+'_3*state_size^2'], [name+'_add0']),
4800 make_node('Slice', [param, name+'_mul0', name+'_add0'], [name+'_R_1d']),
4801 make_node('Split', [name+'_R_1d'], [name+'_R0', name+'_R1', name+'_R2']),
4802 make_node('Concat', [name+'_R1', name+'_R0', name+'_R2'], [name+'_R_'], axis=0),
4803 make_node('Reshape', [name+'_R_', name+'_R_shape'], [name+'_R']),
4805 make_node('Add', [name+'_add0', name+'_6*state_size'], [name+'_add1']),
4806 make_node('Slice', [param, name+'_add0', name+'_add1'], [name+'_B_1d']),
4807 make_node('Split', [name+'_B_1d'], [name+'_B0', name+'_B1', name+'_B2',
4808 name+'_B3', name+'_B4', name+'_B5']),
4809 make_node('Concat', [name+'_B1', name+'_B0', name+'_B2',
4810 name+'_B4', name+'_B3', name+'_B5'], [name+'_B_'], axis=0),
4811 make_node('Reshape', [name+'_B_', name+'_B_shape'], [name+'_B']),
4813 make_node('Tile', [name+'_seq_length', name+'_batch_size'], [name+'_seq_len_']),
4814 make_node("Cast", [name+'_seq_len_'], [name+"_seq_len"], to=int(TensorProto.INT32)),
4816 … make_node('GRU', [data, name+'_W', name+'_R', name+'_B', name+'_seq_len', name+'initial_h'],
4817 [name+'0_', name+'1'], hidden_size=state_size, linear_before_reset=1),
4818 make_node('Squeeze', [name+'0_'], [name], axes=[1]),
4828 create_tensor([2*state_size], name+'_2*state_size', kwargs['initializer'])
4829 create_tensor([state_size*state_size], name+'_state_size^2', kwargs['initializer'])
4830 create_tensor([1, state_size, state_size], name+'_WR_shape', kwargs['initializer'])
4831 create_tensor([1, 2*state_size], name+'_B_shape', kwargs['initializer'])
4832 create_tensor([4*state_size*state_size], name+'_WR_offset', kwargs['initializer'])
4837 make_node('Slice', [param, name+'_0', name+'_state_size^2'], [name+'_W0_1d']),
4838 make_node('Reshape', [name+'_W0_1d', name+'_WR_shape'], [name+'_W0']),
4840 make_node('Add', [name+'_state_size^2', name+'_state_size^2'], [name+'_R0_offset']),
4841 … make_node('Slice', [param, name+'_state_size^2', name+'_R0_offset'], [name+'_R0_1d']),
4842 make_node('Reshape', [name+'_R0_1d', name+'_WR_shape'], [name+'_R0']),
4844 make_node('Add', [name+'_WR_offset', name+'_2*state_size'], [name+'_B0_offset']),
4845 make_node('Slice', [param, name+'_WR_offset', name+'_B0_offset'], [name+'_B0_1d']),
4846 make_node('Reshape', [name+'_B0_1d', name+'_B_shape'], [name+'_B0']),
4848 … make_node('Split', [name+'initial_h'], [name+'_initial_h0', name+'_initial_h1'], axis=0),
4850 make_node('Tile', [name+'_seq_length', name+'_batch_size'], [name+'_seq_len_']),
4851 make_node("Cast", [name+'_seq_len_'], [name+"_seq_len"], to=int(TensorProto.INT32)),
4853 make_node('RNN', [data, name+'_W0', name+'_R0', name+'_B0', name+'_seq_len',
4854 name+'_initial_h0'], [name+'_rnn0_out_', name+'_rnn0_h'],
4856 make_node('Squeeze', [name+'_rnn0_out_'], [name+'_rnn0_out'], axes=[1]),
4860 make_node('Add', [name+'_R0_offset', name+'_state_size^2'], [name+'_W1_offset']),
4861 make_node('Slice', [param, name+'_R0_offset', name+'_W1_offset'], [name+'_W1_1d']),
4862 make_node('Reshape', [name+'_W1_1d', name+'_WR_shape'], [name+'_W1']),
4864 make_node('Slice', [param, name+'_W1_offset', name+'_WR_offset'], [name+'_R1_1d']),
4865 make_node('Reshape', [name+'_R1_1d', name+'_WR_shape'], [name+'_R1']),
4867 make_node('Add', [name+'_B0_offset', name+'_2*state_size'], [name+'_B1_offset']),
4868 make_node('Slice', [param, name+'_B0_offset', name+'_B1_offset'], [name+'_B1_1d']),
4869 make_node('Reshape', [name+'_B1_1d', name+'_B_shape'], [name+'_B1']),
4871 … make_node('RNN', [name+'_rnn0_out', name+'_W1', name+'_R1', name+'_B1', name+'_seq_len',
4872 name+'_initial_h1'], [name+'_rnn1_out_', name+'_rnn1_h'],
4874 make_node('Squeeze', [name+'_rnn1_out_'], [name], axes=[1]),
4875 make_node('Concat', [name+'_rnn0_h', name+'_rnn1_h'], [name+'1'], axis=0)
4879 create_tensor([2*state_size], name+'_2*state_size', kwargs['initializer'])
4880 create_tensor([state_size*state_size], name+'_state_size^2', kwargs['initializer'])
4881 create_tensor([1, state_size, state_size], name+'_R_shape', kwargs['initializer'])
4882 create_tensor([1, 2*state_size], name+'_B_shape', kwargs['initializer'])
4886 make_node('Mul', [name+'_state_size', name+'_input_size'], [name+'_mul0']),
4887 make_node('Slice', [param, name+'_0', name+'_mul0'], [name+'_W_1d']),
4888 …make_node('Concat', [name+'_1', name+'_state_size', name+'_input_size'], [name+'_W_shape'], axis=0…
4889 make_node('Reshape', [name+'_W_1d', name+'_W_shape'], [name+'_W']),
4891 make_node('Add', [name+'_mul0', name+'_state_size^2'], [name+'_add0']),
4892 make_node('Slice', [param, name+'_mul0', name+'_add0'], [name+'_R_1d']),
4893 make_node('Reshape', [name+'_R_1d', name+'_R_shape'], [name+'_R']),
4895 make_node('Add', [name+'_add0', name+'_2*state_size'], [name+'_add1']),
4896 make_node('Slice', [param, name+'_add0', name+'_add1'], [name+'_B_1d']),
4897 make_node('Reshape', [name+'_B_1d', name+'_B_shape'], [name+'_B']),
4899 make_node('Tile', [name+'_seq_length', name+'_batch_size'], [name+'_seq_len_']),
4900 make_node("Cast", [name+'_seq_len_'], [name+"_seq_len"], to=int(TensorProto.INT32)),
4902 … make_node('RNN', [data, name+'_W', name+'_R', name+'_B', name+'_seq_len', name+'initial_h'],
4903 [name+'0_', name+'1'], hidden_size=state_size, activations=activations),
4904 make_node('Squeeze', [name+'0_'], [name], axes=[1]),
4918 name, input_nodes, attrs = get_inputs(node, kwargs)
4923 make_node('Concat', input_nodes, [name], axis=axis)
4934 name, input_nodes, _ = get_inputs(node, kwargs)
4940 create_tensor([0], name+'_0', kwargs['initializer'])
4941 create_tensor([1], name+'_1', kwargs['initializer'])
4942 create_tensor([1], name+'_1_f', kwargs['initializer'], dtype=dtype)
4944 make_node('Shape', [input_nodes[0]], [name+'_shape']),
4945 make_node('Shape', [name+'_shape'], [name+'_dim']),
4946 make_node('Sub', [name+'_dim', name+'_1'], [name+'_dim_m1']),
4947 make_node('Slice', [name+'_shape', name+'_dim_m1', name+'_dim', name+'_0'], [name+'_c_']),
4948 make_node('Cast', [name+'_c_'], [name+'_c'], to=dtype_t),
4949 make_node('Sqrt', [name+'_c'], [name+'_c_sqrt']),
4950 make_node('Div', [name+'_1_f', name+'_c_sqrt'], [name+'_1_over_c_sqrt']),
4951 make_node('Mul', [input_nodes[0], name+'_1_over_c_sqrt'], [name])
4962 name, input_nodes, attrs = get_inputs(node, kwargs)
4970 output_nodes = [name+str(i) for i in range(sections)]
4976 output_nodes_ = [name+str(i)+'_' for i in range(sections)]