Note--实验规范流程

--------------------------------------------------------------------------------------------------------------

pytorch模型构建流程

        在我们要用pytorch构建自己的深度学习模型的时候,

        基本上都是下面这个流程步骤,无论是从自己写,还是阅读他人代码,按照这个步骤思想:

1、找数据定义    2、找model定义    3、找损失函数、优化器定义    4、主循环代码逻辑

        直接去找对应的代码块,会简单很多

四大步骤:

        1、输入处理模块 (X 输入数据,变成网络能够处理的Tensor类型)

        2、模型构建模块 (主要负责从输入的数据,得到预测的y^, 这就是我们经常说的前向过程)

        3、定义代价函数和优化器模块 (注意,前向过程只会得到模型预测的结果,并不会自动求导和更新,是由这个模块进行处理)

        4、构建训练过程 (迭代训练过程,就是上图表情包的训练迭代过程)

这几个模块分别与上图的数字标号1,2,3,4进行一一对应!

    

--------------------------------------------------------------------------------------------------------------

  • 机器学习四大分支:监督学习(序列生成、语法树预测、目标检测、图像分割)、

                                非监督学习(其目标在于数据可视化、数据压缩、数据去噪  降维、聚类)、

                                自监督学习、

                                强化学习 (智能体agent接收环境信息,学会选择使奖励最大化)

  • 分类与回归术语:样本/输入、预测/输出、目标:真实值、预测误差/损失值、类别、标签、真值/标注、二分类/多分类、
    多标签分类、标量回归、向量回归、小批量、批量:模型同时处理的一小部分样本。
  • 模型评估:数据划分:训练集、验证集、测试集
    • 打乱数据:简单留出验证、K折验证、带有打乱数据的重复K折验证
    • 注意事项:数据代表性、8:2原则

                                        时间箭头、时序数据不随机打乱

                                        数据冗余、确保训练集和验证集无交集

  • 数据预处理、特征工程、特征学习
    • 数据预处理:
      • 向量化
      • 标准化--对每个特征分别标准化,使其均值为0、标准差为1
      • 处理缺失值
      • 特征提取
    • 特征工程feature engineering---指将数据输入模型之前,利用算法对数据进行硬编码的变换,以改善模型效果。
      本质:用更简单的表达方式表述问题,使得问题变得容易。--对于现代深度学习大部分特征工程是不需要的。
    • 过拟合和欠拟合:降低过拟合的方法--正则化
      • 减少过拟合方法:获取更多的训练数据、减少网络容量、添加权重正则化、添加dropout
        • L1正则化    添加成本与权重系数的绝对值
        • L2正则化/权重衰减    添加成本与权重系数的平方
        • Dropout比率 是被设为0的特征所占的比例

--------------------------------------------------------------------------------------------------------------

keras

        model=models.Sequential( )

        model.add(layers.Dense(16,activation='relu',input_shape=(10000,)))

        model.add(layers.Dropout(0.5))

        model.add(layers.Dense(16,activation='relu'))

        model.add(layers.Dropout(0.5))

        model.add(layers.Dense(1,activation='sigmoid'))

--------------------------------------------------------------------------------------------------------------

  • 开发比基准更好的模型
    • 最后一层的激活--sigmoid/不用
    • 损失函数  分类-binary——crossentropy  回归——mse
    • 优化配置——哪种优化器,学习率多少,使用rmsprop、默认学习率是稳妥的
  • 模型正则化与调节超参数
    • 添加dropout
    • 尝试不同的架构:增加或减少层数
    • 添加L1和L2正则化
    • 尝试不同的超参数——比如每层的单元个数或者优化器的学习率

----------------------------------------------------------------------------------------------------------------

在编译和训练模型钱,一定要冻结卷积基,冻结一个或多个层是指在训练过程中保持其权重不变。

 

 

来自 <https://zhuanlan.zhihu.com/p/149579648?utm_source=wechat_session&utm_medium=social&utm_oi=593877078270152704&utm_content=sec>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值