当前位置: 首页 > news >正文

《动手学深度学习(PyTorch版)》笔记7.1

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过,同时对于书上部分章节也做了整合。

Chapter7 Modern Convolutional Neural Networks

7.1 Deep Convolutional Neural Network: AlexNet

在这里插入图片描述

import torch
from torch import nn
from d2l import torch as d2l
import matplotlib.pyplot as plt

net = nn.Sequential(
    nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    #使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数
    nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    nn.Conv2d(256, 384, kernel_size=3, padding=1), nn.ReLU(),
    nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),
    nn.Conv2d(384, 256, kernel_size=3, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    nn.Flatten(),
    nn.Linear(6400, 4096), nn.ReLU(),
    nn.Dropout(p=0.5), # 这里全连接层的输出数量是LeNet中的几倍,所以使用dropout层来减轻过拟合
    nn.Linear(4096, 4096), nn.ReLU(),
    nn.Dropout(p=0.5),
    nn.Linear(4096, 10))#由于这里使用Fashion-MNIST,所以用类别数为10,而非论文中的1000

X = torch.randn(1, 1, 224, 224)
for layer in net:
    X=layer(X)
    print(layer.__class__.__name__,'output shape:\t',X.shape)
    
batch_size = 128
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, resize=224)

#训练
lr, num_epochs = 0.01, 10
d2l.train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu()) 
plt.show()

训练结果:
在这里插入图片描述

相关文章:

  • springboot157基于springboot的线上辅导班系统的开发与设计
  • Linux 网络编程 + 笔记
  • 用 Delphi 程序调用 Python 代码画曲线图 -- 数据来自 Delphi 程序
  • [职场] 智能材料与结构专业的就业前景 #经验分享#学习方法
  • 算法学习——LeetCode力扣哈希表篇1
  • Ubuntu文件系统结构
  • STM32F407 CAN参数配置 500Kbps
  • CAN通信----(创芯科技)CAN分析仪----转CANTest使用
  • C/C++ C++入门
  • 92.网游逆向分析与插件开发-游戏窗口化助手-显示游戏数据到小助手UI
  • 【QT+QGIS跨平台编译】之二十一:【freetype+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • 循环神经网络RNN专题(01/6)
  • 计算机网络_1.6.3 计算机网络体系结构分层思想举例
  • 2023年03月CCF-GESP编程能力等级认证Python编程二级真题解析
  • 详解SkyWalking前端监控的性能指标
  • 系统架构评估
  • 使用pygame建立一个简单的使用键盘方向键移动的方块小游戏
  • jmeter-03界面介绍
  • js中原始类型和对象引用
  • Java_简单模拟实现ArrayList_学习ArrayList
  • 中国国家电影局与俄罗斯文化部签署电影合作文件
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • 我驻苏丹使馆建议在苏中国公民尽快撤离
  • 中国海警依法驱离日非法进入我钓鱼岛领海船只
  • 媒体起底“速成洋文凭”灰产链,专家:我们要给学历“祛魅”
  • 从“重规模”向“重回报”转变,公募基金迎系统性改革