介绍一种理解tensor结构的方法
1. tensor的格式
2. 相关层的tensor转化(卷积,池化,激活):使用深度学习平台,理解相关层的函数的相关参数(查看官方文档),制作最简单网络(只有一层输入输出),设置输入tensor查看输出tensor。
tensor的格式
常见的tensor表示
imgs = torch.randn(1, 2, 2, 3 , names=(‘N’, ‘C’, ‘H’, ‘W’))
N:数据的数量(常设为-1,表示不确定数量)
C:通道数
H:图像尺寸的高度
W:图像尺寸的宽度
例如 in = torch.reshape(5,3,64,64)
可理解为是5张每张3个通道的尺寸64*64的图片。
相关层的tensor转化
亲手实践利于理解
import torch
inputs = torch.tensor(torch.rand(5,5),dtype=torch.float32)
inputs = torch.reshape(inputs, (-1,1,5,5))
inputs
在这里设置只有一个层的函数,测试输出层的tensor
from torch import nn
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
#池化层
self.maxpool1 = nn.MaxPool2d(kernel_size=3, ceil_mode=False)
# 可换成其它层函数,例如卷积,relu,linear等等
def forward(self, inputs):
return self.maxpool1(inputs)
learnNet = Net()
out = learnNet(inputs)
out
全连接层
需要先将tensor的通道数转化为1,使用flatten方法
nn.Flatten(),
nn.Linear(10*10, 1)