Graph 如何在tensorflow中合并两个模型?

Graph 如何在tensorflow中合并两个模型?,graph,model,tensorflow,Graph,Model,Tensorflow,我正在使用tensorflow进行人脸识别。 我有一个图表,我用它来训练两个不同的模型,每个模型有10个类。 现在我的问题是,我能在这两个模型的帮助下创建一个包含20个类的模型吗。 请回答这个问题。如果你想要更多的信息,请告诉我。 提前感谢。我不建议您合并两个图,主要是因为使用20个类别训练的Parameter与使用10个类别合并的Parameter有很大不同,但是如果您仍然想这样做,这里有一些建议 首先使用meta_graph_def或graph_def导入图形 第二步提取图形中的“瓶颈”张量

我正在使用tensorflow进行人脸识别。 我有一个图表,我用它来训练两个不同的模型,每个模型有10个类。 现在我的问题是,我能在这两个模型的帮助下创建一个包含20个类的模型吗。 请回答这个问题。如果你想要更多的信息,请告诉我。
提前感谢。

我不建议您合并两个图,主要是因为使用20个类别训练的Parameter与使用10个类别合并的Parameter有很大不同,但是如果您仍然想这样做,这里有一些建议

首先使用meta_graph_def或graph_def导入图形

第二步提取图形中的“瓶颈”张量,您可以使用
瓶颈=图形来完成。通过名称(“您的张量名称”)获取张量

第三,从磁盘(checkpoint)读取预先训练的值,类
tf.train.NewCheckpointReader
可以提供帮助


最后一步,使用从第三步读取的值在瓶颈张量上构建一个常数张量。

这两个模型的结构是什么?除了最后一个softmax层外,它们有相同的层?感谢回复。是的,这个结构有相同的层和相同数量的神经元。softmax层也有相同数量的输出(它是10)。谢谢@Jie.Zhou,这似乎有些帮助。但我对最后一步非常清楚。你能给我提供任何关于这个的链接吗。对于第三个从磁盘(checkpoint)读取预训练值的类tf.train.NewCheckpointReader,它将只读取一个模型的预训练值。另一个模型如何,以及其他模型如何影响这里。@Akki在tensorflow网站上查看这两个功能的文档:
tf.train.import\u meta\u graph
tf.import\u graph\u def
(在尝试恢复模型时经常使用它们)很抱歉这里的第一条评论,但最后一步我非常清楚。。事实上,我对最后一步不是很清楚。@Akki一旦你从检查点文件中读取了你的权重,比方说两个numpy.array,分别称为
w1
w2
,用
w=np.hstack([w1,w2])
将这两个权重合并,然后创建一个常量张量
softmax\u w=tf.constant(w)
,计算logits
logits=tf.matmul(瓶颈,softmax_w)
(为了简单起见省略偏差),然后计算概率
prob=tf.nn.softmax(logits)
谢谢@Jie.Zhou,我会试试这个。