基于Python实现的模型训练

基于Python实现的模型训练 1,项目简介 训练模型主要分为五个模块:启动器,自定义数据加载器,网络模型,学习率/损失率调整以及训练可视化

本文包含相关资料包-----> 点击直达获取<-------

基于Python实现的模型训练

1.项目简介

UtyvKf.png

训练模型主要分为五个模块:启动器、自定义数据加载器、网络模型、学习率/损失率调整以及训练可视化。

启动器是项目的入口,通过对启动器参数的设置,可以进行很多灵活的启动方式,下图为部分启动器参数设置。

UtciwD.png

任何一个深度学习的模型训练都是离不开数据集的,根据多种多样的数据集,我们应该使用一个方式将数据集用一种通用的结构返回,方便网络模型的加载处理。

Utc9OK.png

这里使用了残差网络Resnet-34,代码中还提供了Resnet-18、Resnet-50、Resnet-101以及Resnet-152。残差结构是通过一个快捷连接,极大的减少了参数数量,降低了内存使用。

以下为残差网络的基本结构和Resnet-34 部分网络结构图。

UtcPeO.png

Utcn6P.png

除了最开始看到的train-val图表、Top-、Top-5的error记录表以外,在训练过程中,使用进度条打印当前训练的进度、训练精度等信息。打印时机可以通过上边提到的 启动器 优雅地配置。

Utc3kQ.png

以下为最终的项目包架构。

pytorch_train |-- data -- 存放读取训练、校验、测试数据路径的txt | |-- train.txt | |-- val.txt | |-- test.txt |-- result -- 存放最终生成训练结果的目录 |-- util -- 模型移植工具 |-- clr.py -- 学习率 |-- dataset.py -- 自定义数据集 |-- flops_benchmark.py -- 统计每秒浮点运算次数 |-- logger.py -- 日志可视化 |-- mobile_net.py -- 网络模型之一 mobile_net2 |-- resnet.py -- 网络模型之一 Resnet系列 |-- run.py -- 具体执行训练、测试方法 |-- start.py -- 启动器

UtgkuV.png

2.模型移植

Github 地址: pytorch_train/transfor

```python import os

import torch import torchvision

model_pth = os.path.join("results", "2020-04-27_10-27-17", 'checkpoint.pth.tar')

将resnet34模型保存为Android可以调用的文件

mobile_pt = os.path.join("results", "2020-04-27_10-27-17", 'resnet34.pt') num_class = 13 device = 'cpu' # 'cuda:0' # cpu

model = torchvision.models.resnet34(num_classes=num_class) model = torch.nn.DataParallel(model, [0]) model.to(device=device)

checkpoint = torch.load(model_pth, map_location=device) model.load_state_dict(checkpoint['state_dict'])

model.eval() # 模型设为评估模式

1张3通道224*224的图片

input_tensor = torch.rand(1, 3, 224, 224) # 设定输入数据格式 traced_script_module = torch.jit.trace(model.module, input_tensor) # 模型转化 traced_script_module.save(mobile_pt) # 保存文件 ```

3.启动模型训练

启动前需要确保你已经有了本项目使用的数据集 CompCars

3.1重新开始新的训练

shell script python start.py --data_root "./data" --gpus 0,1,2 -w 2 -b 120 --num_class 13

  • --data_root 数据集路径位置
  • --gups 使用gpu训练的块数
  • -w 为gpu加载自定义数据集的工作线程
  • -b 用来gpu训练的 batch size是多少
  • --num_class 分类类别数量

3.2使用上次训练结果继续训练

shell script python start.py --data_root "./data" --gpus 0,1,2 -w 2 -b 120 --num_class 13 --resume "results/2020-04-14_12-36-16"

  • --data_root 数据集路径位置
  • --gups 使用gpu训练的块数
  • -w 为gpu加载自定义数据集的工作线程
  • -b 用来gpu训练的 batch size是多少
  • --num_class 分类类别数量
  • --resume 上次训练结果文件夹,可继续上次的训练

3.3模型移植

将训练好的模型转换为Android可以执行的模型

shell script python transfor.py

3.4项目定制化

  • 找寻自己的数据集
  • 需要修改启动脚本中 --num_class ,模型类别

目前项目中具备很多备注记录,稍加review代码就可以理解,如有不清楚,可以私信询问。

