机器学习训练模型环境配置注意事项-CUDA、pytorch\torch
这里写自定义目录标题
机器学习训练模型环境配置注意事项-CUDA、pytorch\torch
机器学习入门了解必要工具CUDA、pytorch、torch之间的关系和简介,以及版本之间的对应关系。(训练模型时由于配置环境出错而导致踩坑的次数不少,特此记录)
pytorch和torch
Pytorch的历史可以追溯到2002年诞生于纽约大学的Torch。当时的Torch使用Lua语言作为接口,由于Lua过于小众,不易普及,所以Torch的幕后团队推出了Pytorch,Pytorch一方面对Lua Torch进行封装提供Python接口,另一方面对Tensor之上的所有模块进行了重构,并新增了最先进的自动求导系统。由此看来。Pytorch脱胎于Torch。
学习pytorch入门可以查看pytorch官网,也可以看书《深度学习框架PyTorch入门与实践》
Linux系统上对pytorch进行安装时,官网提供的命令如下
关于torchvision的使用和介绍,我找到一篇很好的博客,可供学习torchvision包的介绍
CUDA与pytorch
CUDA(Compute Unified Device Architecture),是一种新的操作GPU计算的硬件和软件架构,是建立在NVIDIA的GPUs上的一个通用并行计算平台和编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序,利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。它将GPU视作一个数据并行计算设备,而且无需把这些计算映射到图形API。操作系统的多任务机制可以同时管理CUDA访问GPU和图形程序的运行库,其计算特性支持利用CUDA直观地编写GPU核心程序。
CUDA提供了对其它编程语言的支持,如C/C++,Python(因此,若要使用pytorch先安装CUDA可以事半功倍,利用GPU训练模型),Fortran等语言。只有安装CUDA才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。
CUDA在软件方面组成有:一个CUDA库、一个应用程序编程接口(API)及其运行库(Runtime)、两个较高级别的通用数学库,即CUFFT和CUBLAS。CUDA改进了DRAM的读写灵活性,使得GPU与CPU的机制相吻合。另一方面,CUDA提供了片上(on-chip)共享内存,使得线程之间可以共享数据。应用程序可以利用共享内存来减少DRAM的数据传送,更少的依赖DRAM的内存带宽。
关于CUDA更加详细的介绍,我找到一篇博客作者写的非常详尽易懂,贴上链接供学习交流CUDA简介
CUDA和pytorch之间的版本对应
pytorch官方网站中,红色箭头处点击可查看cuda和pytorch对应的所有历史版本,图中红框部分可根据
自己系统的情况进行选择并查看下载命令。
模型训练过程中安装三者踩坑
- pytorch和CUDA的版本要对应好,不然大概率会报错
- 严格按照模型源码作者给出的requirements文件中要求的环境版本进行配置,尽量安装相同版本,比如作者写了pytorch1.4.0和pytorch1.4+,那么尽量安装pytorch1.4.0版本,不然也有可能报错