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

http://www.lryc.cn/news/308624.html

相关文章:

  • 逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例
  • 超越CPU和GPU:引领AI进化的LPU
  • MySQL 逗号分隔查询--find_in_set()函数
  • 【物联网应用案例】智能农业的 9 个技术用例
  • 前端开发——ElementUI组件的使用
  • Unity编写Shader内置各种矩阵和方法介绍
  • 初学者如何使用QT新建一个包含UI界面的C++项目
  • 韦东山嵌入式Liunx入门驱动开发四
  • ubuntu基础操作(1)-个人笔记
  • Spring Cloud2022之OpenFeign使用以及部分源码分析
  • 【非比较排序】计算排序算法
  • 数据结构与算法 - 数组与二分查找 + Leetcode典型题
  • SQL进阶(三):Join 小技巧:提升数据的处理速度
  • 开发知识点-.netC#图形用户界面开发之WPF
  • 基于springboot实现流浪动物救助网站系统项目【项目源码+论文说明】
  • 灰度负载均衡和普通负载均衡有什么区别
  • 【二分查找】朴素二分查找
  • Windows Docker 部署 Redis
  • 什么是VR虚拟现实|虚拟科技博物馆|VR设备购买
  • 高性能API云原生网关 APISIX安装与配置指南
  • Gradio Dataframe 学习笔记
  • 深入理解计算机系统笔记
  • 300分钟吃透分布式缓存(拉钩教育总结)
  • 2024亚马逊全球开店注册前需要准备什么?
  • android Service 与 activity 通信 并不断传数据
  • Acwing-基础算法课笔记之数学知识(扩展欧几里得算法)
  • 简单排列组合题(python版)
  • 【排坑】搭建 Karmada 环境
  • 每日一类:Qt GUI开发的基石《QWidget》
  • 人大金仓与mysql的差异与替换