我是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)
答案 0 :(得分:0)
您可以将for循环用于像纪元这样的火车:
for epoch in epochs:
train=K.function(..)
K.print_tensor(loss, message='{} Epochs Training Loss = '.format(epoch))