小土堆Pytorch笔记P22

编程基础很弱,需要机器学习,学习记录,按自己理解写的,希望以后能学懂吧,要是有大神看到还请赐教。

神经网络-搭建小实战和Sequential的使用

本节课讲解上边这张图的网络构建,和Sequential使用。

首先,第一个为卷积层,输入chanel为3,输出chanel为32,发现输入输出大小不变,翻阅Pytorch文档计算。

代码:

from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear


class Lizi(nn.Module):
    def __init__(self):
        super(Lizi, self).__init__()
        self.conv1 = Conv2d(3, 32, 5, 1, 2)
        self.maxpool1 = MaxPool2d(2)
        self.conv2 = Conv2d(32, 32, 5, 1, 2)
        self.maxpool2 = MaxPool2d(2)
        self.conv3 = Conv2d(32, 64, 5, 1, 2)
        self.maxpool3 = MaxPool2d(2)
        self.flatten1 = Flatten()  # 将上一步输出的64*4*4展平
        self.linear1 = Linear(64 * 4 * 4, 64)
        self.linear2 = Linear(64, 10)

    def forward(self, input):
        input = self.conv1(input)
        input = self.maxpool1(input)
        input = self.conv2(input)
        input = self.maxpool2(input)
        input = self.conv3(input)
        input = self.maxpool3(input)
        input = self.flatten1(input)
        input = self.linear1(input)
        output = self.linear2(input)
        return output


lizi = Lizi()
print(lizi)

效果如下:

如何检查网络是否正确,关注于输入输出是否为想要的,接着上面:

# 如何检查搭建的网络是否正确,输入的数据是否能得到想要的输出。
input = torch.ones((64, 3, 32, 32))
output = lizi(input)
print(output.shape)

Sequential的用法:

 与以上的网络效果一样。

# Sequential的用法:
import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential


class Lizi(nn.Module):
    def __init__(self):
        super(Lizi, self).__init__()
        self.model1 = Sequential(
            Conv2d(3, 32, 5, 1, 2),
            MaxPool2d(2),
            Conv2d(32, 32, 5, 1, 2),
            MaxPool2d(2),
            Conv2d(32, 64, 5, 1, 2),
            MaxPool2d(2),
            Flatten(),
            Linear(64 * 4 * 4, 64),
            Linear(64, 10)
        )

    def forward(self, input):
        output = self.model1(input)
        return output
# 将网络用tensorboard可视化
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")
writer.add_graph(lizi, input)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值