Pytorch中torch.nn.Conv3D、torch.nn.Conv2D函数详解

import torch
import torch.nn as nn
import numpy as np
from torch.autograd import Variable

x = torch.Tensor([1,10,100,1000,10000,100000]).view(1,2,-1,1,1)
# view()函数用来reshape,-1参数意为自动设置,此处计算得6
# Conv2d的规定输入数据格式为(batch, channel, Height, Width)
# Conv3d的规定输入数据格式为(batch, channel, Depth, Height, Width)
x = Variable(x)

conv = nn.Conv3d(in_channels=2,
                 out_channels=6,
                 kernel_size=(2,1,1),
                 stride=1,
                 padding=0,
                 dilation=1,
                 groups=1,
                 bias=False)

# 参数group的作用为:将输入数据按通道顺序分组, 每组有in_channel/group个通道.(例:group为2时,输入数据前一半通道为一组)
# 	同时, 每组对应的kernel个数, 从原来的out_channel变为outchannel/group.
			# 此处的kernel为三维及以上结构,而filter特指二维层状的过滤器。
# 	原来的情况中, 每个生成的特征图都有所有通道的贡献.
# 	而现在, 特征图仅由其所在group对应的通道卷积构成. 
# 简而言之, group参数的目的就是将原本的大卷积分成多个并联(side by side)的小卷积
# 另: 在in_channel不变的情况下, 当group>1时, kernel总数不变, 而filter总数缩小group倍.
		# 而在filter、kernel总数不变的情况下, group增大, 需要的in_channel按同样比例增大.

# 参数dilation的作用为: 控制卷积核元素的间隔大小.具体可搜索“空洞卷积”


print(conv.weight.data.size())
## 	conv.weight.data.size()的返回值:
#		# (num_kernels, num_filters_perkernel, (Depth,) Height, Width)
# 		#	i.e.:(out_channels, in_channels/group, kernel_size)

# 影响权重数目的因素有:
	# 欲输出featurecube的个数,直接影响卷积核的个数(相等) 
	# 输入的通道数与设定的该层group数, 多通道卷积会导致与某输出值相关的卷积核成倍增加
	# 每个卷积核的尺寸

# ————————————————————————
conv.weight.data=torch.from_numpy(np.ones(24,dtype=np.float32).reshape(6,2,2,1,1))
	# 替换权重值便于观察输出
print(conv.weight.data)


output=conv(x)
print('output=',output.data)
print('outputsize=',output.data.size())
# output.data.size()的返回值:
# 	(batch, out_channels/ or num_of_featurecube, size_of_featurecube)

2019/2/26:group的作用之终极版:可以通过设置group,将某层的单路卷积分为多个并行的卷积支路。

参考:

[pyotrch]nn.Conv2d中groups参数的理解

Pytorch - Conv2d 卷积

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值