【深度学习项目从下载到运行】

news/2024/7/24 7:33:17 标签: 深度学习

本文只是介绍一个大致的流程,简单的介绍一个深度学习项目整体的一个从下载到运行的框架让初学者入门。
实际在运行的过程中可能会遇到各种各样的问题。

目录

  • 代码下载
  • python项目各个文件夹的解释
  • 一个深度学习项目要包含的各个模块
  • 配置环境
  • 命令行运行项目且看项目的参数设置
  • `if __name__ == ‘__main__‘代码的作用
  • 深度学习项目训练结果保存
  • 服务器上挂程序跑

代码下载

  • github上直接搜索下载。
  • paperwithcode网站搜。
  • 去找别人看这篇论文做的笔记里面可能有代码地址。

以github下载代码为例子。
在这里插入图片描述

python项目各个文件夹的解释

一个大的 Python 项目通常会被组织成多个文件夹,每个文件夹都有特定的功能和用途。
以下是常见的文件夹和它们可能的用途:

  • src 或 source: 这通常是项目的主要源代码目录。您会在这里找到实际执行功能的 Python 脚本或模块。
  • tests 或 testing: 这个文件夹包含用于测试代码的单元测试、集成测试和功能测试。保持测试代码与源代码分开可以确保代码的稳定性和可靠性。
  • docs: 这个文件夹通常包含项目的文档,如用户手册、API 文档、教程等。
  • data 或 dataset: 如果项目涉及数据处理,这个文件夹可能用于存储原始数据、预处理后的数据或训练数据集。
  • config 或 settings: 这个文件夹可能包含配置文件,用于存储项目的设置、参数和选项。
  • models 或 algorithms: 如果项目涉及机器学习或深度学习模型,这个文件夹可能包含模型定义、训练脚本和模型权重。
  • utils 或 utilities: 这个文件夹可能包含通用的工具函数、帮助类和辅助功能,用于整个项目的多个部分。
  • scripts 或 bin: 这个文件夹可能包含可执行的脚本,用于执行特定的任务,如数据处理、部署等。
  • virtualenv 或 venv: 如果项目使用虚拟环境来隔离依赖,这个文件夹可能包含虚拟环境的文件。
  • examples 或 demos: 这个文件夹可能包含演示如何使用项目的示例代码。
  • logs 或 log: 如果项目记录日志,这个文件夹可能用于存储日志文件。
  • LICENSE(许可证):是一种法律文档,规定了代码的使用条件和限制。它定义了其他人如何使用、修改和分发你的代码。
  • nohup.out 是一个文件,它通常由 nohup 命令在后台运行的进程生成。nohup 命令用于在终端关闭后继续运行进程,而 nohup.out 文件则用于将进程的输出重定向到文件中。当你使用 nohup 命令在后台运行一个进程时,该进程的输出(包括标准输出和标准错误输出)不会显示在终端上,而是被重定向到名为 nohup.out 的文件中。这样做的好处是,即使你关闭了终端或断开了与远程服务器的连接,进程仍然可以继续运行,并且输出信息被记录到 nohup.out 文件中,方便后续查看。注意,每次你使用 nohup 命令启动一个新的后台进程时,都会创建一个新的 nohup.out 文件,旧的 nohup.out 文件不会被自动清除,可能会导致文件越来越大。如果你想查看后台进程的输出,可以使用 cat 命令或其他文本编辑器打开 nohup.out 文件。例如,可以使用以下命令查看文件内容:
  • .pth 文件是用于自定义模块导入路径的文件,通过在其中添加目录路径,可以将自己的模块或第三方模块添加到Python的模块搜索路径中,从而可以方便地导入和使用这些模块。

一个深度学习项目要包含的各个模块

  • config(一般是参数设置)
  • dataset(数据集)
  • dataloader(数据集的加载)
  • model(模块)
  • optimizer(优化器)
  • train(训练)
  • test(测试)

配置环境

按照README.md文件上说的下载并配置环境。

pip install -r requirements.txt#如果有requirements.txt安装其依赖。

运行代码报错的话,缺啥包安装啥包。

命令行运行项目且看项目的参数设置

python name.py --help #可以看该项目的参数都是啥
python name.py  #直接是使用默认值运行
#注意name是你要运行的程序的名字

`if name == ‘main‘代码的作用

