PyTorch中flatten()?函數(shù)的用法實(shí)例小結(jié)
一. 用法
Flatten層主要是用來將輸入“壓平”,即把多維的輸入一維化,用在卷積層到全連接層的過渡。其不會(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)文章
Ubuntu20.04桌面安裝及root權(quán)限開通和ssh安裝詳解
這篇文章主要介紹了Ubuntu20.04桌面安裝及root權(quán)限開通和ssh安裝詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
centos7修改系統(tǒng)語言為簡體中文的實(shí)現(xiàn)
這篇文章主要介紹了centos7修改系統(tǒng)語言為簡體中文的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
CentOS 6.5 環(huán)境實(shí)現(xiàn)本地局域網(wǎng)搭建YUM的方法【基于FTP】
這篇文章主要介紹了CentOS 6.5 環(huán)境實(shí)現(xiàn)本地局域網(wǎng)搭建YUM的方法,結(jié)合實(shí)例形式分析了CentOS基于FTP本地局域網(wǎng)搭建YUM的具體步驟、相關(guān)命令與操作技巧,需要的朋友可以參考下2018-04-04
shell腳本如何啟動(dòng)springboot項(xiàng)目
這篇文章主要介紹了shell腳本如何啟動(dòng)springboot項(xiàng)目問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
移植新內(nèi)核到Linux系統(tǒng)上的操作步驟
今天小編就為大家分享一篇關(guān)于移植新內(nèi)核到Linux系統(tǒng)上的操作步驟,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12

