PyTorch对1个1通道的2x2x2的体积数据,使用一个1x1x1的卷积核进行卷积,输出通道数变为2。
import torch
# 定义输入数据
input_data = torch.randn(1, 1, 2, 2, 2)
print(input_data.shape) # 输入数据大小为 [1, 1, 2, 2, 2]
print(input_data)
# 定义卷积层
conv_layer = torch.nn.Conv3d(in_channels=1,
out_channels=2,
kernel_size=1)
# 执行卷积操作
output_data = conv_layer(input_data)
print(output_data.shape) # 输出数据大小为 [1, 2, 2, 2, 2]
print(output_data)
输出结果 :
torch.Size([1, 1, 2, 2, 2]) tensor([[[[[ 0.4288, -0.4255], [ 0.7242, 0.5814]], [[-0.5070, 0.1907], [ 1.1417, 0.2423]]]]]) torch.Size([1, 2, 2, 2, 2]) tensor([[[[[ 0.8344, 0.1135], [ 1.0836, 0.9632]], [[ 0.0447, 0.6335], [ 1.4360, 0.6770]]], [[[ 0.1553, 0.9422], [-0.1167, 0.0148]], [[ 1.0173, 0.3747], [-0.5013, 0.3271]]]]], grad_fn=<ConvolutionBackward0>)
对于输入1通道的2x2x2的体积数据,可以说明共有8个元素
-----------------------------------------------------------------------------------------------
[[ 0.4288, -0.4255],
[ 0.7242, 0.5814]] 可以表示体积数据第一层的4个元素-----------------------------------------------------------------------------------------------
[[-0.5070, 0.1907],
[ 1.1417, 0.2423]] 可以表示体积数据第二层的4个元素-----------------------------------------------------------------------------------------------
[[[ 0.4288, -0.4255],
[ 0.7242, 0.5814]],[[-0.5070, 0.1907],
[ 1.1417, 0.2423]]] 表示整个2x2x2的体积数据,也就是8个元素-----------------------------------------------------------------------------------------------
可以观察到2x2x2的体积数据使用了3个方括号[ ],代表的是三维数据
而整个输入张量tensor()中有5个[ ],代表的是五维数据,也就是torch.Size([1, 1, 2, 2, 2])
对于输出2通道的2x2x2的体积数据,可以说明共有16个元素
-----------------------------------------------------------------------------------------------
[[[ 0.8344, 0.1135],
[ 1.0836, 0.9632]],[[ 0.0447, 0.6335],
[ 1.4360, 0.6770]]] 表示第一个通道的2x2x2的体积数据,共8个元素-----------------------------------------------------------------------------------------------
[[[ 0.1553, 0.9422],
[-0.1167, 0.0148]],[[ 1.0173, 0.3747],
[-0.5013, 0.3271]]] 表示第二个通道的2x2x2的体积数据,共8个元素-----------------------------------------------------------------------------------------------
[[[[ 0.8344, 0.1135],
[ 1.0836, 0.9632]],[[ 0.0447, 0.6335],
[ 1.4360, 0.6770]]],
[[[ 0.1553, 0.9422],
[-0.1167, 0.0148]],[[ 1.0173, 0.3747],
[-0.5013, 0.3271]]]] 表示整个2通道的2x2x2的体积数据,也就是16个元素-----------------------------------------------------------------------------------------------
可以观察到2通道的2x2x2的体积数据使用了4个方括号[ ],代表的是四维数据
而整个输出张量tensor()中有5个[ ],代表的是五维数据,也就是torch.Size([1, 2, 2, 2, 2])