当你看到 if __name__ == '__main__': 这个代码块时,它表示以下的代码只会在当前文件作为主程序执行时才会被执行。

深度学习项目训练结果保存

最近,开始跑第一篇复现的论文代码,发现训练过一次后再次训练就直接显示训练结束了。
或者之前训练断了之后再次训练之后接着上次的轮次直接训练了。
我不禁好奇这是咋存的数据。后来发现是torch.save()是一个将模型的参数字典保存到文件的操作。
不了解的可以看一下这个函数。保存的文件一般会在log文件夹下是一个.pth文件。
若你想再次的从头训练这个模型,删除这个.pth文件便可以从头开始训练了。

服务器上挂程序跑

我用xshell连接实验室的服务器跑一个深度学习的项目,发现xshell关了后项目就不跑了。
当时觉得服务器一直在开着,按理说应该还在服务器上跑呀。
后来才明白过来你的服务器是一直开着的,但是你的连接终端是本地的,故本地的终端关了后自然服务器就不运行了。
解决办法,用nohup让进程在后台进行。
具体操作就是:nohup python train.py即可,这时候关闭xshell和关闭自己的电脑该程序仍可以在服务器上跑。
输出的结果在nohup.out日志信息中可以查看。


http://www.niftyadmin.cn/n/5150533.html

相关文章

基于龙格-库塔算法的无人机航迹规划-附代码

基于龙格-库塔算法的无人机航迹规划 文章目录 基于龙格-库塔算法的无人机航迹规划1.龙格-库塔搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用龙格-库塔算法来优化无人机航迹规划…

java入门,java数据结构二叉树结构

一、前言 树结构是计算机各种存储和查询算法的基本结构。但是在学习这个数据结构的时候,很少人知道它有什么运用,因为在学的时候,也是纯数学的讲解。博主当时学的时候也是云里雾里,最经典的就是严蔚敏和吴伟民的那本《C语言数据结…

Java日期比较大小的3种方式及拓展

目录 一、字符串String的日期比较 二、数值型long比较 三、日期型Date直接比较 四、Date型日期的获取方式 五、Calendar获取年月日【拓展】 一、字符串String的日期比较 String型的日期通过compareTo()来比较,因为String实现了comparable接口 endDate.compare…

批量新增报错PSQLException: PreparedStatement can have at most 65,535 parameters.

报错信息: org.postgresql.util.PSQLException: PreparedStatement can have at most 65,535 parameters. Please consider using arrays, or splitting the query in several ones, or using COPY. Given query has 661,068 parameters ; SQL []; PreparedStatemen…

Spring Boot 常见面试题

目录 1.Spring Boot 快速入门什么是 Spring Boot?有什么优点?Spring Boot 与 Spring MVC 有什么区别?Spring 与 Spring Boot 有什么关系?✨什么是 Spring Boot Starters?Spring Boot 支持哪些内嵌 Servlet 容器?如何设…

x86保护模式笔记

多任务 调用门权级规则 合法调用门g1定义: 门g1.DPL 贱于或等于 门g1.目标段.DPL若 代码段p1.CPL 优于或等于 门g1.DPL 则 p1 正常 call g1TSS 权级规则 权级规则4. p代码段CPL d数据段DPL: 判定p访问d 若 p代码段CPL < d数据段DPL, 则p能访问d …

Python 异常处理:try、except、else 和 finally 的使用指南

异常处理 当发生错误&#xff08;或我们称之为异常&#xff09;时&#xff0c;Python 通常会停止执行并生成错误消息。 try 块用于测试一段代码是否存在错误。 except 块用于处理错误。 else 块用于在没有错误时执行代码。 finally 块用于无论 try 和 except 块的结果如何…

我用 LangChain 打造自己的 LLM 应用项目

随着LLM的技术发展&#xff0c;其在业务上的应用越来越关键&#xff0c;通过LangChain大大降低了LLM应用开发的门槛。本文通过介绍LangChain是什么&#xff0c;LangChain的核心组件以及LangChain在实际场景下的使用方式&#xff0c;希望帮助大家能快速上手LLM应用的开发。 技术…