栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

深度学习第14天

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

深度学习第14天

pytorch序列化容器
  1. nn.Sequential

    nn.Sequential是一个有序的容器,其中传入的是构造器类(各种用来处理input的类),最终input会被Sequential中的构造器类依次执行

    例如:

    layer = nn.Sequential(
        nn.Linear(input,hidden_1)
        nn.ReLU(True) #inplace=False 是否对输入进行就地修改,默认为False
        nn.Linear(hidden_1,hidden_2)
        nn.ReLU(True)
        nn.Linear(hidden_2,output)
    )
    

    在上述结构中,可以直接调用layer(x),得到输出。x的被执行顺序就是Sequential中定义的顺序

  2. nn.BatchNorm1d

    batch normalization 即批规范化,是指在每个batch训练的过程中,对参数进行归一化的处理,从而达到加快训练速度的效果

    以sigmoid激活函数为例,他在反向传播的过程中,在值为0,1的时候,梯度接近0,导致参数被更新的幅度很小,训练速度满,但是如果对数据进行归一化之后,就会尽可能的报数据拉到[0-1]的范围,从而让参数更新的幅度变大,提高训练的速度

    batchNorm一般会放到激活函数之后,即对输入进行激活处理之后在进入batchNorm

    layer = nn.Sequential(
        nn.Linear(input,hidden_1)
        nn.ReLU(True) #inplace=False 是否对输入进行就地修改,默认为False
        nn.BatchNorm1d(hidden_1)
        
        nn.Linear(hidden_1,hidden_2)
        nn.ReLU(True)
        nn.BatchNorm1d(hidden_2)
        
        nn.Linear(hidden_2,output)
        
    )
    
  3. nn.Dropout

    dropout可以理解为对参数的随即失活
    (1)增加模型的稳健性
    (2)可以解决过拟合的问题(增加模型的泛化能力)
    (3)可以列结尾训练后的模型是多个模型的组合之后的结果,类似随机森林

    layer = nn.Sequential(
        nn.Linear(input,hidden_1)
        nn.ReLU(True) #inplace=False 是否对输入进行就地修改,默认为False
        nn.BatchNorm1d(hidden_1)
        nn.Dropout(0.3)
    
        nn.Linear(hidden_1,hidden_2)
        nn.ReLU(True)
        nn.BatchNorm1d(hidden_2)
        nn.Dropout(0.3)
    
        nn.Linear(hidden_2,output)
    )
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号