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

PyTorch之nn.ReLU與F.ReLU的區(qū)別介紹

 更新時(shí)間:2020年06月27日 11:28:57   作者:鵲踏枝-碼農(nóng)  
這篇文章主要介紹了PyTorch之nn.ReLU與F.ReLU的區(qū)別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

import torch.nn as nn
import torch.nn.functional as F
import torch.nn as nn
 
class AlexNet_1(nn.Module):
 
  def __init__(self, num_classes=n):
    super(AlexNet, self).__init__()
    self.features = nn.Sequential(
      nn.Conv2d(3, 64, kernel_size=3, stride=2, padding=1),
      nn.BatchNorm2d(64),
      nn.ReLU(inplace=True),
     )
 
  def forward(self, x):
    x = self.features(x)
 
class AlexNet_2(nn.Module):
 
  def __init__(self, num_classes=n):
    super(AlexNet, self).__init__()
    self.features = nn.Sequential(
      nn.Conv2d(3, 64, kernel_size=3, stride=2, padding=1),
      nn.BatchNorm2d(64),
     )
 
  def forward(self, x):
    x = self.features(x)
    x = F.ReLU(x)

在如上網(wǎng)絡(luò)中,AlexNet_1與AlexNet_2實(shí)現(xiàn)的結(jié)果是一致的,但是可以看到將ReLU層添加到網(wǎng)絡(luò)有兩種不同的實(shí)現(xiàn),即nn.ReLU和F.ReLU兩種實(shí)現(xiàn)方法。

其中nn.ReLU作為一個(gè)層結(jié)構(gòu),必須添加到nn.Module容器中才能使用,而F.ReLU則作為一個(gè)函數(shù)調(diào)用,看上去作為一個(gè)函數(shù)調(diào)用更方便更簡(jiǎn)潔。具體使用哪種方式,取決于編程風(fēng)格。

在PyTorch中,nn.X都有對(duì)應(yīng)的函數(shù)版本F.X,但是并不是所有的F.X均可以用于forward或其它代碼段中,因?yàn)楫?dāng)網(wǎng)絡(luò)模型訓(xùn)練完畢時(shí),在存儲(chǔ)model時(shí),在forward中的F.X函數(shù)中的參數(shù)是無(wú)法保存的。

也就是說(shuō),在forward中,使用的F.X函數(shù)一般均沒(méi)有狀態(tài)參數(shù),比如F.ReLU,F(xiàn).avg_pool2d等,均沒(méi)有參數(shù),它們可以用在任何代碼片段中。

補(bǔ)充知識(shí):pytorch小知識(shí)點(diǎn)——in-place operation

一、什么是in-place

在pytorch的很多函數(shù)中經(jīng)??吹絠n-place選項(xiàng),具體是什么意思一直一知半解。這次專門(mén)來(lái)學(xué)習(xí)一下,in-place operation在pytorch中是指改變一個(gè)tensor的值的時(shí)候,不經(jīng)過(guò)復(fù)制操作,而是直接在原來(lái)的內(nèi)存上改變它的值??梢园阉Q為原地操作符。

在pytorch中經(jīng)常加后綴“_”來(lái)代表原地in-place operation,比如說(shuō).add_() 或者.scatter()。我們可以將in_place操作簡(jiǎn)單的理解類似于python中的"+=","-="等操作。

舉個(gè)例子,下面是正常的加操作,執(zhí)行結(jié)束后x的值沒(méi)有變化

import torch
x = torch.rand(2)
x
Out[3]: tensor([0.3486, 0.2924])  #<-----這是x初始值
 
y = torch.rand(2)
y
Out[5]: tensor([0.6301, 0.0101])  #<-----這是y初始值
x.add(y)
Out[6]: tensor([0.9788, 0.3026])   #<-----這是x+y的結(jié)果
x
Out[7]: tensor([0.3486, 0.2924])  #<-----這是執(zhí)行操作之后x的值
y
Out[8]: tensor([0.6301, 0.0101])   #<-----這是執(zhí)行操作之后y的值

我們可以發(fā)現(xiàn),在正常操作之后原操作數(shù)的值不會(huì)發(fā)生變化。

下面我們來(lái)看看in_place操作