参考文献

  • 军队基层军事训练信息管理系统的设计与实现(吉林大学·李树军)
  • 基于外源性知识辅助的自动问答技术研究(北方工业大学·李帅博)
  • 北京公安消防局救援训练管理系统的设计与实现(山东大学·郑楠)
  • 基于J2EE的数据挖掘系统的设计与实现(暨南大学·叶松云)
  • 某部训练与指挥管理信息系统的设计与开发(四川大学·石文明)
  • 基于深度学习的智能图像处理实验系统的设计与实现(哈尔滨工业大学·秦梓祺)
  • 培训中心实训平台成果展示的设计与开发(山东大学·周钰涵)
  • 基于PHP+MySQL的交互学习系统的设计与实现(吉林大学·刘博)
  • 机器学习应用开发平台的设计与实现(西安电子科技大学·邢璐)
  • 面向新疆的公安教育网络训练系统的设计与实现(大连海事大学·牟恒艺)
  • 基于知识点的个性化练习生成模型研究和实现(浙江工业大学·蒋一君)
  • 机器学习模型管理系统后端的设计与实现(南京大学·张宇昂)
  • 军队基层军事训练信息管理系统的设计与实现(吉林大学·李树军)
  • 基于J2EE技术ACM竞赛程序在线评测系统的设计与实现(厦门大学·赵春风)
  • 基于J2EE的数据挖掘系统的设计与实现(暨南大学·叶松云)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码工坊 ,原文地址:https://m.bishedaima.com/yuanma/35627.html

相关推荐

  • 基于Java+SSH的小区物业管理系统

    这是一个🔥🔥基于SSH的小区物业管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 小区物业管理系统开发技术栈为SSH项目,可以作为毕业设计课程设计作业基于Spring
    2024年05月23日
    3 1 1
  • 基于SpringBoot框架的房屋交易平台

    这是一份采用Java语言编写的🔥🔥SpringBoot框架为基础的房屋交易系统项目源代码🔥🔥,该项目运用了SpringBoot和Vue技术栈,开发工具为Idea或Eclipse
    2024年05月23日
    10 1 3
  • 基于SpringBoot框架的林业产品推荐系统

    这是一个采用Java编程语言,基于SpringBoot框架构建的林业产品推荐系统的源代码,该项目利用了SpringBoot和Vue技术栈,适用于Idea或Eclipse开发环境
    2024年05月23日
    7 1 2
  • 基于SpringBoot框架的鲜牛奶订购系统

    这是一款采用Java语言,基于SpringBoot框架构建的低温鲜奶订购系统源代码,项目采用了SpringBoot结合Vue,js的技术栈,开发工具为Idea或Eclipse
    2024年05月23日
    30 1 5
  • SSH实现在线商城在线售卖系统、javaweb+mysql

    这是一个🔥🔥SSH实现在线商城在线售卖系统,javaweb+mysql🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 在线商城系统开发技术栈为SSH项目
    2024年05月23日
    8 1 3
  • 新手python简单的飞机游戏

    game 一个新手做的python简单的飞机游戏 参考文献 基于Java EE的个人博客管理系统的设计和实现(内蒙古大学·闫伟光) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 航空订票服务器爬虫检测技术研究(杭州电子科技大学·陈万烤) 主题爬虫关键技术研究(哈尔滨工程大学·黄正德) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 飞行情报资料管理信息系统设计与实现(中国地质大学(北京)·张晓琴) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 豆玩手机游戏平台的设计与实现(吉林大学·李天明) 面向高职信息技术教育的严肃游戏设计与实施(大连理工大学·王晓姝)
    2024年05月14日
    1 1 1
  • 图像超分辨率之Python

    图像超分辨率(Image Super Resolution) 使用 Visual Studio Tools for AI 加速深度学习案例开发 一
    2024年05月14日
    4 1 1
  • 基于SpringBoot框架的网络海鲜市场系统

    这是一套采用Java语言构建的🔥🔥SpringBoot为核心的网上海鲜市场平台源代码,该项目运用了SpringBoot框架和Vue技术,开发工具为Idea或Eclipse
    2024年05月23日
    9 1 1
  • python数据分析

    python数据分析(5)——数据预处理(下) 3, 数据变换 3,1 简单函数变换 常用的变换包括平方,开方,取对数,差分运算等 3,2 规范化 为了消除指标之间的量纲和取值范围差异的影响
    2024年05月14日
    3 1 1
  • 地方旅游网站

    这是一个🔥🔥基于SpringBoot框架的地方旅游网站设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    3 1 2

发表回复

登录后才能评论