python打卡day37

@疏锦行

知识点回顾:

  1. 过拟合的判断:测试集和训练集同步打印指标

  2. 模型的保存和加载

a. 仅保存权重

b. 保存权重和模型

c. 保存全部信息checkpoint,还包含训练状态

  1. 早停策略

**作业:**对信贷数据集训练后保存权重,加载权重后继续训练50轮,并采取早停策略

复制代码
# 保存模型权重
torch.save(model.state_dict(), 'credit_model_weights.pth')

# 加载模型权重
model.load_state_dict(torch.load('credit_model_weights.pth'))

# 设置继续训练的轮数
additional_epochs = 50

for epoch in range(additional_epochs):
    # 前向传播
    outputs = model(X_train_tensor)
    loss = criterion(outputs, y_train_tensor)

    # 反向传播和优化
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    if (epoch + 1) % 10 == 0:
        print(f'Epoch [{epoch+1}/{additional_epochs}], Loss: {loss.item():.4f}')

# 保存继续训练后的模型权重
torch.save(model.state_dict(), 'credit_model_weights_continued.pth')
# 早停策略参数
patience = 10  # 容忍验证集损失不下降的最大轮数
best_val_loss = float('inf')
counter = 0

for epoch in range(num_epochs):
    # 训练代码
    model.train()
    outputs = model(X_train_tensor)
    train_loss = criterion(outputs, y_train_tensor)
    optimizer.zero_grad()
    train_loss.backward()
    optimizer.step()

    # 验证代码
    model.eval()
    with torch.no_grad():
        val_outputs = model(X_val_tensor)
        val_loss = criterion(val_outputs, y_val_tensor)

    print(f'Epoch [{epoch+1}/{num_epochs}], Train Loss: {train_loss.item():.4f}, Val Loss: {val_loss.item():.4f}')

    # 早停策略逻辑
    if val_loss < best_val_loss:
        best_val_loss = val_loss
        counter = 0
        # 保存最佳模型权重
        torch.save(model.state_dict(), 'best_credit_model_weights.pth')
    else:
        counter += 1
        if counter >= patience:
            print('Early stopping!')
            break
相关推荐
一ge科研小菜鸡18 分钟前
编程语言的演化与选择:技术浪潮中的理性决策
java·c语言·python
小和尚同志28 分钟前
在 Dify 中使用 DeepWiki 官方提供的 MCP 服务
人工智能·aigc
船长@Quant36 分钟前
Plotly图表全面使用指南 -- Displaying Figures in Python
python·plotly·图表·图形库
only-lucky39 分钟前
vtk和opencv和opengl直接的区别是什么?
人工智能·opencv·计算机视觉
acstdm41 分钟前
DAY 35 模型可视化与推理
人工智能·python
19891 小时前
【Dify精讲】第12章:性能优化策略与实践
人工智能·python·深度学习·性能优化·架构·flask·ai编程
华子w9089258591 小时前
基于 Python Web 应用框架 Django 的在线小说阅读平台设计与实现
前端·python·django
金融小师妹1 小时前
基于LSTM-GARCH混合模型的“获利了结”量化解析:黄金单日1.27%跌幅的技术性归因
大数据·人工智能·算法
jndingxin1 小时前
OpenCV CUDA模块设备层-----GPU上执行线程安全的 “原子取最大值” 操作函数
人工智能·opencv·计算机视觉
烛阴2 小时前
让你的Python并发飞起来:多线程开发实用技巧大全
前端·python