gpt4 book ai didi

python - 输出keras中的损失/成本函数

转载 作者:行者123 更新时间:2023-12-01 02:13:08 26 4
gpt4 key购买 nike

我正在尝试在 Keras 中找到成本函数。我正在运行带有损失函数 categorical_crossentropy 的 LSTM,并添加了正则化器。在我的正则化器之后,如何输出成本函数的样子以供我自己的分析?

model = Sequential()
model.add(LSTM(
NUM_HIDDEN_UNITS,
return_sequences=True,
input_shape=(PHRASE_LEN, SYMBOL_DIM),
kernel_regularizer=regularizers.l2(0.01)
))
model.add(Dropout(0.3))
model.add(LSTM(NUM_HIDDEN_UNITS, return_sequences=False))
model.add(Dropout(0.3))
model.add(Dense(SYMBOL_DIM))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
optimizer=RMSprop(lr=1e-03, rho=0.9, epsilon=1e-08))

最佳答案

How do i output what the cost function looks like after my regularizer this for my own analysis?

当然,您可以通过获取您想要查看的图层的输出 (yourlayer.output) 并打印它来实现此目的(请参阅 here )。然而,有更好的方法来可视化这些事情。

认识 Tensorboard .

这是一个功能强大的可视化工具,使您能够跟踪和可视化您的指标、输出、体系结构、kernel_initializations 等。好消息是已经有了 Tensorboard Keras Callback您可以用于此目的;你只需要导入它。要使用它,只需将回调实例传递给您的 fit 方法,如下所示:

from keras.callbacks import TensorBoard
#indicate folder to save, plus other options
tensorboard = TensorBoard(log_dir='./logs/run1', histogram_freq=1,
write_graph=True, write_images=False)

#save it in your callback list
callbacks_list = [tensorboard]
#then pass to fit as callback, remember to use validation_data also
model.fit(X, Y, callbacks=callbacks_list, epochs=64,
validation_data=(X_test, Y_test), shuffle=True)

之后,通过执行以下命令启动您的 Tensorboard 服务器(它在您的电脑上本地运行):

tensorboard --logdir=logs/run1
<小时/>例如,这就是我测试的两个不同模型上的内核的样子(要比较它们,您必须保存单独的运行,然后在父目录上启动 Tensorboard)。这是在“直方图”选项卡上的第二层上:

enter image description here

左边的模型是我用kernel_initializer='random_uniform'初始化的,因此它的形状是均匀分布的。 右侧的模型是我用 kernel_initializer='normal' 初始化的,这就是为什么它在我的历元(大约 30)中显示为高斯分布.

通过这种方式,您可以以比打印输出更具交互性和更易于理解的方式可视化内核和层的“外观”。这只是 Tensorboard 的强大功能之一,它可以帮助您更快更好地开发深度学习模型。

当然,Tensorboard 回调和一般 Tensorboard 有更多选项,因此,如果您决定尝试此操作,我建议您仔细阅读提供的链接。更多信息您可以查看thisalso this问题。

编辑:因此,您评论说您想知道您的正则化损失在分析上“看起来”如何。让我们记住,通过向损失函数添加正则化器,我们基本上是在扩展损失函数以在其中包含一些“惩罚”或偏好。因此,如果您使用 cross_entropy 作为损失函数,并添加权重为 0.01 的 l2 正则化器(即欧几里得范数),您的整个损失函数将类似于:

enter image description here

关于python - 输出keras中的损失/成本函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com