我正在使用 TensorFlow 1.4 和 Estimator 框架。
我想tf.contrib.estimator.multi_head
用来创建一个头(在具有另一个头的模型中)总结 N 的结果softmax_cross_entropy_with_logits
。N 个概率分布均定义在同一组类上,但它们是独立分布。我想计算的总损失分数只是 softmax 交叉熵损失的平方和。
如果我伪造一个包含 N 个零的向量,我几乎可以使用 atf.contrib.estimator.regression_head
来计算摘要labels
,因为零向量的均方误差相当于对 softmax 损失的平方求和。但这似乎很笨拙,我想要一种更直接的方法。
看来我将需要创建自己的在中_Head
实现的子类tensorflow.python.estimator.canned.head
,并且必须实现create_loss
记录为供框架开发人员使用的方法。
在我开始走这条路之前,我想知道是否有我应该考虑的替代方法。
我最初是用 Keras 开始开发的,曾经有一个使用功能 API 的多头模型。我想知道我是否应该重新使用 Keras,然后model_fn
使用tf.keras.estimator.model_to_estimator
. 在所有条件相同的情况下,我更愿意使用纯 Tensorflow 成语进行编码,但也许 Keras 是最简单的前进道路。