Softmax和LogSoftmax(使用过程中的记录)

Softmax函数常用的用法是指定参数dim

(1)dim=0:对每一列的所有元素进行softmax运算,并使得每一列所有元素和为1。
(2)dim=1:对每一行的所有元素进行softmax运算,并使得每一行所有元素和为1。
Softmax的含义就在于不再唯一的确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。

LogSoftmax 对softmax的结果进行log,即Log(Softmax(x))

logsoftmax解决函数overflow和underflow,加快运算速度,提高数据稳性定。防止溢出

weight_decay(权重衰减)

权重衰减等价于L2范数正则化。正则化通过为模型损失函数添加惩罚项使得学习的模型参数值较小,是常用的过拟合的常用手段
L2范数正则化是在模型原损失函数基础上添加L2范数惩罚项,其中L2范数惩罚项指的是模型权重参数每个元素的平方和与一个正的常数的乘积。

可以 参考:https://blog.csdn.net/geter_CS/article/details/82878083有公式

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python ,我们可以使用 Matplotlib 和 TensorBoard 来绘制在训练过程的损失、错误率和测试集结果(准确率)的图表。 首先,我们需要安装 Matplotlib 和 TensorBoard 库。可以使用以下命令来安装: ```python pip install matplotlib pip install tensorboard ``` 接下来,我们需要在训练代码添加与 TensorBoard 相关的代码来记录训练过程的损失、错误率和测试集结果。我们可以使用 TensorFlow 的 `tf.summary` 模块来实现这个功能。以下是一个示例代码: ```python import tensorflow as tf from tensorflow.keras.callbacks import TensorBoard from tensorflow.keras.datasets import mnist from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras.models import Sequential # 加载 MNIST 数据集 (x_train, y_train), (x_test, y_test) = mnist.load_data() # 数据预处理 x_train = x_train / 255.0 x_test = x_test / 255.0 # 定义模型 model = Sequential([ Flatten(input_shape=(28, 28)), Dense(128, activation='relu'), Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 记录训练过程的损失、错误率和测试集结果 tensorboard_callback = TensorBoard(log_dir='./logs') # 训练模型 model.fit(x_train, y_train, epochs=10, callbacks=[tensorboard_callback]) # 在 TensorBoard 查看训练过程 # tensorboard --logdir=./logs ``` 在上面的代码,我们使用了 `TensorBoard` 回调函数来记录训练过程的损失、错误率和测试集结果。我们将这些信息保存到 `./logs` 目录下的日志文件。 接下来,我们可以使用 TensorBoard 来查看训练过程的损失、错误率和测试集结果。在命令行输入以下命令: ```python tensorboard --logdir=./logs ``` 然后,在浏览器打开 `http://localhost:6006`,就可以看到 TensorBoard 的界面了。在界面左侧的菜单,选择 Scalars 选项卡,就可以看到训练过程的损失、错误率和测试集结果的变化曲线了。如果想要绘制图表,可以选择相应的变量,然后点击右侧的图表图标。 另外,如果想要使用 Matplotlib 绘制训练过程的损失、错误率和测试集结果的图表,可以在 `TensorBoard` 回调函数添加相应的代码。以下是一个示例代码: ```python import matplotlib.pyplot as plt # 记录训练过程的损失、错误率和测试集结果 class PlotCallback(tf.keras.callbacks.Callback): def on_train_begin(self, logs={}): self.losses = [] self.accs = [] self.val_losses = [] self.val_accs = [] def on_epoch_end(self, epoch, logs={}): self.losses.append(logs.get('loss')) self.accs.append(logs.get('accuracy')) self.val_losses.append(logs.get('val_loss')) self.val_accs.append(logs.get('val_accuracy')) # 绘制训练过程的损失曲线 plt.plot(self.losses) plt.title('Training Loss') plt.xlabel('Epoch') plt.ylabel('Loss') plt.show() # 绘制训练过程的错误率曲线 plt.plot(self.accs) plt.title('Training Accuracy') plt.xlabel('Epoch') plt.ylabel('Accuracy') plt.show() # 绘制测试集结果(准确率)曲线 plt.plot(self.val_accs) plt.title('Validation Accuracy') plt.xlabel('Epoch') plt.ylabel('Accuracy') plt.show() plot_callback = PlotCallback() # 训练模型 model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test), callbacks=[plot_callback]) ``` 在上面的代码,我们自定义了一个 `PlotCallback` 类,用于记录训练过程的损失、错误率和测试集结果,并绘制相应的图表。在每个 epoch 结束时,我们将损失、错误率和测试集结果的值添加到相应的列表,然后使用 Matplotlib 绘制相应的图表。 需要注意的是,如果想要同时使用 TensorBoard 和 Matplotlib,需要将 `TensorBoard` 回调函数和 `PlotCallback` 类同时传递给 `model.fit` 方法的 `callbacks` 参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值