神经网络结构学习(介绍一种理解tensor结构的方法)

介绍一种理解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)

猜你喜欢

转载自blog.csdn.net/mossfan/article/details/126828083