您的位置:首页 > 文旅 > 美景 > 深度学习:模型训练中记录log的方式

深度学习:模型训练中记录log的方式

2024/12/23 16:21:56 来源:https://blog.csdn.net/Ethan_Rich/article/details/141224546  浏览:    关键词:深度学习:模型训练中记录log的方式

在网络训练过程中加入日志记录是非常重要的,它可以帮助你监控训练进展、调试问题并记录实验结果。日志记录通常包括训练损失、验证准确率、学习率、模型参数等信息。以下是如何在 Python 中使用常见的机器学习框架(如 PyTorch 和 TensorFlow)来实现日志记录的指南。

1. 使用 PyTorch 进行日志记录

在 PyTorch 中,你可以使用标准的 Python logging 库或更高级的工具如 TensorBoard 来记录训练过程中的信息。

1.1 使用 logging

logging 库可以用来记录训练过程中的各种信息,比如损失、准确率等。

示例代码:

import logging
import torch
import torch.nn as nn
import torch.optim as optim# 设置日志配置
logging.basicConfig(filename='training.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')# 创建模型、数据和优化器
model = nn.Linear(10, 1)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)# 模拟训练过程
for epoch in range(10):# 训练代码inputs = torch.randn(10)target = torch.randn(1)optimizer.zero_grad()output = model(inputs)loss = criterion(output, target)loss.backward()optimizer.step()# 记录日志logging.info(f'Epoch {epoch+1}, Loss: {loss.item()}')
1.2 使用 TensorBoard

TensorBoard 是 TensorFlow 提供的可视化工具,也可以在 PyTorch 中使用。你需要安装 tensorboardtensorboardX 库。

示例代码:

from torch.utils.tensorboard import SummaryWriter
import torch
import torch.nn as nn
import torch.optim as optim# 创建 TensorBoard 记录器
writer = SummaryWriter('runs/experiment')# 创建模型、数据和优化器
model = nn.Linear(10, 1)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)# 模拟训练过程
for epoch in range(10):# 训练代码inputs = torch.randn(10)target = torch.randn(1)optimizer.zero_grad()output = model(inputs)loss = criterion(output, target)loss.backward()optimizer.step()# 记录日志writer.add_scalar('Loss/train', loss.item(), epoch)# 关闭 TensorBoard 记录器
writer.close()

2. 使用 TensorFlow 进行日志记录

在 TensorFlow 中,日志记录通常使用 TensorBoard。TensorFlow 提供了 tf.summary 模块来记录训练信息。

示例代码:

import tensorflow as tf# 创建模型
model = tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))
])# 编译模型
model.compile(optimizer='sgd', loss='mse')# 创建 TensorBoard 记录器
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir='./logs', histogram_freq=1)# 模拟数据
import numpy as np
x_train = np.random.randn(100, 10)
y_train = np.random.randn(100, 1)# 训练模型
model.fit(x_train, y_train, epochs=10, callbacks=[tensorboard_callback])

3. 记录其他信息

除了损失和准确率,你还可以记录其他信息,例如学习率、模型权重、计算图等。根据需要,你可以扩展日志记录的内容:

  • 学习率

writer.add_scalar('Learning Rate', optimizer.param_groups[0]['lr'], epoch)
  • 模型权重
for name, param in model.named_parameters():writer.add_histogram(name, param, epoch)

4. 可视化日志

  • TensorBoard: 运行 TensorBoard 来可视化日志数据:

tensorboard --logdir=runs/experiment

然后在浏览器中打开 http://localhost:6006 查看可视化结果。

总结

  • PyTorch:可以使用 logging 库或 TensorBoard 记录训练过程。
  • TensorFlow:可以使用 tf.summary 和 TensorBoard 记录和可视化训练信息。

通过在训练过程中添加适当的日志记录,你可以更好地监控模型的性能,调试训练过程中的问题,并记录实验结果。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com