PyTorch中flatten()?函數(shù)的用法實例小結
一. 用法
Flatten層主要是用來將輸入“壓平”,即把多維的輸入一維化,用在卷積層到全連接層的過渡。其不會影響batch的大小,可以理解為把高緯度的數(shù)組按照x軸或者y軸進行拉伸,變成一維的數(shù)組。
二. 參數(shù)
1.start_dim(可選參數(shù)):指定從哪個維度開始展平張量。默認情況下,start_dim被設置為0,表示從第一個維度(通常是批大?。╅_始展平。如果設置為其他整數(shù)值,則會從指定的維度開始展平。
2.end_dim(可選參數(shù)):指定在哪個維度結束展平張量。默認情況下,end_dim被設置為-1,表示展平直到最后一個維度。如果設置為其他整數(shù)值,則會在指定的維度結束展平。
三. 實例
(1). 首先隨機定義一個滿足正態(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])此時x的維度是2×3×4=24,x = flatten(0) 和 x = flatten()的結果相同。
(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]])此時x是從1維度開始展開,最后的x維度為(2,3×4),也就是(2,12)
注意:start_dim和end_dim參數(shù)的取值范圍應該在 -x.dim() <= start_dim <= end_dim < x.dim() 之間。
到此這篇關于PyTorch中flatten() 函數(shù)的用法的文章就介紹到這了,更多相關PyTorch flatten() 函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Ubuntu20.04桌面安裝及root權限開通和ssh安裝詳解
這篇文章主要介紹了Ubuntu20.04桌面安裝及root權限開通和ssh安裝詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
centos7修改系統(tǒng)語言為簡體中文的實現(xiàn)
這篇文章主要介紹了centos7修改系統(tǒng)語言為簡體中文的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
CentOS 6.5 環(huán)境實現(xiàn)本地局域網(wǎng)搭建YUM的方法【基于FTP】
這篇文章主要介紹了CentOS 6.5 環(huán)境實現(xiàn)本地局域網(wǎng)搭建YUM的方法,結合實例形式分析了CentOS基于FTP本地局域網(wǎng)搭建YUM的具體步驟、相關命令與操作技巧,需要的朋友可以參考下2018-04-04
移植新內(nèi)核到Linux系統(tǒng)上的操作步驟
今天小編就為大家分享一篇關于移植新內(nèi)核到Linux系統(tǒng)上的操作步驟,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12

