如何打印在keras后端功能中设置的损失值

时间:2019-01-24 07:58:11

标签: python tensorflow keras

我是keras的新手。 以下代码段适用于策略梯度损失功能。 我尝试打印损耗值,以查看损耗值对于策略梯度是否为负。但我做不到 有什么办法打印吗?

我找到了一些方法,但是它使用了keras历史记录,似乎可以从model.fit函数获取历史记录。 下面的代码不使用model.fit函数。

from keras import backend as K

model = Sequential()
model.add(Dense(24, input_dim=self.state_size, activation='relu'))
model.add(Dense(24, activation='relu'))
model.add(Dense(self.action_size, activation='softmax'))
model.summary()

------------------------------------------------
action_prob = K.sum(action * self.model.output, axis=1)
cross_entropy = K.log(action_prob) * discounted_rewards
loss = -K.sum(cross_entropy)

optimizer = Adam(lr=self.learning_rate)
updates = optimizer.get_updates(self.model.trainable_weights,[],
                                loss)
train = K.function([self.model.input, action, discounted_rewards], [],updates=updates)

1 个答案:

答案 0 :(得分:0)

您可以将for循环用于像纪元这样的火车:

for epoch in epochs:
    train=K.function(..)
    K.print_tensor(loss, message='{} Epochs Training Loss = '.format(epoch))