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

Class10简洁实现

Class10简洁实现

import torch
from torch import nn
from d2l import torch as d2l
# 输入为28*28,输出为10类,第1、2隐藏层256神经元
num_inputs, num_outputs, num_hiddens1, num_hiddens2 = 784, 10, 256, 256
# 第1个隐藏层丢弃率为0.2,第2个为0.5
dropout1, dropout2 = 0.2, 0.5
# nn.Flatten():把28*28展平为784
net = nn.Sequential(nn.Flatten(),# 输入层->第1隐藏层nn.Linear(784, 256),# ReLU激活nn.ReLU(),# 在第一个全连接层之后添加一个dropout层nn.Dropout(dropout1),# 第1隐藏层->第2隐藏层nn.Linear(256, 256),# ReLU激活nn.ReLU(),# 在第二个全连接层之后添加一个dropout层nn.Dropout(dropout2),# 第2隐藏层->输出10类nn.Linear(256, 10))# 初始化权重函数
def init_weights(m):# 判断如果为线性if type(m) == nn.Linear:# 正态分布初始化,均值为0,标准差为0.01nn.init.normal_(m.weight, std=0.01)
# 若为nn.Linear,则调用init_weight函数进行初始化
net.apply(init_weights);
# 设置训练轮数,学习率,批次大小
num_epochs,lr,batch_size = 10,0.5,256
# 定义损失函数,并保留每个样本损失
loss = nn.CrossEntropyLoss(reduction='none')
# 加载训练集和测试集
train_iter,test_iter = d2l.load_data_fashion_mnist(batch_size)
# 设置SGD随机梯度下降优化器
trainer = torch.optim.SGD(net.parameters(),lr=lr)
# 调用训练主函数
d2l.train_ch3(net,train_iter,test_iter,loss,num_epochs,trainer)
http://www.lryc.cn/news/596459.html

相关文章:

  • IDEA-自动格式化代码
  • 嵌入式 Qt 开发:实现开机 Logo 和无操作自动锁屏
  • C语言面向对象编程
  • linux 环境服务发生文件句柄泄漏导致服务不可用
  • 自定义HAProxy 错误界面
  • 开发板系统烧写
  • 【数学建模|Matlab】Matlab「基础知识」和「基础操作」
  • Vue3 面试题及详细答案120道(31-45 )
  • Arraylist与LinkedList区别
  • MATLAB软件使用频繁,企业如何做到“少买多用”?
  • 论文略读:Towards Safer Large Language Models through Machine Unlearning
  • Go 的第一类对象与闭包
  • (二)Python基础入门-基础语法核心
  • 【Python】常见模块及其用法
  • 解决栅格数据裁剪矢量数据问题两种方法,ArcGIS解决与PYTHON解决
  • Leetcode力扣解题记录--第41题(原地哈希)
  • 力扣-300.最长递增子序列
  • LeetCode 633.平方数之和
  • Uni-App:跨平台开发的终极解决方案
  • uniapp app打包流程
  • 《Uniapp-Vue 3-TS 实战开发》自定义预约时间段组件
  • Java (Spring AI) 实现MCP server实现数据库的智能问答
  • MS523NA非接触式读卡器 IC
  • 【金融机器学习】第四章:风险-收益权衡——Bryan Kelly, 修大成(中文翻译)
  • 【方案】网页由微应用拼图,微前端
  • Node.js:RESPful API、多进程
  • 【STM32】CRC 校验函数
  • linux初识网络及UDP简单程序
  • 二、计算机网络技术——第3章:数据链路层
  • 基于卷积神经网络与小波变换的医学图像超分辨率算法复现