python pytorch中.view()函數(shù)的用法解讀
python pytorch中.view()函數(shù)
在使用pytorch定義神經(jīng)網(wǎng)絡(luò)時(shí),經(jīng)常會(huì)看到類似如下的.view()用法,這里對(duì)其用法做出講解與演示。
普通用法 (手動(dòng)調(diào)整size)
view()相當(dāng)于reshape、resize,重新調(diào)整Tensor的形狀。
import torch a1 = torch.arange(0,16) print(a1)
tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
a2 = a1.view(8, 2) a3 = a1.view(2, 8) a4 = a1.view(4, 4) print(a2) print(a3) print(a4)
tensor([[ 0, 1], [ 2, 3], [ 4, 5], [ 6, 7], [ 8, 9], [10, 11], [12, 13], [14, 15]]) tensor([[ 0, 1, 2, 3, 4, 5, 6, 7], [ 8, 9, 10, 11, 12, 13, 14, 15]]) tensor([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]])
特殊用法:參數(shù)-1 (自動(dòng)調(diào)整size)
view中一個(gè)參數(shù)定為-1,代表自動(dòng)調(diào)整這個(gè)維度上的元素個(gè)數(shù),以保證元素的總數(shù)不變。
import torch a1 = torch.arange(0,16) print(a1)
tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
a2 = a1.view(-1, 16) a3 = a1.view(-1, 8) a4 = a1.view(-1, 4) a5 = a1.view(-1, 2) a6 = a1.view(4*4, -1) a7 = a1.view(1*4, -1) a8 = a1.view(2*4, -1) print(a2) print(a3) print(a4) print(a5) print(a6) print(a7) print(a8)
tensor([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]]) tensor([[ 0, 1, 2, 3, 4, 5, 6, 7], [ 8, 9, 10, 11, 12, 13, 14, 15]]) tensor([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) tensor([[ 0, 1], [ 2, 3], [ 4, 5], [ 6, 7], [ 8, 9], [10, 11], [12, 13], [14, 15]]) tensor([[ 0], [ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10], [11], [12], [13], [14], [15]]) tensor([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) tensor([[ 0, 1], [ 2, 3], [ 4, 5], [ 6, 7], [ 8, 9], [10, 11], [12, 13], [14, 15]])
python中view()函數(shù)怎么用
初學(xué)者在使用pytorch框架定義神經(jīng)網(wǎng)絡(luò)時(shí),經(jīng)常會(huì)在代碼中看到:
這樣的用法。
view()的作用相當(dāng)于numpy中的reshape,重新定義矩陣的形狀。
例1 普通用法:
import torch v1 = torch.range(1, 16) v2 = v1.view(4, 4)
其中v1為1*16大小的張量,包含16個(gè)元素。v2為4*4大小的張量,同樣包含16個(gè)元素。注意view前后的元素個(gè)數(shù)要相同,不然會(huì)報(bào)錯(cuò)。
例2 參數(shù)使用-1
import torch v1 = torch.range(1, 16) v2 = v1.view(-1, 4)
和圖例中的用法一樣,view中一個(gè)參數(shù)定為-1,代表動(dòng)態(tài)調(diào)整這個(gè)維度上的元素個(gè)數(shù),以保證元素的總數(shù)不變。因此兩個(gè)例子的結(jié)果是相同的。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python爬蟲原理與基本請(qǐng)求庫(kù)urllib詳解
這篇文章主要介紹了Python爬蟲原理與基本請(qǐng)求庫(kù)urllib詳解,爬蟲就是通過模擬瀏覽器,按照一定的規(guī)則,自動(dòng)、大批量的獲取網(wǎng)絡(luò)資源,包括文本、圖片、鏈接、音頻、視頻等等,需要的朋友可以參考下2023-07-07Python之Scrapy爬蟲框架安裝及簡(jiǎn)單使用詳解
這篇文章主要介紹了Python之Scrapy爬蟲框架安裝及簡(jiǎn)單使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Python的dict字典結(jié)構(gòu)操作方法學(xué)習(xí)筆記
這篇文章主要介紹了Python的dict字典結(jié)構(gòu)操作方法學(xué)習(xí)筆記本,字典的操作是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-05-05python列表推導(dǎo)式入門學(xué)習(xí)解析
這篇文章主要介紹了python列表推導(dǎo)式入門學(xué)習(xí)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解
今天小編就為大家分享一篇Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python操作多維數(shù)組輸出和矩陣運(yùn)算示例
這篇文章主要介紹了Python操作多維數(shù)組輸出和矩陣運(yùn)算,結(jié)合實(shí)例形式分析了Python多維數(shù)組的生成、打印輸出及矩陣運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-11-11Python實(shí)現(xiàn)遺傳算法(二進(jìn)制編碼)求函數(shù)最優(yōu)值方式
今天小編就為大家分享一篇Python實(shí)現(xiàn)遺傳算法(二進(jìn)制編碼)求函數(shù)最優(yōu)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02