深度学习开发流程

1.全局流程

在这里插入图片描述

2.训练过程

损失函数:用来度量深度学习模型的预测值f(x)与真实标签值Y的差异程度的运算函数,损失函数越小,模型型训练的效果越好。

2.1 深度学习训练主要训练步骤:

  1. 确定模型
  2. 将模型加在到cpu或者gpu中
  3. 确定训练数据
  4. 确定优化器和超参
  5. model.train()
  6. 进入循环,将数据放到设备中
  7. 前向传播:就是将数据放到模型中训练
  8. 梯度清零:防止之前在优化器中存在之前的梯度,对当前的梯度有污染
  9. 计算损失:计算预测值与真实值之间的误差
  10. 反向传播:进行求导操作
  11. 更新参数
  12. 达到最优的结果之后就可以保存模型了

2.2 部分代码

1.定义模型
2.定义优化器和超参
下面进入循环训练模型
model.trian() # 开启训练模式
for i, data in enumerate(train_iter):
		# 数据放到cpu或者gpu中
        train_data = to_device(data, label_emberding)
        # 前向传播:然后将要训练的数据放到模型中训练
        output = model(train_data)
        # 梯度清零:防止数据污染
        optimier.zero_grad()
        # 计算损失
        loss = loss_fn(output, train_data['labelnum'])
        # 反响传播:求导,找到更好的参数
        loss.backward()
        # 更新参数
        optimier.step()
        # 然后下面进入验证操作,根据验证集判断是否要继续进行下一步
        .......
        model.train()# 显示调用trian(),再次回到train状态

3.验证过程

3.1 验证主要步骤:

  1. model.eval
  2. 打开上下文管理器,禁止梯度计算
  3. 将数据加载到device
  4. 正向传播
  5. 汇总结果:因为是一个一个batch训练的,所以需要将所有的结果全部通过相关操作之后,将数据统一保存
  6. 计算评价指标

3.2 部分代码

model.eval()
#  打开上下文管理器,禁止梯度计算
with torch.no_gard()
	for batch in dev_iter:
		# 如果有数据就需要将数据加在到gpu
		data=to_device(batch)
		# 正向传播
		out=model(data)
		汇总所有相关的数据
		.....
# 将所有汇总的结果进行评价指标计算
getscore(results)

4.测试过程

  1. 加载模型
  2. 重复验证的过程
    最终查看评估结果,目的就是为验证模型的训练是否有效

5其他操作

  1. 分别计算每一个epoch训练集的loss和验证集的loss,就可以判断是否过拟合
  2. 计算每一步花了多少时间
  3. 早停机制
  4. 计算验证集的评价指标的一个变化过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值