【发布时间】:2017-08-14 03:21:04
【问题描述】:
我正在使用带有 Tensorflow 的 Keras。 由于我想创建LSTM-CRF model,所以我使用tf.contrib.crf.crf_log_likelihood定义了自己的损失函数:
def loss(self, y_true, y_pred):
sequence_lengths = ... # calc from y_true
log_likelihood, transition_params = tf.contrib.crf.crf_log_likelihood(y_pred, y_true, sequence_lengths)
loss = tf.reduce_mean(-log_likelihood)
self.transition_params = transition_params
return loss
如您所知,CRF 在预测阶段需要转换参数。所以我将 transition_params 存储到实例变量 self.transition_params 中。
问题是 self.transition_params 在小批量期间从未更新过。根据我的观察,编译模型时似乎只存储了一次。
有没有办法将损失函数中的变量存储到 Keras 中的实例变量中?
【问题讨论】:
标签: python machine-learning tensorflow nlp keras