最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python PyTorch參數(shù)初始化和Finetune

 更新時(shí)間:2018年02月11日 09:36:37   作者:ycszen  
這篇文章主要介紹了python PyTorch參數(shù)初始化和Finetune,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

前言

這篇文章算是論壇PyTorch Forums關(guān)于參數(shù)初始化和finetune的總結(jié),也是我在寫代碼中用的算是“最佳實(shí)踐”吧。最后希望大家沒事多逛逛論壇,有很多高質(zhì)量的回答。

參數(shù)初始化

參數(shù)的初始化其實(shí)就是對(duì)參數(shù)賦值。而我們需要學(xué)習(xí)的參數(shù)其實(shí)都是Variable,它其實(shí)是對(duì)Tensor的封裝,同時(shí)提供了data,grad等借口,這就意味著我們可以直接對(duì)這些參數(shù)進(jìn)行操作賦值了。這就是PyTorch簡潔高效所在。

所以我們可以進(jìn)行如下操作進(jìn)行初始化,當(dāng)然其實(shí)有其他的方法,但是這種方法是PyTorch作者所推崇的:

def weight_init(m):
# 使用isinstance來判斷m屬于什么類型
  if isinstance(m, nn.Conv2d):
    n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
    m.weight.data.normal_(0, math.sqrt(2. / n))
  elif isinstance(m, nn.BatchNorm2d):
# m中的weight,bias其實(shí)都是Variable,為了能學(xué)習(xí)參數(shù)以及后向傳播
    m.weight.data.fill_(1)
    m.bias.data.zero_()

Finetune

往往在加載了預(yù)訓(xùn)練模型的參數(shù)之后,我們需要finetune模型,可以使用不同的方式finetune。

局部微調(diào)

有時(shí)候我們加載了訓(xùn)練模型后,只想調(diào)節(jié)最后的幾層,其他層不訓(xùn)練。其實(shí)不訓(xùn)練也就意味著不進(jìn)行梯度計(jì)算,PyTorch中提供的requires_grad使得對(duì)訓(xùn)練的控制變得非常簡單。

model = torchvision.models.resnet18(pretrained=True)
for param in model.parameters():
  param.requires_grad = False
# 替換最后的全連接層, 改為訓(xùn)練100類
# 新構(gòu)造的模塊的參數(shù)默認(rèn)requires_grad為True
model.fc = nn.Linear(512, 100)

# 只優(yōu)化最后的分類層
optimizer = optim.SGD(model.fc.parameters(), lr=1e-2, momentum=0.9)

全局微調(diào)

有時(shí)候我們需要對(duì)全局都進(jìn)行finetune,只不過我們希望改換過的層和其他層的學(xué)習(xí)速率不一樣,這時(shí)候我們可以把其他層和新層在optimizer中單獨(dú)賦予不同的學(xué)習(xí)速率。比如:

ignored_params = list(map(id, model.fc.parameters()))
base_params = filter(lambda p: id(p) not in ignored_params,
           model.parameters())

optimizer = torch.optim.SGD([
      {'params': base_params},
      {'params': model.fc.parameters(), 'lr': 1e-3}
      ], lr=1e-2, momentum=0.9)

其中base_params使用1e-3來訓(xùn)練,model.fc.parameters使用1e-2來訓(xùn)練,momentum是二者共有的。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中根據(jù)字符串調(diào)用函數(shù)的實(shí)現(xiàn)方法

    python中根據(jù)字符串調(diào)用函數(shù)的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猵ython中根據(jù)字符串調(diào)用函數(shù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧
    2016-06-06
  • python 創(chuàng)建彈出式菜單的實(shí)現(xiàn)代碼

    python 創(chuàng)建彈出式菜單的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python 創(chuàng)建彈出式菜單的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Pandas對(duì)DataFrame單列/多列進(jìn)行運(yùn)算(map, apply, transform, agg)

    Pandas對(duì)DataFrame單列/多列進(jìn)行運(yùn)算(map, apply, transform, agg)

    這篇文章主要介紹了Pandas對(duì)DataFrame單列/多列進(jìn)行運(yùn)算(map, apply, transform, agg),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python常用內(nèi)置函數(shù)總結(jié)

    Python常用內(nèi)置函數(shù)總結(jié)

    這篇文章主要介紹了Python常用內(nèi)置函數(shù)總結(jié),本文羅列了數(shù)學(xué)相關(guān) 、功能相關(guān)、類型轉(zhuǎn)換、字符串處理、序列處理函數(shù)等常用內(nèi)置函數(shù),需要的朋友可以參考下
    2015-02-02
  • Python集合的增刪改查操作

    Python集合的增刪改查操作

    這篇文章主要介紹了Python集合的增刪改查操作,其增刪改查操作要看集合的類型來決定,不可變的數(shù)據(jù)當(dāng)然不能增刪改,只能查詢,可變集合則限制稍微少點(diǎn)。下面和小編一起進(jìn)放入文章了解更多相關(guān)內(nèi)容吧
    2022-03-03
  • 詳解opencv Python特征檢測(cè)及K-最近鄰匹配

    詳解opencv Python特征檢測(cè)及K-最近鄰匹配

    這篇文章主要介紹了詳解opencv Python特征檢測(cè)及K-最近鄰匹配,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Python進(jìn)行中文繁簡轉(zhuǎn)換的實(shí)現(xiàn)代碼

    使用Python進(jìn)行中文繁簡轉(zhuǎn)換的實(shí)現(xiàn)代碼

    這篇文章主要介紹了使用Python進(jìn)行中文繁簡轉(zhuǎn)換的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python中字符串String的基本內(nèi)置函數(shù)與過濾字符模塊函數(shù)的基本用法

    Python中字符串String的基本內(nèi)置函數(shù)與過濾字符模塊函數(shù)的基本用法

    這篇文章主要介紹了Python中字符串String的基本內(nèi)置函數(shù)與過濾字符模塊函數(shù)的基本用法 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Python中的defaultdict模塊和namedtuple模塊的簡單入門指南

    Python中的defaultdict模塊和namedtuple模塊的簡單入門指南

    這篇文章主要介紹了Python中的defaultdict模塊和namedtuple模塊的簡單入門指南,efaultdict繼承自dict、namedtuple繼承自tuple,是Python中內(nèi)置的數(shù)據(jù)類型,需要的朋友可以參考下
    2015-04-04
  • Python通過遞歸獲取目錄下指定文件代碼實(shí)例

    Python通過遞歸獲取目錄下指定文件代碼實(shí)例

    這篇文章主要介紹了python通過遞歸獲取目錄下指定文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論

新昌县| 盐津县| 郁南县| 肥乡县| 专栏| 资兴市| 阿尔山市| 临夏县| 泉州市| 南华县| 中阳县| 竹溪县| 冕宁县| 曲松县| 离岛区| 哈密市| 黑河市| 平果县| 贺州市| 北碚区| 昭通市| 眉山市| 五河县| 庆云县| 鄯善县| 澄城县| 昭平县| 延边| 彰化县| 海晏县| 临湘市| 乌鲁木齐县| 丹寨县| 体育| 高青县| 宁河县| 大余县| 张掖市| 海林市| 绿春县| 前郭尔|