TensorFlow:在一个新模型的培训中,将一个模型的预测结合起来的最简单方法是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow:在一个新模型的培训中,将一个模型的预测结合起来的最简单方法是什么?相关的知识,希望对你有一定的参考价值。
在训练另一个模型B期间,使用tf.estimator
训练模型A的最简单方法是什么?
模型A中的权重是固定的。在模型B中,我想采取一些输入,计算,将这些结果提供给模型A,然后对输出进行更多计算。
一个简单的例子:
ModelA返回tf.matmul(input,weights)
在ModelB中,我想做以下事情:
x1 = tf.matmul(new_inputs,new_weights1)
x2 = modelA(x1) # with fixed weights
return tf.matmul(x2,new_weights2)
但是对于更复杂的模型A和B,每个模型都被训练为tf.estimator
(虽然我很高兴不使用估算器,如果有另一个简单的解决方案 - 我正在使用它们,因为我想使用ML引擎)。
This问题是相关的,但是提出的解决方案不适用于训练模型B,因为tf.py_func的梯度是[None]。我已经尝试为tf.py_func注册一个渐变,但这失败了
不支持的对象类型Tensor
我也为模型A尝试了tf.import_graph_def
,但这似乎加载了预训练图,但不是实际的权重。
对于模型可组合性,Keras工作得更好。您可以将Keras模型转换为估算器:
所以你仍然可以在ML Engine上训练。
使用Keras,只需从检查点加载中间层的权重和偏差,并使该层不可训练。看到:
Is it possible to save a trained layer to use layer on Keras?
以上是关于TensorFlow:在一个新模型的培训中,将一个模型的预测结合起来的最简单方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 中运行 Tensorflow 对象检测 API 模型?
如何部署Tensorflow训练模型以推断Windows独立应用程序
第二十二节,TensorFlow中的图片分类模型库slim的使用