如果我使用tensorflow.saved_model.saveSavedModel 格式的函数保存我的模型,那么我如何检索此模型中使用了哪些 Tensorflow Ops。由于模型可以恢复,所以这些操作都存储在图中,我猜是在saved_model.pb文件中。如果我加载这个 protobuf(所以不是整个模型),protobuf 的库部分会列出这些,但目前没有记录并标记为实验功能。在 Tensorflow 1.x 中创建的模型将没有这部分。
那么,从 SavedModel 格式的模型中检索已使用操作(LikeMatchingFiles或WriteFile)列表的快速可靠方法是什么?
现在我可以冻结整个事情,就像tensorflowjs-converter那样。因为他们还检查支持的操作。当 LSTM 在模型中时,这当前不起作用,请参见此处。有没有更好的方法来做到这一点,因为 Ops 肯定在那里?
示例模型:
class FileReader(tf.Module):
@tf.function(input_signature=[tf.TensorSpec(name='filename', shape=[None], dtype=tf.string)])
def read_disk(self, file_name):
input_scalar = tf.reshape(file_name, [])
output = tf.io.read_file(input_scalar)
return tf.stack([output], name='content')
file_reader = FileReader()
tf.saved_model.save(file_reader, 'file_reader')
Run Code Online (Sandbox Code Playgroud)
预期输出所有操作,在这种情况下至少包含:
ReadFile描述在这里