一直对人工智能、机器学习、深度学习等相关方面有着探索的兴趣,它们对我来说就像一团迷雾。这篇文章记录一下我入门的探索。
一、理论学习
浅薄想法
对文章开头提到的几个名称的笼统想法;① 计算、分析、结果;② y = f(x),只知道大量 x 与其对应的 y,但是不知道两者之间确切的关系, 我们的目的就是输入新的 x 能获得到准确的 y;定义一个模型,也就是定义两者之间的关系,而这关系不仅仅只有一层,一层也会有多种选择,层数深度,越来越复杂。不断调整参数提高 y 正确率,也就是在训练模型。
GPU 在复杂问题上拥有更高的计算效率,并行,目前其最成功的领域是深度学习。
基础
需要注意的是,研究这些内容一般情况下需要满足三个条件:① 电脑需要配置显卡;② NVIDIA 显卡;③ 支持 CUDA 的显卡。一句话来说:最好拥有一台配置了支持 CUDA 的 NVIDIA 显卡的电脑。
在官网查找合适的显卡,但是不怎么全,建议在搜索引擎搜索下
CUDA
让 GPU 来进行复杂计算,而不只用 CPU。
如何写一款软件?使用 C 语言。
如何使用 GPU 来进行计算?使用 CUDA。
CUDA (Compute Unified Device Architecture)是 NVIDA 推出的 GPU 通用并行运算架构,CUDA 是一个异构模型,需要 CPU 和 GPU 协同工作。CPU 负责处理逻辑复杂的串行程序,而 GPU 重点处理数据密集型的并行计算程序。
推荐文章:CUDA编程入门极简教程。
推荐视频:CUDA学习第1课:用CUDA做数的平方,其中第 3 行代码 __global__
,threadIdx
等等是推荐文章中谈到的内容。建议读完推荐文章后看这个视频。
cuDNN
为 GPU 计算加速,提高性能。CUDA 的插件。
如何方便书写代码?使用 IDE。
如何提高 GPU 计算效率?使用 cuDNN。
Tensorflow、PyTorch
深度学习框架,编程库。
如何高效的写一款软件?使用 JavaScript 语言、Python 语言,多种选择。
如何高效的使用 GPU 来计算?使用 Tensorflow 框架、PyTorch 框架,多种选择。
推荐文章:深度学习框架究竟是什么?
张量(Tensor)。
我选择在 Window10 系统下使用 PyTorch 框架学习。Ubuntu 应该是更好些,但是目前是学习阶段,就用常用的系统来。Tensorflow 对我来说一直是这方面的一个标记,考虑到 PyTorch 的易学习和上手,所以选择它。
二、CUDA 相关
因为这些框架会提高学习效率,而这些框架依赖 CUDA,这就涉及到下载和安装了。
网上关于各个安装部分的内容挺多的,我就不过多重复写了,仅记录下自己遇到的问题和关键点。推荐几篇文章win10+cuda11.0+vs2019安装教程。
2.0 vs2019 和更新显卡驱动
此条为建议。
电脑先安装 vs2019 或者其他版本,解决什么依赖什么库什么 DLL 等等问题,参考文章 Visual Studio2019安装步骤。Visual Studio Installer 非常方便,最近用微软的系列开发,真是什么都给你弄好直接用的感觉。然后更新显卡的驱动。这时再开始后续内容。
2.1 查看 CUDA 最高支持版本
命令行内输入命令,右上角会显示最高支持的 CUDA 版本,可以看到我电脑是 11。
$ nvidia-smi
注意,驱动是向下兼容的。也就是说,只要安装的 CUDA 版本不高于这里显示的版本就可以,无需重装对应版本驱动!比如目前电脑驱动最高支持 11,但是各个框架最高只支持到 10,不需要重新装显卡驱动。
下载的 CUDA 也会集成 NVIDIA 显卡驱动,如果需要安装到时候重装就好,不需要要记得取消勾选。
2.2 CUDA
2.2.1 下载
这是官方各版本下载页面,下载即可。
目前我本机版本为 11,各框架最高支持到 10.1、10.2 等等,比如 Tensorflow 支持到 10.1,Pytorch 支持到 10.2,我综合考虑安装 10.1 版本。
打开这网站速度有时候不确定,但是下载速度还是不错的。如果很慢,可以考虑利用搜索引擎找与下一段类似的链接地址,或者手动拼接对应平台和版本的链接地址。
最初安装时,访问网站的速度给我造成了一定的困扰,但是最近几天却很顺畅,囧。
2.2.2 安装
选择位置进行解压,然后安装就好。可参考Win10安装CUDA10和cuDNN文章。
如果安装有问题,尝试不要勾选 Nsight System、Nsight Compute 或其他内容。如果显卡驱动不需要重新安装,要记得取消勾选。此外安装地址最好记录一下,熟悉文件夹位置。
在命令行输入命令,安装成功。如果报错,重新开一个命令窗口输入,或者检查环境变量(安装是会自动添加的,但是也有可能没添加成功)。
$ nvcc --version
nvcc:NVIDIA C 编译器
2.3 cuDNN
cuDNN 的版本需要与 CUDA 版本对应。
2.3.1 下载
这是官方各版本下载页面,但是从这里下载需要注册填写问卷才可以下载。直接右键->检查,再手动拼接地址就可以直接下载了。
// 复制得到的地址
/compute/machine-learning/cudnn/secure/8.0.2.39/10.1_20200724/cudnn-10.1-windows10-x64-v8.0.2.39.zip
// 拼接后的下载地址
https://developer.download.nvidia.cn/compute/redist/cudnn/v8.0.2/cudnn-10.1-windows10-x64-v8.0.2.39.zip
// 模板
https://developer.download.nvidia.cn/compute/redist/cudnn/${版本}/${zip包名}
这拼接方法从 Ubuntu 环境 思考得来,点击链接发现直接下载包了,然后尝试替换版本号,成功。
2.3.2 安装
直接把压缩包里面的内容复制到 CUDA 的安装目录下就好了。
三、PyTorch 相关
Anaconda 是一个核心为常用的数据科学包,这个是提供了图形界面的(Anaconda Navigator)和命令行的(Anaconda Prompt),历史下载。Conda 是一个包和环境的管理工具。Jupyter notebook 是一个 Web 应用,将说明、代码和可视化内容等全部组合到一个易于共享的文档中。推荐文章:PyTorch环境配置及安装。
四、vs 运行示例文件
运行的时候出现错误:设置环境变量 TRACEDESIGNTIME=true 并重启 Visual Studio 以进行调查。
解决方法:Visual Studio警告IDE0006的解决办法,Visual Studio 2017: IDE0006 Compiler Error encountered while loading the project
配置“Debug|x64”的 Designtime 生成失败。IntelliSense 可能不可用。检查 %TEMP% 目录中的 *.designtime.log 文件。
url: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 10.1.props
error MSB4019: 找不到导入的项目“${url}”。请确认 Import 声明“${url}”中的表达式正确,且文件位于磁盘上。
解决 MSB4019 方法:vs2019出现MSB4019 找不到导入的项目CUDA 10.0.props,我是第二种方法解决的,复制文件到报错的地址。
其他
下载帮助
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
https://download.pytorch.org/whl/torch_stable.html
https://download.pytorch.org/whl/cu102/torch-1.6.0-cp38-cp38-win_amd64.whl
https://download.pytorch.org/whl/cu102/torchvision-0.7.0-cp38-cp38-win_amd64.whl