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

国外教做蛋糕的网站国外网站排名前十

国外教做蛋糕的网站,国外网站排名前十,大竹网站建设,做网站需要学些什么条件早停法(Early Stopping)是一种用于防止模型过拟合的技术,在训练过程中监视验证集(或者测试集)上的损失值。具体设立早停的限制包括两个主要参数: Patience(耐心):这是指验…

早停法(Early Stopping)是一种用于防止模型过拟合的技术,在训练过程中监视验证集(或者测试集)上的损失值。具体设立早停的限制包括两个主要参数:

  1. Patience(耐心):这是指验证集损失在连续多少个epoch没有显著改善时,才触发早停。当验证集损失连续几个epoch没有下降或者停止减少时,表示模型可能已经过拟合或者陷入局部最优点,这时候早停就会被触发。

  2. Best Loss(最佳损失):这是指在早停过程中保存的最低验证集损失值。当验证集损失值低于当前最佳损失时,更新最佳损失并重置耐心计数器。如果验证集损失连续不降,耐心计数器超过设定的耐心值时,早停就会被触发,训练过程停止。

    早停的具体设立是基于验证集上的损失值 val_loss。每次验证后,如果当前的 val_lossbest_loss 还要低,就更新 best_loss 并重置 patience_counter;否则,增加 patience_counter。当 patience_counter 达到设定的 patience 值时,早停被触发,即停止训练过程以防止模型过拟合。

    总结来说,早停的设立限制是基于耐心参数和最佳损失值,用来判断模型是否应该停止训练以避免过拟合。

# 训练模型
num_epochs = 200  # 总的训练轮数
best_loss = float('inf')  # 初始化最佳验证损失为正无穷大
patience = 10  # 早停的耐心值
patience_counter = 0  # 耐心计数器for epoch in range(num_epochs):model.train()for geno, pheno in train_loader:optimizer.zero_grad()  # 梯度清零outputs = model(geno)  # 前向传播loss = criterion(outputs.squeeze(), pheno)  # 计算损失loss.backward()  # 反向传播optimizer.step()  # 优化模型参数model.eval()val_loss = 0with torch.no_grad():  # 不计算梯度for geno, pheno in test_loader:outputs = model(geno)  # 前向传播val_loss += criterion(outputs.squeeze(), pheno).item()  # 计算验证损失val_loss /= len(test_loader)  # 计算平均验证损失print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}, Val Loss: {val_loss:.4f}')scheduler.step(val_loss)  # 更新学习率# 早停法if val_loss < best_loss:best_loss = val_loss  # 更新最佳验证损失patience_counter = 0  # 重置耐心计数器else:patience_counter += 1  # 增加耐心计数器if patience_counter >= patience:  # 如果耐心计数器达到设定的耐心值print("Early stopping triggered")  # 触发早停break
  1. EarlyStopping
    • __init__ 方法初始化早停的参数,如 patience(耐心值)、verbose(是否打印消息)和 delta(损失改进的最小变化)。
    • __call__ 方法根据验证损失来决定是否更新 best_loss,以及是否增加计数器或者触发早停。
  2. 训练循环
    • 训练和验证过程与之前相同。
    • 每个epoch结束时,调用 early_stopping 对象,传入当前的验证损失。
    • 检查 early_stopping.early_stop 标志,如果为 True,则打印消息并停止训练。

通过使用 EarlyStopping 类,你可以更简洁和模块化地实现早停功能,使代码更易于维护和扩展。

import torch
import numpy as npclass EarlyStopping:def __init__(self, patience=10, verbose=False, delta=0):"""EarlyStopping 初始化.Args:patience (int): 当验证集损失在指定的epoch数内没有减少时触发早停.verbose (bool): 如果为True,则每次验证集损失改进时会打印一条消息.delta (float): 验证集损失改进的最小变化."""self.patience = patienceself.verbose = verboseself.delta = deltaself.best_loss = Noneself.counter = 0self.early_stop = Falsedef __call__(self, val_loss):if self.best_loss is None:self.best_loss = val_losselif val_loss > self.best_loss - self.delta:self.counter += 1if self.verbose:print(f'EarlyStopping counter: {self.counter} out of {self.patience}')if self.counter >= self.patience:self.early_stop = Trueelse:self.best_loss = val_lossself.counter = 0if self.verbose:print(f'Validation loss decreased to {self.best_loss:.6f}. Resetting counter.')# 初始化EarlyStopping对象
early_stopping = EarlyStopping(patience=10, verbose=True)# 训练模型
num_epochs = 200
for epoch in range(num_epochs):model.train()for geno, pheno in train_loader:optimizer.zero_grad()outputs = model(geno)loss = criterion(outputs.squeeze(), pheno)loss.backward()optimizer.step()model.eval()val_loss = 0with torch.no_grad():for geno, pheno in test_loader:outputs = model(geno)val_loss += criterion(outputs.squeeze(), pheno).item()val_loss /= len(test_loader)print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}, Val Loss: {val_loss:.4f}')scheduler.step(val_loss)# 检查是否触发早停early_stopping(val_loss)if early_stopping.early_stop:print("Early stopping triggered")break

 

 

http://www.dinnco.com/news/79560.html

相关文章:

  • 哪里可以做网站平台百度平台商家联系方式
  • 网乐科技网站建设网站一级域名和二级域名
  • 网络规划设计师含金量高吗深圳市seo上词贵不贵
  • 网站建设哪个软件好深圳设计公司
  • 大连做网站首选领超科技关键词免费网站
  • 商品网站怎么做网站规划与设计
  • 哪个网站可以查企业信息营销型网站建设优化建站
  • 网站怎么做市场分析百度搜索推广的五大优势
  • 在什么网站做推广最好专业精准网络营销推广
  • 山东省春季高考网站建设试题广州新闻头条最新消息
  • 寮步网站建设高性能怎么写软文推广
  • 校园网站建设申请报告网站托管维护
  • 淮安做网站.哪家网络公司好?如何能查到百度搜索排名
  • 石家庄网站建设销售电话保定网站建设方案优化
  • 路桥贝斯特做网站好吗最新社会舆情信息
  • 网站设计怎么做好手机优化助手下载
  • 长沙营销型网站开发app推广注册放单平台
  • 学做彩票网站有哪些百度最新收录方法
  • wordpress 极验企业网站seo推广方案
  • 自己做个网站多少钱南昌百度搜索排名优化
  • 教育 wordpress模板下载地址seo诊断优化专家
  • 绍兴网站专业制作网站页面排名优化
  • 网站建设宣传图ps德阳seo优化
  • 网站屏幕自适应杭州小程序建设公司
  • 网站蜘蛛爬行统计长沙疫情最新消息今天封城了
  • 毕业设计代做网站靠谱吗网站搭建一般要多少钱
  • 怎么将自己做的网站发到网上去aso投放平台
  • 计算机网站建设 是什么意思怎么做外链
  • 怎么可以自己做网站app运营方案
  • 买个网站域名要多少钱外贸接单十大网站