当前位置: 首页 > 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()

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

http://www.dtcms.com/a/8066.html

相关文章:

  • 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
  • 交友系统---让陌生人变成熟悉人的过程。APP小程序H5三端源码交付,支持二开。
  • 使用 PyTorch 构建 NLP 聊天机器人
  • R语言学习case10:ggplot基础画图Parallel Coordinate Plot 平行坐标图
  • VSCode 设置代理
  • 【Linux系统 01】Vim工具
  • Django的web框架Django Rest_Framework精讲(二)
  • 机器视觉系统设计:视觉系统中的成像基准
  • 蓝桥杯嵌入式第七届真题(完成) STM32G431
  • 将xyz格式的GRACE数据转成geotiff格式
  • Http请求Cookie失效问题