深度学习_10_softmax_实战
由于网上代码的画图功能是基于jupyter记事本,而我用的是pycham,这导致画图代码不兼容pycharm,所以删去部分代码,以便能更好的在pycharm上运行
完整代码:
import torch
from d2l import torch as d2l"创建训练集&创建检测集合"
batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)"创建模型w, b"
num_inputs = 784
num_outputs = 10W = torch.normal(0, 0.01, size=(num_inputs, num_outputs), requires_grad=True)
b = torch.zeros(num_outputs, requires_grad=True)"softmax"
def softmax(X):X_exp = torch.exp(X)partition = X_exp.sum(1, keepdim=True)return X_exp / partition # 这里应用了广播机制"输出,即传入图片输出"
def net(X):return softmax(torch.matmul(X.reshape((-1, W.shape[0])), W) + b)"交叉熵损失"
def cross_entropy(y_hat, y):return - torch.log(y_hat[range(len(y_hat)), y])"显示预测与估计相对应下标数量"
def accuracy(y_hat, y): #@save"""计算预测正确的数量"""if len(y_hat.shape) > 1 and y_hat.shape[1] > 1: # 确定长宽高都大于1y_hat = y_hat.argmax(axis=1) # 取出每行中最大值cmp = y_hat.type(y.dtype) == yreturn float(cmp.type(y.dtype).sum()) # 返回对应下标数量"利用优化后的模型计算精度"
def evaluate_accuracy(net, data_iter): #@saveif isinstance(net, torch.nn.Module):net.eval() # 将模型设置为评估模式metric = Accumulator(2) # 正确预测数、预测总数with torch.no_grad():for X, y in data_iter:metric.add(accuracy(net(X), y), y.numel()) # 下标相同数量 / 总下标return metric[0] / metric[1]"加法器"
class Accumulator: #@savedef __init__(self, n):self.data = [0.0] * ndef add(self, *args):self.data = [a + float(b) for a, b in zip(self.data, args)]def reset(self):self.data = [0.0] * len(self.data)def __getitem__(self, idx):return self.data[idx]"训练更新模型&返回训练损失与精度函数"
def train_epoch_ch3(net, train_iter, loss, updater): #@save"""训练模型一个迭代周期(定义见第3章)"""# 将模型设置为训练模式if isinstance(net, torch.nn.Module):net.train()# 训练损失总和、训练准确度总和、样本数metric = Accumulator(3)for X, y in train_iter:# 计算梯度并更新参数y_hat = net(X)l = loss(y_hat, y)if isinstance(updater, torch.optim.Optimizer):# 使用PyTorch内置的优化器和损失函数updater.zero_grad()l.mean().backward()updater.step()else:# 使用定制的优化器和损失函数l.sum().backward()updater(X.shape[0])metric.add(float(l.sum()), accuracy(y_hat, y), y.numel())# 返回训练损失和训练精度return metric[0] / metric[2], metric[1] / metric[2]lr = 0.1"更新模型"
def updater(batch_size):return d2l.sgd([W, b], lr, batch_size)if __name__ == '__main__':num_epochs = 10cnt = 1for i in range(num_epochs):X, Y = train_epoch_ch3(net, train_iter, cross_entropy, updater)print("训练次数: " + str(cnt))cnt += 1print("训练损失: {:.4f}".format(X))print("训练精度: {:.4f}".format(Y))print(".................................")
# print(W)
# print(b)
效果:

