文章目录
一、torch.randn(2, 1, 5, 5)和torch.randn(1, 2, 5, 5)的区别
1、torch.randn(2, 1, 5, 5)
import torch
import torch.nn as nn
input_x = torch.randn(2, 1, 5,5) # batch size, 输入channel , 输入宽和高
print(input_x)
print(input_x.dim())
conv2d = nn.Conv2d(1, 20, kernel_size=(3,3)) # Conv1d(in_channels 输入的通道数, out_channels 输出的通道数, kernel_size 卷积核大小,)
print(conv2d(input_x).shape) # torch.Size([50, 20, 24])
torch.randn(2, 1, 5, 5)表示一个形状为(2, 1, 5, 5)的张量,其中:
- 第一个维度为2,表示该张量包含2个样本。
- 第二个维度为1,表示每个样本只有一个通道(单通道)。
- 第三个和第四个维度都为5,表示每个样本的高度和宽度为5
tensor([[[[-0.5244, 1.7061, 1.4930, 0.7366, 0.8777],
[-0.9369, -1.6757, 0.7344, -0.8474, -0.5322],
[-0.6238, 0.1218, 0.3774, -0.9583, 0.4321],
[-0.3718, -0.8561, 0.8745, 0.2736, -0.9445],
[-1.2196, -1.7373, -0.7211, 1.7466, 1.1438]]],
[[[-0.6200, 1.3123, -0.2218, 0.4501, 0.1092],
[-0.3851, -0.1376, 0.6793, -0.2087, 0.5269],
[ 0.2049, -0.0633, -1.3043, 0.2677, -0.1593],
[-0.2346, -0.4189, -1.5980, -1.4744, -0.0247],
[-1.2222, 0.9525, 1.1216, 0.2067, 2.9091]]]])
4
torch.Size([2, 20, 3, 3])
2、torch.randn(1, 2, 5, 5)
import torch
import torch.nn as nn
input_x = torch.randn(1, 2, 5,5) # batch size, 输入channel , 输入宽和高
print(input_x)
print(input_x.dim())
conv2d = nn.Conv2d(2, 20, kernel_size=(3, 3)) # Conv1d(in_channels 输入的通道数, out_channels 输出的通道数, kernel_size 卷积核大小,)
print(conv2d(input_x).shape) # torch.Size([50, 20, 24])
torch.randn(1, 2, 5, 5)表示一个形状为(1, 2, 5, 5)的张量,其中:
- 第一个维度为1,表示该张量只包含一个样本。
- 第二个维度为2,表示每个样本有两个通道(双通道)。
- 第三个和第四个维度都为5,表示每个样本的高度和宽度为5。
tensor([[[[ 0.2450, 0.3782, 0.8491, 0.9238, 0.7193],
[ 0.4896, -0.8420, 1.2535, 0.8598, 0.7305],
[-1.5357, -0.1954, 0.3180, -0.2765, -0.2233],
[ 1.6324, 0.1788, -0.9874, 0.6917, 0.4531],
[ 2.5864, -0.3977, -0.0889, 0.3464, 1.0571]],
[[ 0.0778, 0.1593, -0.3596, 0.4654, -0.4077],
[-0.9721, -0.8619, 1.1439, -0.4358, 1.2102],
[ 0.2069, 0.7917, 0.0652, 2.0938, 0.3225],
[ 0.6486, 1.1292, -1.0613, -0.8899, 0.5207],
[-0.4501, -1.9984, -0.2540, -2.1952, -1.8194]]]])
4
torch.Size([1, 20, 3, 3])