欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch中的廣播語義

 更新時(shí)間:2022年03月09日 11:40:14   作者:機(jī)器學(xué)習(xí)入坑者  
這篇文章主要介紹了pytorch中的廣播語義,pytorch的廣播語義即broadcasting semantics,和numpy的很像,下面文章介紹更多相關(guān)內(nèi)容的介紹,需要的小伙伴可以參考一下

pytorch的廣播語義(broadcasting semantics),和numpy的很像,所以可以先看看numpy的文檔

1、什么是廣播語義?

官方文檔有這樣一個(gè)解釋:

In short, if a PyTorch operation supports broadcast, then its Tensor arguments can be automatically expanded to be of equal sizes (without making copies of the data).

這句話的意思大概是:簡單的說,如果一個(gè)pytorch操作支持廣播,那么它的Tensor參數(shù)可以自動(dòng)的擴(kuò)展為相同的尺寸(不需要復(fù)制數(shù)據(jù))。

按照我的理解,應(yīng)該是指算法計(jì)算過程中,不同的Tensor如果size不同,但是符合一定的規(guī)則,那么可以自動(dòng)的進(jìn)行維度擴(kuò)展,來實(shí)現(xiàn)Tensor的計(jì)算。在維度擴(kuò)展的過程中,并不是真的把維度小的Tensor復(fù)制為和維度大的Tensor相同,因?yàn)檫@樣太浪費(fèi)內(nèi)存了。

2、廣播語義的規(guī)則

首先來看標(biāo)準(zhǔn)的情況,兩個(gè)Tensor的size相同,則可以直接計(jì)算:

x = torch.empty((4, 2, 3))
y = torch.empty((4, 2, 3))?
print((x+y).size())?

輸出:

torch.Size([4, 2, 3]) 

但是,如果兩個(gè)Tensor的維度并不相同,pytorch也是可以根據(jù)下面的兩個(gè)法則進(jìn)行計(jì)算:

  • (1)Each tensor has at least one dimension.
  • (2)When iterating over the dimension sizes, starting at the trailing dimension, the dimension sizes must either be equal, one of them is 1, or one of them does not exist.
  • 每個(gè)Tensor至少有一個(gè)維度。
  • 迭代標(biāo)注尺寸時(shí),從后面的標(biāo)注開始

第一個(gè)規(guī)則要求每個(gè)參與計(jì)算的Tensor至少有一個(gè)維度,第二個(gè)規(guī)則是指在維度迭代時(shí),從最后一個(gè)維度開始,可以有三種情況:

  • 維度相等
  • 其中一個(gè)維度是1
  • 其中一個(gè)維度不存在

3、不符合廣播語義的例子

x = torch.empty((0, ))
y = torch.empty((2, 3))?
print((x + y).size())

輸出:

RuntimeError: The size of tensor a (0) must match  the size of tensor b (3) at non-singleton dimension 1 

這里,不滿足第一個(gè)規(guī)則“每個(gè)參與計(jì)算的Tensor至少有一個(gè)維度”。

x = torch.empty(5, 2, 4, 1)?
y = torch.empty(3, 1, 1)?
print((x + y).size())

輸出:

RuntimeError: The size of tensor a (2) must match 
the size of tensor b (3) at non-singleton dimension 1 

這里,不滿足第二個(gè)規(guī)則,因?yàn)閺淖詈蟮木S度開始迭代的過程中,倒數(shù)第三個(gè)維度:x是2,y是3。這并不符合第二條規(guī)則的三種情況,所以不能使用廣播語義。

4、符合廣播語義的例子

x = torch.empty(5, 3, 4, 1)?
y = torch.empty(3, 1, 1)?
print((x + y).size())?

輸出:

torch.Size([5, 3, 4, 1]) 

x是四維的,y是三維的,從最后一個(gè)維度開始迭代:

  • 最后一維:x是1,y是1,滿足規(guī)則二 
  • 倒數(shù)第二維:x是4,y是1,滿足規(guī)則二 
  • 倒數(shù)第三維:x是3,y是3,滿足規(guī)則一
  • 倒數(shù)第四維:x是5,y是0,滿足規(guī)則一 

 到此這篇關(guān)于pytorch中的廣播語義的文章就介紹到這了,更多相關(guān)pytorch廣播語義內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python進(jìn)階之自定義對(duì)象實(shí)現(xiàn)切片功能

    Python進(jìn)階之自定義對(duì)象實(shí)現(xiàn)切片功能

    這篇文章主要介紹了Python進(jìn)階之自定義對(duì)象實(shí)現(xiàn)切片功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 利用Python求陰影部分的面積實(shí)例代碼

    利用Python求陰影部分的面積實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于利用Python求陰影部分面積的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • python?peewee操作sqlite鎖表的問題分析

    python?peewee操作sqlite鎖表的問題分析

    Peewee是一種簡單而小的ORM,在使用python?orm?框架?peewee?操作數(shù)據(jù)庫時(shí)時(shí)常會(huì)拋出以一個(gè)異常,下面我們就來分享一下具體的原因以及解決辦法吧
    2023-08-08
  • Python氣泡提示與標(biāo)簽的實(shí)現(xiàn)

    Python氣泡提示與標(biāo)簽的實(shí)現(xiàn)

    這篇文章主要介紹了Python氣泡提示與標(biāo)簽的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python爬蟲設(shè)置代理IP(圖文)

    Python爬蟲設(shè)置代理IP(圖文)

    在本篇內(nèi)容里小編給大家分享了關(guān)于Python爬蟲設(shè)置代理IP的相關(guān)知識(shí)點(diǎn)和步驟,需要的朋友們參考下。
    2018-12-12
  • 詳解python數(shù)據(jù)結(jié)構(gòu)之隊(duì)列Queue

    詳解python數(shù)據(jù)結(jié)構(gòu)之隊(duì)列Queue

    這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之隊(duì)列Queue,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python?Flask?+?Redis?程序練習(xí)

    Python?Flask?+?Redis?程序練習(xí)

    這篇文章主要給大家分享Python?Flask?+?Redis?程序的練習(xí),準(zhǔn)備一個(gè)Python文件,名字為?app.py?提供一個(gè)web服務(wù),可以訪問地址,返回一個(gè)Hello?Container?World!并且記錄訪問的次數(shù),下面來看看有趣的練習(xí)過程吧
    2022-01-01
  • 使用python實(shí)現(xiàn)baidu hi自動(dòng)登錄的代碼

    使用python實(shí)現(xiàn)baidu hi自動(dòng)登錄的代碼

    使用python自動(dòng)登錄baidu hi的代碼,有需要的朋友可以參考下
    2013-02-02
  • Python實(shí)現(xiàn)簡單的文件傳輸與MySQL備份的腳本分享

    Python實(shí)現(xiàn)簡單的文件傳輸與MySQL備份的腳本分享

    這篇文章主要介紹了Python實(shí)現(xiàn)簡單的文件傳輸與MySQL備份的腳本分享,用到了socket與tarfile模塊,需要的朋友可以參考下
    2016-01-01
  • Python實(shí)現(xiàn)自動(dòng)駕駛訓(xùn)練模型

    Python實(shí)現(xiàn)自動(dòng)駕駛訓(xùn)練模型

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)自動(dòng)駕駛訓(xùn)練模型,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評(píng)論