pytorch训练模板

来源:http://worthpen.top/#/home/blog?blog=pot-blog36.md

引言

本项目实现了基于PyTorch Lightning的神经网络训练和测试管道。项目除了实现PyTorch Lightning的工作流外,还实现了通过任务池在训练过程中添加任务、k折交叉验证、将训练结果保存在.cvs中、接受随机种子进行恢复训练、将模型转换为.onnx和.tflite。

项目地址: https://github.com/shenyan233/machine_learning_template

使用方法

环境配置

python version:3.7-3.10

pip install -r requirements.txt

cuda and torch need to be installed by itself. Recommendation:

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113

配置网络架构和数据集

整个项目目录结构如下:

.
├── dataset
│   └── {dataset_name}
│        ├── test
│        │   ├── image
│        │   │   └── *.png
│        │   └── label.txt
│        ├── train
│        │   ├── image
│        │   │   └── *.png
│        │   └── label.txt
│        └── ...
├── network
│   └── {network_name}
│         ├── network.py
│         └── ...
└── ...

上述表示的文件或文件夹需要预先配置。省略号所代表的文件或文件夹保持默认即可。
数据集需要调整为自己的数据集,图像(*.png)名称为对应label.txt中的行号。您可以在此处自由调整数据集的保存格式,但Dataloder和其他类需要在’/dataset/{dataset name}/init.py’中重写。
network.py包含要训练的网络架构, 可以改为其他名称, 但是需要同步修改__init__.py。
任务流的配置参数保存在tasks.json中。

设置训练参数

在./network/{network_name}/config.json中设置参数,参数包括model_name、dataset_path、stage、max_epoch、batch_size等。训练参数包括可选参数和必选参数, 具体内容可浏览main.py内的注释。参数stage为’fit’或’test’,分别表示处于训练阶段或测试阶段。

开始训练或测试

在终端或cmd内执行:
python3 main.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为OD】统一考试B\C卷真题 100%通过:开源项目热榜 C/C++实现

目录 题目描述: 示例1 示例2 题目描述: 某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数…

一觉睡到大天亮,dido P1S智能手环体验

智能穿戴设备对于有关注健康的朋友来说,是非常使用的工具,它们可以帮助我们实时监测一些健康数据,最近几年,国产的智能穿戴设备突飞猛进,大幅拉低了价格门槛,而且使用体验也很不错,现在我用的也…

Maven回顾

Maven 下载(前提要有jdk) Maven 下载地址:Maven – Download Apache Maven 设置 Maven 环境变量 添加环境变量 MAVEN_HOME: 右键 "计算机",选择 "属性",之后点击 "高级系统设置…

【Yocto】yocto编译系统Image优化笔记

yocto编译系统Image优化笔记 使用yocto编译出来的Image文件(比如ext4格式)有时候根据业务需求,是要进行剪裁以缩小Image的Size。 比如系统有OTA需求,系统预留的OTA分析大小是500M。但是Image(ext4格式)是1G大小。即使…

Python验证厚尾数据遵循幂律分布

统计学是数据科学和分析的基石。 它为我们提供了一个强大的工具箱来客观地回答复杂的问题。 然而,许多我们最喜欢的统计工具在应用于特定类别的数据(幂律)时变得毫无用处。 统计中的幂函数分布 scipy.stats.powerlaw() 是幂函数连续随机变量…

Python---练习:使用Python函数编写通讯录系统

预览通讯录系统最终效果 首先,进行需求分析,整个系统功能,分为6个板块,功能如下: ① 添加学员信息 ② 删除学员信息 ③ 修改学员信息 ④ 查询学员信息 ⑤ 遍历所有学员信息 ⑥ 退出系统 系统共6个功能&#xff…

Lighthouse(灯塔)—— Chrome浏览器强大的性能测试工具

本文浏览器版本参考如下: 一、认识Lighthouse Lighthouse 是 Google 开发的一款工具,用于分析网络应用和网页,收集现代性能指标并提供对开发人员最佳实践的意见。 为 Lighthouse 提供一个需要审查的网址,它将针对此页面运行一连…

TIME_WAIT状态套接字重新使用

《TIME_WAIT相关知识》里边有相关理论知识。 《TIME_WAIT状态TCP连接导致套接字无法重用实验》有相关实验。 现代Linux的TCP协议栈已经做了许多升级,所以可以让我们直接重用TIME_WAIT状态套接字而不会引起问题。下边是优化的内容: 1.新连接的SYN告知序列…

post请求乱码

