對pytorch的函數(shù)中的group參數(shù)的作用介紹
1.當設置group=1時:
conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=1) conv.weight.data.size()
返回:
torch.Size([6, 6, 1, 1])
另一個例子:
conv = nn.Conv2d(in_channels=6, out_channels=3, kernel_size=1, groups=1) conv.weight.data.size()
返回:
torch.Size([3, 6, 1, 1])
可見第一個值為out_channels的大小,第二個值為in_channels的大小,后面兩個值為kernel_size
2.當設置為group=2時
conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=2) conv.weight.data.size()
返回:
torch.Size([6, 3, 1, 1])
3.當設置group=3時
conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=3) conv.weight.data.size()
返回:
torch.Size([6, 2, 1, 1])
4.當設置group=4時
conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=4) conv.weight.data.size()
報錯:
ValueError: in_channels must be divisible by groups
groups的值必須能整除in_channels
注意:
同樣也要求groups的值必須能整除out_channels,舉例:
conv = nn.Conv2d(in_channels=6, out_channels=3, kernel_size=1, groups=2) conv.weight.data.size()
否則會報錯:
ValueError: out_channels must be divisible by groups
5.當設置group=in_channels時
conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=6) conv.weight.data.size()
返回:
torch.Size([6, 1, 1, 1])
所以當group=1時,該卷積層需要6*6*1*1=36個參數(shù),即需要6個6*1*1的卷積核
計算時就是6*H_in*W_in的輸入整個乘以一個6*1*1的卷積核,得到輸出的一個channel的值,即1*H_out*W_out。這樣經(jīng)過6次與6個卷積核計算就能夠得到6*H_out*W_out的結(jié)果了
如果將group=3時,卷積核大小為torch.Size([6, 2, 1, 1]),即6個2*1*1的卷積核,只需要需要6*2*1*1=12個參數(shù)
那么每組計算就只被in_channels/groups=2個channels的卷積核計算,當然這也會將輸入分為三份大小為2*H_in*W_in的小輸入,分別與2*1*1大小的卷積核進行三次運算,然后將得到的3個2*H_out*W_out的小輸出concat起來得到最后的6*H_out*W_out輸出
在實際實驗中,同樣的網(wǎng)絡結(jié)構(gòu)下,這種分組的卷積效果是好于未分組的卷積的效果的。
以上這篇對pytorch的函數(shù)中的group參數(shù)的作用介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python文件簡單操作及openpyxl操作excel文件詳解
這篇文章主要為大家詳細介紹了python對文件的簡單使用及openpyxl操作excel文件的方法,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-10-10
django數(shù)據(jù)模型(Model)的字段類型解析
這篇文章主要介紹了django數(shù)據(jù)模型(Model)的字段類型,文中給大家提到了django數(shù)據(jù)模型on_delete, db_constraint的使用,需要的朋友可以參考下2019-12-12
Python使用Chartify庫進行數(shù)據(jù)分析繪制詳解
這篇文章主要介紹了Python使用Chartify庫進行數(shù)據(jù)分析繪制,它提供了簡潔易用的API,讓我們能夠快速地繪制出美觀且專業(yè)的圖表,無需像使用matplotlib和seaborn那樣花費大量時間去調(diào)整各種復雜的參數(shù),大大提高了數(shù)據(jù)可視化的效率,需要的朋友可以參考下2025-04-04
Python實現(xiàn)在Excel中繪制可視化大屏的方法詳解
Python3調(diào)用百度AI識別圖片中的文字功能示例【測試可用】
python 篩選數(shù)據(jù)集中列中value長度大于20的數(shù)據(jù)集方法

