python模型训练
目录
1、新建模型 train_model.py
2、运行模型
(1)首先会下载data文件库
(2)完成之后会开始训练模型(10次)
3、 训练好之后,进入命令集
4、输入命令:python -m tensorboard.main --logdir="C:\Users\15535\Desktop\day6\train"
(1)目录的绝对路径获得方法
5、打开网页可视化图形
(1)运行完之后会自动有一个网址,点进去
(2)显示
1、新建模型 train_model.py
import torch
import torchvision.transforms
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets
from torch.utils.data import DataLoader
import torch.nn as nn
from torch.nn import CrossEntropyLoss#step1.下载数据集train_data=datasets.CIFAR10('./data',train=True,\transform=torchvision.transforms.ToTensor(),download=True)
test_data=datasets.CIFAR10('./data',train=False,\transform=torchvision.transforms.ToTensor(),download=True)print(len(train_data))
print(len(test_data))#step2.数据集打包
train_data_loader=DataLoader(train_data,batch_size=64,shuffle=False)
test_data_loader=DataLoader(test_data,batch_size=64,shuffle=False)#step3.搭建网络模型class My_Module(nn.Module):def __init__(self):super(My_Module,self).__init__()#64*32*32*32self.conv1=nn.Conv2d(in_channels=3,out_channels=32,\kernel_size=5,padding=2)#64*32*16*16self.maxpool1=nn.MaxPool2d(2)#64*32*16*16self.conv2=nn.Conv2d(in_channels=32,out_channels=32,\kernel_size=5,padding=2)#64*32*8*8self.maxpool2=nn.MaxPool2d(2)#64*64*8*8self.conv3=nn.Conv2d(in_channels=32,out_channels=64,\kernel_size=5,padding=2)#64*64*4*4self.maxpool3=nn.MaxPool2d(2)#线性化self.flatten=nn.Flatten()self.linear1=nn.Linear(in_features=1024,out_features=64)self.linear2=nn.Linear(in_features=64,out_features=10)def forward(self,input):#input:64,3,32,32output1=self.conv1(input)output2=self.maxpool1(output1)output3=self.conv2(output2)output4=self.maxpool2(output3)output5=self.conv3(output4)output6=self.maxpool3(output5)output7=self.flatten(output6)output8=self.linear1(output7)output9=self.linear2(output8)return output9my_model=My_Module()
# print(my_model)
loss_func=CrossEntropyLoss()#衡量模型训练的过程(输入输出之间的差值)
#优化器,lr越大模型就越“聪明”
optim = torch.optim.SGD(my_model.parameters(),lr=0.001)writer=SummaryWriter('./train')
#################################训练###############################
for looptime in range(10): #模型训练的次数:10print("------looptime:{}------".format(looptime+1))num=0loss_all=0for data in (train_data_loader):num+=1#前向imgs, targets = dataoutput = my_model(imgs)loss_train = loss_func(output,targets)loss_all=loss_all+loss_trainif num%100==0:print(loss_train)#后向backward 三步法 获取最小的损失函数optim.zero_grad()loss_train.backward()optim.step()# print(output.shape)loss_av=loss_all/len(test_data_loader)print(loss_av)writer.add_scalar('train_loss',loss_av,looptime)writer.close()
#################################验证#########################with torch.no_grad():accuracy=0test_loss_all=0for data in test_data_loader:imgs,targets = dataoutput = my_model(imgs)loss_test = loss_func(output,targets)#output.argmax(1)---输出标签accuracy=(output.argmax(1)==targets).sum()test_loss_all = test_loss_all+loss_testtest_loss_av = test_loss_all/len(test_data_loader)acc_av = accuracy/len(test_data_loader)print("测试集的平均损失{},测试集的准确率{}".format(test_loss_av,acc_av))writer.add_scalar('test_loss',test_loss_av,looptime)writer.add_scalar('acc',acc_av,looptime)writer.close()
2、运行模型
(1)首先会下载data文件库
(2)完成之后会开始训练模型(10次)

3、 训练好之后,进入命令集

4、输入命令:python -m tensorboard.main --logdir="C:\Users\15535\Desktop\day6\train"

(1)目录的绝对路径获得方法
执行下面的操作自动复制


5、打开网页可视化图形
(1)运行完之后会自动有一个网址,点进去

(2)显示

