当前位置: 首页 > news >正文

深度学习模型训练之日志记录

在深度学习模型训练过程中,进行有效的训练日志记录是至关重要的。以下是一些常见的策略和工具来实现这一目标:

1. 使用TensorBoard

TensorBoard是TensorFlow提供的一个可视化工具,用于记录和展示训练过程中的各种指标。

设置TensorBoard

import tensorflow as tf# 创建一个日志记录目录
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)# 将回调传递给模型的fit方法
model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val), callbacks=[tensorboard_callback])

启动TensorBoard

在终端运行以下命令启动TensorBoard:

tensorboard --logdir=logs/fit

2. 使用Logging库

Python的Logging库提供了一种灵活的记录日志的方法,可以将训练过程中的信息记录到文件中。

设置Logging:

import logging# 配置Logging
logging.basicConfig(filename='training.log', level=logging.INFO)# 在训练循环中记录信息
for epoch in range(num_epochs):logging.info(f'Epoch {epoch+1}/{num_epochs}')# 记录损失和准确率等指标logging.info(f'Loss: {loss}, Accuracy: {accuracy}')
import logginglogging.basicConfig(level=logging.INFO,format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S')logger = logging.getLogger('example_logger')logger.debug('这是一个调试信息')
logger.info('这是一个信息')
logger.warning('这是一个警告')
logger.error('这是一个错误')
logger.critical('这是一个严重错误')

3. 自定义回调函数

如果使用Keras或PyTorch,可以编写自定义回调函数,记录训练过程中的信息。

Keras自定义回调

class CustomCallback(tf.keras.callbacks.Callback):def on_epoch_end(self, epoch, logs=None):logging.info(f'Epoch {epoch+1}, Loss: {logs["loss"]}, Accuracy: {logs["accuracy"]}')# 使用自定义回调
model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val), callbacks=[CustomCallback()])

PyTorch自定义回调

class TrainLogger:def __init__(self):self.log = []def log_epoch(self, epoch, loss, accuracy):self.log.append((epoch, loss, accuracy))logging.info(f'Epoch {epoch}, Loss: {loss}, Accuracy: {accuracy}')logger = TrainLogger()
for epoch in range(num_epochs):# 模型训练代码logger.log_epoch(epoch, loss, accuracy)

4. 使用WandB或其他第三方工具

WandB (Weights and Biases) 提供了一套完整的训练日志记录和可视化工具,非常适合跟踪实验和协作。

设置WandB

import wandb# 初始化项目
wandb.init(project="my-deep-learning-project")# 在训练过程中记录指标
for epoch in range(num_epochs):# 模型训练代码wandb.log({"epoch": epoch, "loss": loss, "accuracy": accuracy})

5. 记录超参数和实验设置

除了记录训练过程中的指标,还应记录超参数和实验设置,以便后续分析和复现实验。

保存配置文件

# config.yaml
batch_size: 32
learning_rate: 0.001
epochs: 50
model_architecture: "ResNet50"

加载配置文件

import yamlwith open('config.yaml') as f:config = yaml.safe_load(f)# 使用配置进行训练
model = create_model(config['model_architecture'])
http://www.lryc.cn/news/370733.html

相关文章:

  • 深入理解Python中的装饰器
  • 基于springboot的人力资源管理系统源码数据库
  • 如何舒适的使用VScode
  • 【微信小程序】开发环境配置
  • 启动盘镜像制作神器(下载即用)
  • PHP框架详解 - Symfony框架
  • 鸿蒙开发:【线程模型】
  • 初级网络工程师之从入门到入狱(三)
  • 【数据结构】排序(直接插入、折半插入、希尔排序、快排、冒泡、选择、堆排序、归并排序、基数排序)
  • MongoDB ObjectId 详解
  • 大数据-11-案例演习-淘宝双11数据分析与预测 (期末问题)
  • Kubernetes集群监控,kube-prometheus安装教程,一键部署
  • 【Gradio】快速入门
  • 深度学习Day-19:DenseNet算法实战与解析
  • 基于openssl实现AES ECB加解密
  • Git:从配置到合并冲突
  • leetcode hot100 之 最长公共子序列
  • 短剧APP开发,新的“财富”
  • Uniapp与第三方应用数据通讯
  • AI大模型战场:通用大模型与垂直大模型的角逐
  • linux的一些知识点分享-------关于操作维护的一些知识点
  • Python使用tkinter库设置背景图片、label显示位置和label设置显示图片
  • OpenStack是什么?
  • 2024下《系统规划与管理师》50个高频考点汇总!背就有效
  • 软件游戏提示msvcp140.dll丢失的原因分析及解决方法
  • 备战 清华大学 上机编程考试-冲刺前50%,倒数第3天
  • docker的安装及docker常用命令
  • Dell服务器根据GPU温度调整风扇转速
  • 快捷键专栏 IDEA、Navicat、电脑、Excle、Word等
  • 卸载MySQL5.0,安装MySQL8.0