参考:
总结:
import torch
dd = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 为了处理这个张量的形状,我们将创建一个 torch.Tensor 对象
t = torch.tensor(dd)
print(t)
print(type(t)) #
# 张量的形状
print(t.shape) # torch.Size([3, 3])
print(t.size()) # torch.Size([3, 3])
输出:
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
torch.Size([3, 3])
torch.Size([3, 3])
参考:
深度学习中关于张量的阶、轴和形状的解释 | Pytorch系列
介绍:
当我们对神经网络进行编程时,我们必须经常执行的一种操作叫做reshape。
当我们的张量在网络中流动时,在网络内部的不同点上会出现特定的形状,作为神经网络程序员,我们的工作就是理解传入的形状,并有能力根据需要重构形状。
关于重构,需要注意的一点是,形状中的分量值的乘积必须等于张量中元素的总数。
import torch
dd = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
] # 二阶张量
t = torch.tensor(dd)
print(t)
t = t.reshape(1, 9)
print(t)
print(t.shape) # torch.Size([1, 9])
输出:
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
tensor([[1, 2, 3, 4, 5, 6, 7, 8, 9]])
torch.Size([1, 9])
参考:
CNN中张量的输入形状和特征图 | Pytorch系列(三)
总结:
在CNN中的输入张量的形状通常长度为4,[Batch_size, Channels, Height, Width]。使用一个4阶张量表示一整个批次的图片,第一个轴代表图片批次(Image Batches)大小,第二个轴代表图片的颜色通道(Image Color Channels),最后两个轴表示图像的高度(Height)和宽度(Width)。
输出通道:卷积操作会改变高度和宽度尺寸以及通道数,输出通道的数量是根据卷积层中使用的滤波器的数量而变化。卷积层的输出命名为输出通道而不是颜色通道。
特征图(Feature Maps):对于输出通道,我们不再拥有颜色通道,而是修改过的通道,我们称之为feature maps。这些所谓的特征图是使用输入颜色通道和卷积过滤器进行卷积的输出。
之所以使用“特征”这个词,是因为输出代表了图片的特定特征,比如边缘,这些映射是在网络在训练过程中学习的过程中出现的,并且随着我们深入网络而变得更加复杂。