训练效果还是和网上一样的,就是缺了画图功能,将就着吧
相关文章:
深度学习_10_softmax_实战
由于网上代码的画图功能是基于jupyter记事本,而我用的是pycham,这导致画图代码不兼容pycharm,所以删去部分代码,以便能更好的在pycharm上运行 完整代码: import torch from d2l import torch as d2l"创建训练集&创建检测集合"…...
基于SpringBoot+Vue的博物馆管理系统
基于springbootvue的博物馆信息管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登录界面 管理员界面 用户界面 摘要 基于SpringBoot和Vue的博物馆…...
软件开发中常见的设计原则
软件开发中常见的设计原则 1. 单一责任原则2. 开放封闭原则3. 里氏替换原则4. 接口分离原则5. 依赖倒置原则6. 迪米特法则7. 合成复用原则8. 共同封闭原则9. 稳定抽象原则10. 稳定依赖原则 简写全拼中文翻译SRPThe Single Responsibility Principle单一责任原则OCPThe Open Clo…...
Linux安装ffmpeg并截取图片和视频的缩略图使用
Linux安装ffmpeg并截取图片和视频的缩略图使用 官方下载地址: http://www.ffmpeg.org/download.html#releases 我这里使用版本: ffmpeg_3.2_repo.tar.gz 可以百度网盘分享给大家 安装的环境为 Centos 64位操作系统 安装时须为 root 用户进行操作 #解压 tar -zxvf ffmpeg_3…...
第三章:人工智能深度学习教程-基础神经网络(第一节-ANN 和 BNN 的区别)
你有没有想过建造大脑之类的东西是什么感觉,这些东西是如何工作的,或者它们的作用是什么?让我们看看节点如何与神经元通信,以及人工神经网络和生物神经网络之间有什么区别。 1.人工神经网络:人工神经网络(…...
高防CDN与高防服务器:为什么高防服务器不能完全代替高防CDN
在当今的数字化时代,网络安全已经成为企业不容忽视的关键问题。面对不断增长的网络威胁和攻击,许多企业采取了高防措施以保护其网络和在线资产。然而,高防服务器和高防CDN是两种不同的安全解决方案,各自有其优势和局限性。在本文中…...
关于卷积神经网络的多通道
多通道输入 当输入的数据包含多个通道时,我们需要构造一个与输入通道数相同通道数的卷积核,从而能够和输入数据做卷积运算。 假设输入的形状为n∗n,通道数为ci,卷积核的形状为f∗f,此时,每一个输入通道都…...
19、Flink 的Table API 和 SQL 中的内置函数及示例(1)
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
<a>标签的download属性部分浏览器无法自动识别文件后缀
问题 最近开发中遇到的问题,文件名中含有点和逗号字符,当使用a标签的download属性下载内容时,如果不指定后缀,部分浏览器无法自动识别文件后缀。如下图所示: 定义用法 download 属性定义了下载链接的地址。 href 属性…...
前端图片压缩上传,减少等待时间!优化用户体检
添加图片注释,不超过 140 字(可选) 这里有两张图片,它们表面看上去是一模一样的,但实际上各自所占用的内存大小相差了180倍。 添加图片注释,不超过 140 字(可选) 添加图片注释&…...
Ionic header content footer toolbar UI实例
1 ionic的button图标 <ion-header [translucent]"true"><ion-toolbar><ion-buttons slot"start"><ion-back-button default-href"/tabs/tab1" text"back" icon"caret-back"></ion-back-button&…...
uniapp 解决H5跨域的问题
uniapp 解决h5跨域问题 manifest.json manifest.json文件中,点击“源码视图”,在此对象的最后添加以下代码: "h5" : {"devServer" : {"port" : 8080, //端口号"disableHostCheck" : true,"proxy" :…...
对称加密(symmetric encryption)和非对称加密(Asymmetric Encryption)(密钥、公钥加密、私钥解密)AES、RSA
文章目录 对称加密与非对称加密对称加密1.1 定义1.2 工作原理1.3 场景分析1.4 算法示例(以AES为例)1.5 对称加密的优点与缺点优点缺点 非对称加密2.1 定义2.2 工作原理注意:每次生成的RSA密钥对都会不一样 2.3 场景分析2.4 算法示例ÿ…...
iOS 16.4 之后真机与模拟器无法使用Safari调试H5页面问题
背景 iOS 16.4之后用真机调试H5时候发现,Safari中开发模块下面无法调试页面 解决方案 在WKWebView中设置以下代码解决 if (available(iOS 16.4, *)) {[_webView setInspectable:YES];}然后再次调试就可以了...
野火霸天虎 STM32F407 学习笔记_3 尝试寄存器映射方式点亮 LED 灯
新建工程 寄存器方式 要命啊,一看名字我就不想试。寄存器新建不得麻烦死。 哎算了为了学习原理,干了。 我们尝试自己写一个寄存器的库函数来引用。 首先我们需要引用 st 官方启动文件 stmf4xx.s,具体用途后面章节再展开讲解。然后我们自…...
ZZ308 物联网应用与服务赛题第F套
2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (F卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用…...
怎样选择文件外发控制系统,让数据实现高效安全交换?
制造型企业都非常重视其知识产权(IP)的安全性,尤其是其最有价值的产品设计数据的安全问题。基于复杂的供应链生态,每天可能要与几十家甚至上百家供应商及合作伙伴进行数据交换。不管是一级还是二级供应商,合作伙伴还是…...
专访 SPACE ID:通往 Web3 无许可域名服务协议之路
Web3 行业发展风起云涌,对于初创项目而言,如何寻找适合自己的赛道是首要问题。当前伴随用户交互和跨平台操作需求日渐兴起,如何更迅速地使用一站式域名实现便捷验证成为大众的心头期盼。 这一背景下,SPACE ID 于众星林立的 Web3 …...
合并分支--将自己的分支合并到master分支
在版本控制系统(例如Git)中,将自己的分支合并到master(或者主分支)通常需要以下步骤: ### 1. 切换到主分支 首先,确保你的本地仓库当前处于主分支。你可以使用以下命令切换到主分支࿱…...
力扣:153. 寻找旋转排序数组中的最小值(Python3)
题目: 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转…...
文墨共鸣使用避坑指南:避免这3个误区让分析更准确
文墨共鸣使用避坑指南:避免这3个误区让分析更准确 1. 引言:从“会用”到“用好”的关键一步 你已经成功部署了文墨共鸣,体验了它那充满诗意的水墨界面,也尝试过输入几段文字来感受AI对语义的“雅鉴”。但你是否遇到过这样的困惑…...
硬件工程师必看:从PCIe到车载以太网,手把手教你搞定SerDes信号完整性设计(附仿真避坑指南)
硬件工程师实战指南:SerDes信号完整性设计的黄金法则与仿真避坑 在当今高速数字电路设计中,SerDes技术已经成为连接芯片与系统的关键桥梁。无论是数据中心服务器中的PCIe 5.0接口,还是智能驾驶系统中的车载以太网,信号完整性问题都…...
RWKV7-1.5B-g1a开源模型部署:RWKV-7架构在国产GPU平台适配进展
RWKV7-1.5B-g1a开源模型部署:RWKV-7架构在国产GPU平台适配进展 1. 平台简介 rwkv7-1.5B-g1a 是基于新一代 RWKV-7 架构的开源多语言文本生成模型,特别针对国产GPU平台进行了优化适配。这个1.5B参数的轻量级模型非常适合以下场景: 基础问答&…...
Qwen3.5-9B效果展示:128K长文档摘要+复杂代码生成真实案例集
Qwen3.5-9B效果展示:128K长文档摘要复杂代码生成真实案例集 1. 模型核心能力概览 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,在多个专业领域展现出卓越的性能。这个模型最令人印象深刻的是它处理复杂任务的能力,就像一位经验丰富的工程…...
YEDDA中文文本标注工具:零基础快速上手的高效标注解决方案
YEDDA中文文本标注工具:零基础快速上手的高效标注解决方案 【免费下载链接】yedda-py3 项目地址: https://gitcode.com/gh_mirrors/ye/yedda-py3 在人工智能和自然语言处理领域,数据标注是构建高质量模型的基础。YEDDA中文文本标注工具是一款专为…...
腾讯混元OCR实战体验:上传图片秒出文字,支持100多种语言识别
腾讯混元OCR实战体验:上传图片秒出文字,支持100多种语言识别 1. 产品概述与核心优势 1.1 什么是腾讯混元OCR 腾讯混元OCR是基于腾讯混元原生多模态架构开发的轻量化文字识别系统。这个工具最吸引人的地方在于,它只需要1B(10亿&…...
从电源完整性到可制造性:一份给硬件工程师的电容封装选型全流程清单(附DDR4/5、射频电路实例)
从电源完整性到可制造性:硬件工程师的电容封装选型全流程实战指南 当DDR5内存接口的电源噪声导致系统频繁崩溃时,我们才意识到那颗被替换成0805封装的退耦电容有多重要。在深圳某通信设备厂商的案例中,仅仅因为将IC电源引脚旁的0402电容改为&…...
Qwen3-14B多场景落地指南:内容创作、编程辅助、教育问答一体化方案
Qwen3-14B多场景落地指南:内容创作、编程辅助、教育问答一体化方案 1. 开箱即用的私有部署方案 Qwen3-14B私有部署镜像为企业和开发者提供了一站式解决方案,无需复杂的环境配置即可快速启用大模型能力。这个经过深度优化的镜像专为RTX 4090D 24GB显存环…...
Pixel Epic · Wisdom Terminal 处理403 Forbidden等HTTP错误:智能诊断与修复建议
Pixel Epic Wisdom Terminal 处理403 Forbidden等HTTP错误:智能诊断与修复建议 1. 引言:HTTP错误的困扰与解决方案 每个Web开发者和运维人员都遇到过这样的场景:用户反馈页面打不开,你打开开发者工具一看,赫然显示4…...
AtCoder Beginner Contest 429
【赛时五题】AtCoder Beginner Contest 429 https://www.bilibili.com/video/BV1gXsZz8ELL/ 【赛时6题】AtCoder Beginner Contest 429 https://www.bilibili.com/video/BV1gXsZz8EZQ/ Atcoder Beginner Contest 429 https://www.bilibili.com/video/BV1SosZzdENX/ https://blo…...
