我在张量流中有多个训练有素的图,我想将它们组合在一起以进行后处理,如图所示。
搜索了一段时间后,我能够找到一种常见的方法LINK。但是,通过这样做,我可能需要线性运行图形(一个接一个)。我的问题是,这是“整合”多个训练图的唯一方法吗?
编辑1: 图形代码,其中不包括训练步骤:
layer_def={
"l1": 21,
"l2": 42,
"l3": 42,
"l4": 84 ,
"l5": 84,
"l6": 168,
"l7": 84,
"l8": 42,
"l9": 21,
"l10": 16
}
graph = tf.Graph()
input = tf.placeholder(tf.float32, [None, 128], name="Feature_Input")
with graph.as_default():
with tf.name_scope("SampleOp"):
input_layer = dense_layer_with_BN_l2(input, units=30)# it is a function warp of linear layer with batch-normalization and returns L2-norm
for key, value in layer_def.items():
input_layer = dense_layer_with_BN_l2(input_layer, value, name=key)
K_gain = probability_sample(input_layer, 16) # it is a function warp of tfp.distributions.MultivariateNormalDiag.sample
sess = tf.Session(graph=graph)
sess.run(tf.global_variables_initializer())
saver = tf.train.Saver()
sess.run(K_gain ,feed_dict={input : 0})
save_path = saver.save(sess, "./model/SampleOp.ckpt")
Graph1 , Graph2 和 Graph3 都使用不同的数据集进行训练,以期望具有不同的权重。
我目前正在做的是:
Graph1 = ImportGraph("./model/SampleOp1.ckpt")
Graph2 = ImportGraph("./model/SampleOp2.ckpt")
Graph3 = ImportGraph("./model/SampleOp3.ckpt")
Output1 = Graph1.run(FeedDict)
Output2 = Graph2.run(FeedDict)
Output3 = Graph3.run(FeedDict)
result = post_Processing([Output1, Output2, Output3])
我想知道是否还有其他有效的方法来“操纵”(“组合”,“整体”或任何其他)张量流图以达到我的目的。