如果在处理 POST 请求时出现乱码&#xff0c;你可以配置一个过滤器&#xff08;Filter&#xff09;来处理请求体的字符编码。以下是一个简单的 Java Servlet 过滤器的例子&#xff0c;用于设置请求和响应的字符编码&#xff1a; 在 web.xml 中配置过滤器&#xff1a; <filt…

MyBatis-Plus简介和入门操作

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

持续集成部署-k8s-配置与存储-存储类:动态创建NFS-PV案例

动态创建NFS-PV案例 1. 前置条件2. StorageClass 存储类的概念和使用3. RBAC 配置4. storageClass 配置5. 创建应用&#xff0c;测试 PVC 的自动配置6. 解决 PVC 为 Pending 状态问题7. 单独测试自动创建 PVC 1. 前置条件 这里使用 NFS 存储的方式&#xff0c;来演示动态创建 …

AI数字人与虚拟人:区别与应用场景

随着人工智能和虚拟技术的不断发展&#xff0c;AI数字人和虚拟人成为了数字世界中的两个重要概念。本文将介绍AI数字人和虚拟人的区别&#xff0c;并探讨它们在不同领域的应用场景。 一、AI数字人与虚拟人的区别 定义和概念&#xff1a; AI数字人&#xff1a;是利用人工智能技术…

MFC—CTabCtrl 、CListCtrl

为了方便自己查找 1、官方文档 CTabCtrl CListCtrl 2、create&#xff08;窗口样式&#xff09; 基本上安流程来都能出出来。看一下视图的窗口样式。主要是report的。 CTabCtrl选项卡控件样式 CListCtrl列表视图窗口样式&#xff08;这里的名字又变了&#xff0c;List-Vi…

单例模式-支持并发的C语言实现

代码实现&#xff1a; c #include <stdio.h> #include <stdlib.h> #include <pthread.h>// 定义单例对象结构体 typedef struct {// 单例对象的数据成员int value; } Singleton;// 静态变量&#xff0c;用于保存唯一实例的指针 static Singleton* instance …

wireshark 抓包提示

[TCP Previous segment not captured] 在TCP的传输阶段&#xff0c;同一台主机发出的数据段应该是连续的&#xff0c;即后一个包的Seq等于前一个包的SeqLen&#xff08;三次握手和四次挥手是个例外&#xff09;。如果wireshark发现后一个包的Seq号大于前一个包的SeqLen&#xf…

28. Spring源码篇依赖注入之Optional

简介 我们知道&#xff0c;java中的Optional是解决臭名昭著的空指针异常&#xff0c;在spring的依赖注入中&#xff0c;如果没有找到Bean也会抛异常&#xff0c;就算将required写为false&#xff0c;后面也会需要判空 在spring中也支持Optional的依赖注入 创建Optional jav…

【TinyALSA全解析(一)】TinyALSA简介

TinyALSA简介 一、TinyALSA概述1.1 TinyALSA背景和用途1.2 TinyALSA主要内容1.3 TinyALSA与ALSA的关系 二、TinyALSA具体有哪些内容2.1 libtinyalsa.so 库2.2 一组工具 三、tinyalsa完整目录分析四、tinyalsa的编译方法和使用方法4.1 tinyalsa编译方法4.1.1 TinyALSA全编译方法…

【JVM系列】- 穿插·对象的实例化与直接内存

对象的实例化与直接内存 &#x1f604;生命不息&#xff0c;写作不止 &#x1f525; 继续踏上学习之路&#xff0c;学之分享笔记 &#x1f44a; 总有一天我也能像各位大佬一样 &#x1f31d;分享学习心得&#xff0c;欢迎指正&#xff0c;大家一起学习成长&#xff01; 文章目录…

SpringCloud系列文章目录(总纲篇)

文章目录 前言正文一、原理性文章1.1 OpenFeign篇 二、实战性文章1.1 注册中心、配置中心篇1.2 网关篇1.3 OpenFeign篇 前言 SpringCloud系列文章&#xff0c;有些文章上下文存在联系。 并且&#xff0c;它们数量巨多&#xff0c;有涉及原理的&#xff0c;有涉及实战的。 本文…

域名邮箱与企业邮箱的区别:功能、应用与优势

根据使用者的不同需求&#xff0c;电子邮件分为域名邮箱和企业邮箱两种类型。那么这两种邮箱之间究竟存在哪些区别呢&#xff1f;本文将从定义、优势和劣势三个方面进行详细解析。 什么是域名邮箱&#xff1f; 域名邮箱&#xff0c;顾名思义是以域名作为后缀的电子邮箱。域名邮…