本文只是介绍一个大致的流程,简单的介绍一个深度学习项目整体的一个从下载到运行的框架让初学者入门。
实际在运行的过程中可能会遇到各种各样的问题。
目录
- 代码下载
- 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
日志信息中可以查看。