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

本文介绍了如何理解Tensor的格式,包括NCHW维度表示,并通过实例展示了使用PyTorch实现的卷积和池化层的转换。通过创建简单的网络并观察输入输出Tensor的变化,加深对深度学习层函数参数的理解。同时提到了全连接层中Flatten方法的应用,以及Linear层的使用。

介绍一种理解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)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lorry Fan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值