在Tensorflow 1.13中串联两个保存的模型

我已经将一个预训练模型保存为ckpt文件(元,索引...),并且正在使用tf.train.import_meta_graph()tf.train.Saver.restore()加载图形。 我也有一个tf.keras.applications的resnet50模型。 我需要将resnet模型的输出提供给从磁盘加载的模型。 我该如何实现?

代码:

resnet_model = Resnet50(include_top=False,pooling='avg')
preprocessed_video = preprocess_input(tf.cast(video,tf.float32))
features = self.resnet_model([preprocessed_video])

sess1 = tf.Session()
saver = tf.train.import_meta_graph(model_path.as_posix() + '.meta')
graph = tf.get_default_graph()
saver.restore(sess1,model_path.as_posix())
input_x = graph.get_tensor_by_name('input/Identity:0')
result = graph.get_tensor_by_name('output/Identity:0')

我需要将features赋予input_x并得到result。请注意,这必须在构建图形时发生,而不是在运行sess.run时发生。我的意思是videofeatures都是tensors而不是numpy.ndarray。因此,我不能使用sess.run

编辑1
像在this answer中一样,我可以解决以下问题:

preprocessed_video = preprocess_input(tf.cast(video,tf.float32))
features = self.resnet_model([preprocessed_video])
sess1 = tf.Session()
saver = tf.train.import_meta_graph(model_path.as_posix() + '.meta',input_map={'input/Identity:0': features})
graph = tf.get_default_graph()
saver.restore(sess1,model_path.as_posix())
quality_score = graph.get_tensor_by_name('output/Identity:0')

感谢jdehesa

harry1900 回答:在Tensorflow 1.13中串联两个保存的模型

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3015824.html

大家都在问