_C'est la vie. 2023-11-11 14:08 采纳率: 0%
浏览 11

关于#深度学习#的问题:看b站刘二大人的深度学习视频,CNN这里代码没有理解

学生党还在学习中,看b站刘二大人的深度学习视频,看到卷积神经网络这里有问题没太懂,前来请教问题。

#1.prepare dataset
train_dataset = datasets.MNIST(root='../dataset/minst/', train=True, download=True, transform=transforms)
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=2)
test_dataset = datasets.MNIST(root='../dataset/minst/', train=True, download=True, transform=transforms)
test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=True, num_workers=2)
#2. use model by class
class Net(torch.nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        #MNIST 默认 1*28*28
        self.conv1 = torch.nn.Conv2d(1, 10, kernel_size=5) #5*5的卷积核 5/2=2 一次少2圈 2*2=4 图像少4 10*24*24
        self.conv2 = torch.nn.Conv2d(10, 20, kernel_size=5)
        self.pooling = torch.nn.MaxPool2d(2)  # Maxpool就像sigmoid一样 内不包含权重 同一层实例一个就行,包含w的代码需要单独实例
        self.fc = torch.nn.Linear(320, 10)  #320是 20*4*4的结果,可是我咋没理解20*4*4怎么变过来的  ?

上述代码,MNIST默认大小是1×28×28,通过第一次conv1卷积,图像大小变为10×24×24,然后执行conv2的第二次卷积,图像大小应该变成是20×20×20,再池化图小大小变为原来的1/2,也就是20×10×10,我看代码结合自己的理解就是这样
但是原视频中讲的过程最后是这样的,图像变成20×4×4

img

求解,问题就是这样啦,没理解卷积过程的图像大小变化
怎么代码的操作过程和视频中的不一样呢 我看代码的顺序是做了两次卷积,而视频里的是卷积了一次后池化再卷积

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-11 16:36
    关注

    【相关推荐】




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 11月11日
  • 修改了问题 11月11日
  • 创建了问题 11月11日

悬赏问题

  • ¥15 stm32u535芯片usb hid custom类接收数据有问题
  • ¥20 quartus功能仿真
  • ¥15 传染病最优控制问题,控制为什么没起作用
  • ¥15 ue5.3 pico打包失败 求帮助
  • ¥15 请教,这是用chatgpt写的CAD LISPD脚本,需求是画一个由双直线组成的矩形
  • ¥50 微信小程序 成功包奶茶啊
  • ¥15 计算机博弈的六子棋代码
  • ¥15 在Fetch API中传送的参数为何不起作用?
  • ¥15 问题遇到的现象和发生背景 360导航页面千次ip是20元,但是我们是刷量的 超过100ip就不算量了,假量超过100就不算了 这是什么逻辑呢 有没有人能懂的 1000元红包感谢费
  • ¥30 计算机硬件实验报告寻代