Skip to content
This repository was archived by the owner on Oct 13, 2021. It is now read-only.

Convert tf.add_n using keras _builtin #406

Merged
merged 16 commits into from
Mar 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
d674930
Add vgg16 and nasnet to v2 application
jiafatom Feb 26, 2020
c731d6f
Add vgg16 and nasnet to v2 application
jiafatom Feb 26, 2020
e389ae3
Merge branch 'test_tfl' of https://github.com/jiafatom/keras-onnx int…
jiafatom Feb 26, 2020
d200756
Merge branch 'master' into test_tfl
jiafatom Feb 26, 2020
4dd8869
Add DepthwiseConv2d to subclassed model and efficient-net test cases …
wenbingl Feb 25, 2020
7f9add8
Merge branch 'test_tfl' of https://github.com/jiafatom/keras-onnx
jiafatom Feb 26, 2020
1bb0e71
Merge branch 'master' of https://github.com/jiafatom/keras-onnx
jiafatom Feb 26, 2020
0cbfd4b
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Feb 26, 2020
59cf5dd
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Feb 28, 2020
99c9428
Merge branch 'master' of https://github.com/onnx/keras-onnx
jiafatom Feb 28, 2020
86559d9
Merge branch 'master' of https://github.com/jiafatom/keras-onnx
jiafatom Mar 6, 2020
b61b05c
Convert tf.add_n using keras _builtin
jiafatom Mar 9, 2020
1b331f7
Convert tf.add_n using keras _builtin
jiafatom Mar 9, 2020
655b22e
Merge branch 'add_n' of https://github.com/jiafatom/keras-onnx into a…
jiafatom Mar 9, 2020
6230c3e
Merge branch 'add_n' of https://github.com/jiafatom/keras-onnx into a…
jiafatom Mar 9, 2020
46392a0
Merge branch 'add_n' of https://github.com/jiafatom/keras-onnx into a…
jiafatom Mar 9, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions keras2onnx/_builtin.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class TYPES:
# tf-node types:
Identity = 'Identity'
Const = 'Const'
AddN = 'AddN'
Any = 'Any'
All = 'All'
BatchMatMul = 'BatchMatMul'
Expand Down Expand Up @@ -170,6 +171,15 @@ def convert_tf_identity(scope, operator, container):
default_convert(scope, operator, container)


@converter_func(TYPES.AddN)
def convert_tf_addn(scope, operator, container):
oopb = OnnxOperatorBuilder(container, scope)
oopb.apply_op_with_output("apply_add",
operator.input_full_names,
operator.output_full_names,
name=operator.full_name + '_add')


@converter_func(TYPES.BatchToSpaceND)
def convert_tf_batch_to_space(scope, operator, container):
node = operator.raw_operator
Expand Down
15 changes: 15 additions & 0 deletions tests/test_layers.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,21 @@ def test_keras_lambda(self):
expected = model.predict(data)
self.assertTrue(run_onnx_runtime('onnx_lambda', onnx_model, data, expected, self.model_files))

def test_tf_addn(self):
input1 = Input(shape=(5, 3, 4), dtype=tf.float32)
input2 = Input(shape=(5, 3, 4), dtype=tf.float32)
sum = Lambda(tf.add_n)([input1, input2])
model = keras.models.Model(inputs=[input1, input2], outputs=sum)

onnx_model = keras2onnx.convert_keras(model, 'tf_add_n')
batch_data1_shape = (2, 5, 3, 4)
batch_data2_shape = (2, 5, 3, 4)
data1 = np.random.rand(*batch_data1_shape).astype(np.float32)
data2 = np.random.rand(*batch_data2_shape).astype(np.float32)
expected = model.predict([data1, data2])
self.assertTrue(
run_onnx_runtime('tf_add_n', onnx_model, [data1, data2], expected, self.model_files))

def test_tf_conv(self):
model = Sequential()
k = tf.constant(np.random.normal(loc=0.0, scale=1.0, size=(1, 2, 3, 5)).astype(np.float32))
Expand Down