如何解决来自 keras 模型的访问损失指标
我正在尝试访问我构建的模型的训练损失,因为我称之为训练循环。我已经建立了一个模型如下:
def create_model(self):
model = Sequential()
model.add(Dense(172,input_shape=(1,172),activation = 'relu'))
model.add(Dense(172,activation = 'relu'))
model.add(Dense(86,activation = 'relu'))
model.add(Dense(43,activation = 'relu'))
model.add(Dense(21,activation = "relu"))
model.add(Flatten())
model.add(Dense(7,activation="linear"))
model.compile(loss="mse",optimizer=Adam(lr=0.001),metrics=['accuracy'])
return model
我的身材如下:
self.model.fit(np.array(X),np.array(y),batch_size=MINIBATCH_SIZE,verbose=0,shuffle=False)
该模型适合批量,并且是更大类(DQN 代理)的一部分。
由于我每个时间步都运行一次拟合,并且每集有多个时间步,我如何才能在训练循环中访问一个变量,从而使我失去网络,以便更密切地监控它? (最终目标是将其添加到 tensorboard)
我可以尝试在每一步或每集(300 步)中访问这个,无论哪个更容易。
解决方法
您可以将 verbose 更改为 1(显示在 epoch 内不断变化的损失和进度)或将其更改为 2(在每个 epoch 后显示损失)。您还可以将拟合线更改为:
history = self.model.fit(np.array(X),np.array(y),batch_size=MINIBATCH_SIZE,verbose=0,shuffle=False)
然后在 n_epochs
之后,您可以使用以下调用提取数组中的损失:
losses = history.history['loss']
您可以在循环中迭代训练,以您想要的频率提取损失,并且可以绘制它们,或保存它们以单独查看它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。