我正在使用TensorFlow 1.4和Estimator框架。
我想使用tf.contrib.estimator.multi_head
创建一个头部(在另一个头部的模型中),它总结了N softmax_cross_entropy_with_logits
的结果。 N个概率分布均在同一组类上定义,但是是独立分布。我想要计算的汇总损失分数只是softmax交叉熵损失的平方和。
如果我伪造一个N {0}的tf.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是最简单的前进道路。