import torch
x = torch.rand(2)
x
Out[3]: tensor([0.3486, 0.2924])  #<-----這是x初始值
y = torch.rand(2)
y
Out[5]: tensor([0.6301, 0.0101])  #<-----這是y初始值
x.add_(y)
Out[9]: tensor([0.9788, 0.3026])  #<-----這是x+y結(jié)果
x
Out[10]: tensor([0.9788, 0.3026]) #<-----這是操作后x的值
y
Out[11]: tensor([0.6301, 0.0101])  #<-----這是操作后y的值

通過(guò)對(duì)比可以發(fā)現(xiàn),in_place操作之后,原操作數(shù)等于表達(dá)式計(jì)算結(jié)果。也就是說(shuō)將計(jì)算結(jié)果賦給了原操作數(shù)。

二、不能使用in-place的情況

對(duì)于 requires_grad=True 的 葉子張量(leaf tensor) 不能使用 inplace operation

對(duì)于在 求梯度階段需要用到的張量 不能使用 inplace operation

以上這篇PyTorch之nn.ReLU與F.ReLU的區(qū)別介紹就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python Requests爬蟲(chóng)之求取關(guān)鍵詞頁(yè)面詳解

    Python Requests爬蟲(chóng)之求取關(guān)鍵詞頁(yè)面詳解

    這篇文章主要為大家詳細(xì)介紹了Python Requests爬蟲(chóng)之求取關(guān)鍵詞頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • django框架實(shí)現(xiàn)模板中獲取request 的各種信息示例

    django框架實(shí)現(xiàn)模板中獲取request 的各種信息示例

    這篇文章主要介紹了django框架實(shí)現(xiàn)模板中獲取request 的各種信息,結(jié)合實(shí)例形式分析了Django框架模板直接獲取request信息的相關(guān)配置與操作技巧,需要的朋友可以參考下
    2019-07-07
  • 淺談Python模塊導(dǎo)入規(guī)范

    淺談Python模塊導(dǎo)入規(guī)范

    這篇文章主要介紹了淺談Python模塊導(dǎo)入規(guī)范,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • pandas中concat函數(shù)實(shí)現(xiàn)橫向連接

    pandas中concat函數(shù)實(shí)現(xiàn)橫向連接

    在pandas中,concat函數(shù)可用于合并不同的Series和DataFrame對(duì)象,本文主要介紹了pandas中concat函數(shù)實(shí)現(xiàn)橫向連接,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • python中os.stat().st_size、os.path.getsize()獲取文件大小

    python中os.stat().st_size、os.path.getsize()獲取文件大小

    本文介紹了使用os.stat()和os.path.getsize()函數(shù)獲取文件大小,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 在pycharm下設(shè)置自己的個(gè)性模版方法

    在pycharm下設(shè)置自己的個(gè)性模版方法

    今天小編就為大家分享一篇在pycharm下設(shè)置自己的個(gè)性模版方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python解釋器安裝教程的方法步驟

    python解釋器安裝教程的方法步驟

    這篇文章主要介紹了python解釋器安裝教程的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 簡(jiǎn)單上手Python中裝飾器的使用

    簡(jiǎn)單上手Python中裝飾器的使用

    這篇文章主要介紹了Python中裝飾器的使用,是Python進(jìn)階學(xué)習(xí)中的重要知識(shí),需要的朋友可以參考下
    2015-07-07
  • python中的hashlib和base64加密模塊使用實(shí)例

    python中的hashlib和base64加密模塊使用實(shí)例

    這篇文章主要介紹了python中的hashlib和base64加密模塊使用實(shí)例,hashlib模塊支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512,需要的朋友可以參考下
    2014-09-09
  • 使用keras時(shí)input_shape的維度表示問(wèn)題說(shuō)明

    使用keras時(shí)input_shape的維度表示問(wèn)題說(shuō)明

    這篇文章主要介紹了使用keras時(shí)input_shape的維度表示問(wèn)題說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論

庆元县| 呈贡县| 夹江县| 贵德县| 盘山县| 高州市| 启东市| 四川省| 安阳县| 墨江| 获嘉县| 广水市| 达拉特旗| 大渡口区| 民和| 岳普湖县| 长垣县| 英德市| 博罗县| 安福县| 宜丰县| 阿巴嘎旗| 宜都市| 阿拉善左旗| 八宿县| 屏东市| 五原县| 政和县| 彭山县| 望江县| 廊坊市| 容城县| 孝感市| 徐水县| 商丘市| 读书| 泸西县| 鄱阳县| 柏乡县| 安达市| 丹寨县|