[Tensorflow] support tf saved_model and more operators


#1

Hi, I have tried nnvm/tvm v0.4 from tensorflow saved_model, and face NotImplementedError: The following operators are not implemented.

The code is simple:

with tf.Session(graph=tf.Graph()) as sess:
meta_graph_def = tf.saved_model.loader.load(sess, [tf.saved_model.tag_constants.SERVING], ‘knrm’)
graph_def = meta_graph_def.graph_def

graph_def = nnvm.testing.tf.ProcessGraphDefParam(graph_def)
sym, params = nnvm.frontend.from_tensorflow(graph_def)

And the error are:

NotImplementedError: The following operators are not implemented: set([u'IsVariableInitialized', u'NotEqual', u'RealDiv', u'ShardedFilename', u'RestoreV2', u'Exp', u'BatchMatMul', u'Max', u'VariableV2', u'Gather', u'Transpose', u'MergeV2Checkpoints', u'Log1p', u'StringJoin', u'RandomUniform', u'SaveV2', u'NoOp', u'Pack', u'Unpack', u'Assign', u'Mean'])

I guess there are 2 issues related.

First, tf saved_model is not supported (u’IsVariableInitialized, u’ShardedFilename’, u’RestoreV2’, u’MergeV2Checkpoints’, u’RandomUniform’, u’SaveV2’, u’Pack’, u’Unpack’, u’Assign’, u’StringJoin’).

Second, some operators in my model is not supported (u’NotEqual’, u’RealDiv’, u’Exp’, u’BatchMatMul’, u’Max’, u’Gather’, u’Transpose’, u’Log1p’, u’Mean’).


#2

I guess we may not be to support all saved_model ops now.

Above listed model specific ops can be supported. You are welcome to contribute here.
Or
If possible share protobuf with these ops which could enable other members to participate for contribution


#3

@levyfan TF saved model is supported now