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

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内置各种矩阵和方法介绍

嗨&#xff0c;各位小伙伴们&#xff0c;我是你们的好朋友咕噜铁蛋&#xff01;今天&#xff0c;我们要来聊一聊关于Unity中编写Shader时内置的各种矩阵和方法。作为Unity开发者&#xff0c;掌握Shader编写是非常重要的一项技能&#xff0c;而了解内置的矩阵和方法将帮助我们更…...

初学者如何使用QT新建一个包含UI界面的C++项目

文章目录 一、下载并安装QT51、下载安装包2、注册/登录账号3、安装qt6 二、新建QT Widget项目1、新建项目并且运行2、易错点&#xff1a;可能运行成功得到UI界面但是会报错&#xff08;原因是使用了中文路径&#xff09; 一、下载并安装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密码&#xff1a; 终端&#xff08;ctrl alt t&#xff09;输入 sudo visudo 打开visudo 找到 %sudo ALL(ALL:ALL) ALL 这一行…...

Spring Cloud2022之OpenFeign使用以及部分源码分析

OpenFeign使用 Feign和OpenFeign Feign是Netflix开发的⼀个轻量级RESTful的HTTP服务客户端&#xff0c;可以使用⽤它来发起请求&#xff0c;进行远程调用。Fegin是以Java接口注解的⽅式调⽤Http请求&#xff0c;而不是像RestTemplate那样&#xff0c;在Java中通过封装HTTP请求…...

【非比较排序】计算排序算法

目录 CountSort计数排序 整体思想 图解分析 代码实现 时间复杂度&优缺分析 CountSort计数排序 计数排序是一种非比较排序&#xff0c;不需要像前面的排序一样去比较。 计数排序的特性总结&#xff1a; 1. 计数排序在数据范围集中时&#xff0c;效率很高&#xff0c;但…...

数据结构与算法 - 数组与二分查找 + Leetcode典型题

1. 什么是数组 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索引的方式获取到下标下对应的数据。 C中二维数组在地址空间上也是连续的。 需注意&#xff1a; 数组的下标从0开始。数组内存空间的地址是连续的。数组的元素是不能删的&#xff0c…...

SQL进阶(三):Join 小技巧:提升数据的处理速度

复杂数据结构处理&#xff1a;Join 小技巧&#xff1a;提升数据的处理速度 本文是在原本sql闯关的基础上总结得来&#xff0c;加入了自己的理解以及疑问解答&#xff08;by GPT4&#xff09; 原活动链接 用到的数据&#xff1a;链接 提取码&#xff1a;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实现流浪动物救助网站系统演示 摘要 然而随着生活的加快&#xff0c;也使很多潜在的危险日益突显出来&#xff0c;比如在各种地方会发现很多无家可归的、伤痕累累的、可怜兮兮的动物&#xff0c;当碰到这种情况&#xff0c;是否会立马伸出双手去帮助、救助它们&…...

灰度负载均衡和普通负载均衡有什么区别

灰度负载均衡&#xff08;Gray Load Balancing&#xff09;与普通负载均衡的主要区别在于它们服务发布和流量管理的方式。 灰度负载均衡 目的&#xff1a;主要用于灰度发布&#xff0c;即逐步向用户发布新版本的服务&#xff0c;以减少新版本可能带来的风险。工作方式&#x…...

【二分查找】朴素二分查找

二分查找 题目描述 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9…...

Windows Docker 部署 Redis

部署 Redis 打开 Docker Desktop&#xff0c;切换到 Linux 内核。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 redis 服务。这里安装的是 7.2.4 版本&#xff0c;如果需要安装其他或者最新版本&#xff0c;可以到 Docker Hub 中进行查找。 docker run -d --nam…...

什么是VR虚拟现实|虚拟科技博物馆|VR设备购买

虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;是一种通过计算机技术模拟出的一种全新的人机交互方式。它可以通过专门的设备&#xff08;如头戴式显示器&#xff09;将用户带入一个计算机生成的虚拟环境之中&#xff0c;使用户能够与这个虚拟环境进行交互…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...