相关文章:
python模型训练
目录 1、新建模型 train_model.py 2、运行模型 (1)首先会下载data文件库 (2)完成之后会开始训练模型(10次) 3、 训练好之后,进入命令集 4、输入命令:python -m tensorboard.ma…...
逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例
补充知识:进行AES解密需要知道四个关键字,即密钥key,向量iv,模式mode,填充方式pad 一般网页AES都是16位的,m3u8视频加密一般是AES-128格式 网页链接:https://www.jinglingshuju.com/articles 进行抓包结果返回的是密文: 一般思…...
超越CPU和GPU:引领AI进化的LPU
什么是CPU CPU(Central Processing Unit)是由数十亿个晶体管构成的,可以拥有多个处理核心,通常被称为计算机的“大脑”。它对所有现代计算系统至关重要,因为它执行计算机和操作系统所需的命令和进程。CPU在决定程序运…...
MySQL 逗号分隔查询--find_in_set()函数
业务场景: 在使用MySQL的时候,可能的某个字段存储的是一个英文逗号分割的字符串(这里我们不讨论表设计的合理性),如图所示: 我们在查询的时候需要匹配逗号分割中的某个字符串,该怎么查询呢&am…...
【物联网应用案例】智能农业的 9 个技术用例
一、农业中的物联网用例 一般而言,农业物联网传感器以及农业物联网应用有多种类型: 1. 气候条件监测 气象站无疑是当今智能农业领域最受欢迎的设备。这款设备集成了多种智能农业传感器,能够在现场对各类数据进行收集,然后迅速将…...
前端开发——ElementUI组件的使用
文章目录 1. Tabs标签页2. 单选框 el-radio3. 复选框 el-checkbox4. 下拉框 el-select5. 表格 el-table6. 对话框 el-dialog7. 文字提示 el-tooltip8. 抽屉 el-drawer 1. Tabs标签页 <template><el-tabs v-model"activeName" tab-click"handleClick&q…...
Unity编写Shader内置各种矩阵和方法介绍
嗨,各位小伙伴们,我是你们的好朋友咕噜铁蛋!今天,我们要来聊一聊关于Unity中编写Shader时内置的各种矩阵和方法。作为Unity开发者,掌握Shader编写是非常重要的一项技能,而了解内置的矩阵和方法将帮助我们更…...
初学者如何使用QT新建一个包含UI界面的C++项目
文章目录 一、下载并安装QT51、下载安装包2、注册/登录账号3、安装qt6 二、新建QT Widget项目1、新建项目并且运行2、易错点:可能运行成功得到UI界面但是会报错(原因是使用了中文路径) 一、下载并安装QT5 1、下载安装包 进入下载网址 Windo…...
韦东山嵌入式Liunx入门驱动开发四
文章目录 一、异常与中断的概念及处理流程1-1 中断的引入1-2 栈(1) CPU实现a ab的过程(2) 进程与线程 1-3 Linux系统对中断处理的演进1-4 Linux 中断系统中的重要数据结构(1) irq_desc 结构体(2) irqaction 结构体(3) irq_data 结构体(4) irq_domain 结构体(5) irq_domain 结构…...
ubuntu基础操作(1)-个人笔记
搜狗输入法Linux官网-首页搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输https://pinyin.sogou.com/linux 1.关闭sudo密码: 终端(ctrl alt t)输入 sudo visudo 打开visudo 找到 %sudo ALL(ALL:ALL) ALL 这一行…...
Spring Cloud2022之OpenFeign使用以及部分源码分析
OpenFeign使用 Feign和OpenFeign Feign是Netflix开发的⼀个轻量级RESTful的HTTP服务客户端,可以使用⽤它来发起请求,进行远程调用。Fegin是以Java接口注解的⽅式调⽤Http请求,而不是像RestTemplate那样,在Java中通过封装HTTP请求…...
【非比较排序】计算排序算法
目录 CountSort计数排序 整体思想 图解分析 代码实现 时间复杂度&优缺分析 CountSort计数排序 计数排序是一种非比较排序,不需要像前面的排序一样去比较。 计数排序的特性总结: 1. 计数排序在数据范围集中时,效率很高,但…...
数据结构与算法 - 数组与二分查找 + Leetcode典型题
1. 什么是数组 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索引的方式获取到下标下对应的数据。 C中二维数组在地址空间上也是连续的。 需注意: 数组的下标从0开始。数组内存空间的地址是连续的。数组的元素是不能删的,…...
SQL进阶(三):Join 小技巧:提升数据的处理速度
复杂数据结构处理:Join 小技巧:提升数据的处理速度 本文是在原本sql闯关的基础上总结得来,加入了自己的理解以及疑问解答(by GPT4) 原活动链接 用到的数据:链接 提取码:l03e 目录 1. 课前小问…...
开发知识点-.netC#图形用户界面开发之WPF
C#图形用户界面开发 NuGet框架简介WinForms(Windows Forms):WPF(Windows Presentation Foundation):UWP(Universal Windows Platform):MAUI(Multi-platform App UI):选择控件参考文章随笔分类 - WPF入门基础教程系列...
基于springboot实现流浪动物救助网站系统项目【项目源码+论文说明】
基于springboot实现流浪动物救助网站系统演示 摘要 然而随着生活的加快,也使很多潜在的危险日益突显出来,比如在各种地方会发现很多无家可归的、伤痕累累的、可怜兮兮的动物,当碰到这种情况,是否会立马伸出双手去帮助、救助它们&…...
灰度负载均衡和普通负载均衡有什么区别
灰度负载均衡(Gray Load Balancing)与普通负载均衡的主要区别在于它们服务发布和流量管理的方式。 灰度负载均衡 目的:主要用于灰度发布,即逐步向用户发布新版本的服务,以减少新版本可能带来的风险。工作方式&#x…...
【二分查找】朴素二分查找
二分查找 题目描述 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9…...
Windows Docker 部署 Redis
部署 Redis 打开 Docker Desktop,切换到 Linux 内核。然后在 PowerShell 执行下面命令,即可启动一个 redis 服务。这里安装的是 7.2.4 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 中进行查找。 docker run -d --nam…...
什么是VR虚拟现实|虚拟科技博物馆|VR设备购买
虚拟现实(Virtual Reality,简称VR)是一种通过计算机技术模拟出的一种全新的人机交互方式。它可以通过专门的设备(如头戴式显示器)将用户带入一个计算机生成的虚拟环境之中,使用户能够与这个虚拟环境进行交互…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
