PyTorch中flatten()?函數(shù)的用法實(shí)例小結(jié)
一. 用法
Flatten層主要是用來(lái)將輸入“壓平”,即把多維的輸入一維化,用在卷積層到全連接層的過(guò)渡。其不會(huì)影響batch的大小,可以理解為把高緯度的數(shù)組按照x軸或者y軸進(jìn)行拉伸,變成一維的數(shù)組。
二. 參數(shù)
1.start_dim(可選參數(shù)):指定從哪個(gè)維度開始展平張量。默認(rèn)情況下,start_dim
被設(shè)置為0,表示從第一個(gè)維度(通常是批大?。╅_始展平。如果設(shè)置為其他整數(shù)值,則會(huì)從指定的維度開始展平。
2.end_dim(可選參數(shù)):指定在哪個(gè)維度結(jié)束展平張量。默認(rèn)情況下,end_dim
被設(shè)置為-1,表示展平直到最后一個(gè)維度。如果設(shè)置為其他整數(shù)值,則會(huì)在指定的維度結(jié)束展平。
三. 實(shí)例
(1). 首先隨機(jī)定義一個(gè)滿足正態(tài)分布的(2,3,4)的數(shù)據(jù)x
import torch x = torch.randn(2,3,4) print(x) x = x.flatten(0) print(x) ------------------------------------ tensor([[[ 0.1281, 1.6878, 0.2301, -0.0721], [ 1.2374, -0.6929, 1.1186, 0.4372], [ 0.5122, 1.4653, -0.1673, 0.7258]], [[ 0.2772, -1.9994, -1.2284, 0.2764], [-0.0451, -0.9195, 0.5749, 0.1942], [ 0.8539, -0.0434, -0.7313, 0.0234]]]) tensor([ 0.1281, 1.6878, 0.2301, -0.0721, 1.2374, -0.6929, 1.1186, 0.4372, 0.5122, 1.4653, -0.1673, 0.7258, 0.2772, -1.9994, -1.2284, 0.2764, -0.0451, -0.9195, 0.5749, 0.1942, 0.8539, -0.0434, -0.7313, 0.0234]) import torch x = torch.randn(2,3,4) print(x) x = x.flatten(0) print(x) ------------------------------------ tensor([[[ 0.1281, 1.6878, 0.2301, -0.0721], [ 1.2374, -0.6929, 1.1186, 0.4372], [ 0.5122, 1.4653, -0.1673, 0.7258]], [[ 0.2772, -1.9994, -1.2284, 0.2764], [-0.0451, -0.9195, 0.5749, 0.1942], [ 0.8539, -0.0434, -0.7313, 0.0234]]]) tensor([ 0.1281, 1.6878, 0.2301, -0.0721, 1.2374, -0.6929, 1.1186, 0.4372, 0.5122, 1.4653, -0.1673, 0.7258, 0.2772, -1.9994, -1.2284, 0.2764, -0.0451, -0.9195, 0.5749, 0.1942, 0.8539, -0.0434, -0.7313, 0.0234])
此時(shí)x的維度是2×3×4=24,x = flatten(0) 和 x = flatten()的結(jié)果相同。
(2).
import torch x = torch.randn(2,3,4) print(x) x = x.flatten(1) print(x) =========================================== tensor([[[-0.7137, -0.0859, -1.5284, 0.7284], [ 0.8425, 0.3606, 1.7639, 0.1848], [ 0.4040, -1.6575, 1.9134, -1.0787]], [[ 0.6981, 1.3494, -0.5817, -1.1824], [-0.4972, 0.4179, 2.1742, -0.2462], [ 0.2429, -1.9315, -0.3497, 0.7190]]]) tensor([[-0.7137, -0.0859, -1.5284, 0.7284, 0.8425, 0.3606, 1.7639, 0.1848, 0.4040, -1.6575, 1.9134, -1.0787], [ 0.6981, 1.3494, -0.5817, -1.1824, -0.4972, 0.4179, 2.1742, -0.2462, 0.2429, -1.9315, -0.3497, 0.7190]])
此時(shí)x是從1維度開始展開,最后的x維度為(2,3×4),也就是(2,12)
注意:start_dim
和end_dim
參數(shù)的取值范圍應(yīng)該在 -x.dim() <= start_dim <= end_dim < x.dim()
之間。
到此這篇關(guān)于PyTorch中flatten() 函數(shù)的用法的文章就介紹到這了,更多相關(guān)PyTorch flatten() 函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)據(jù)結(jié)構(gòu)算法分析
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)算法分析,在python的數(shù)據(jù)結(jié)構(gòu)的章節(jié)中,我們上次學(xué)習(xí)到了python面向?qū)ο蟮乃枷?,即我們想用程序?lái)實(shí)現(xiàn)一個(gè)東西,我們需是用對(duì)象的特征來(lái)描述我們想構(gòu)建的對(duì)象。感興趣的小伙伴可以查看下面內(nèi)容</P><P>2021-12-12詳解python實(shí)現(xiàn)交叉驗(yàn)證法與留出法
這篇文章主要介紹了詳解python實(shí)現(xiàn)交叉驗(yàn)證法與留出法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python實(shí)現(xiàn)微信公眾平臺(tái)自定義菜單實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)微信公眾平臺(tái)自定義菜單實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03Pytorch通過(guò)保存為ONNX模型轉(zhuǎn)TensorRT5的實(shí)現(xiàn)
這篇文章主要介紹了Pytorch通過(guò)保存為ONNX模型轉(zhuǎn)TensorRT5的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python字符串通過(guò)''+''和join函數(shù)拼接新字符串的性能測(cè)試比較
今天小編就為大家分享一篇關(guān)于Python字符串通過(guò)'+'和join函數(shù)拼接新字符串的性能測(cè)試比較,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Python基礎(chǔ)之教你怎么在M1系統(tǒng)上使用pandas
這篇文章主要介紹了Python基礎(chǔ)之教你怎么在M1系統(tǒng)上使用pandas,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05關(guān)于Python的pymouse click 雙擊的問(wèn)題
這篇文章主要介紹了關(guān)于Python的pymouse click 雙擊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06