01
PyTorch和TensorFlow
PyTorch:一个开源的Python机器学习库,基于Torch,用于自然语言处理等程序。使用Python作为开发语言,是一个以Python优先的深度学习框架。本质上是Numpy的替代者。
TensorFlow:Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。
TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统,可以看成是一个嵌入Python的编程语言。
从目前的文档看,TensorFlow支持CNN、RNN和LSTM算法,这都是目前在Image,Speech和NLP最流行的深度神经网络模型。
PyTorch更有利于研究人员、爱好者、小规模项目等快速搞出原型。而TensorFlow更适合大规模部署,特别是需要跨平台和嵌入式部署时。
02
在Linux下载Pytorch
由推文:在Linux系统中安装anaconda的详细实操步骤 可知,安装PyTorch可以通过anaconda进行安装。
详细步骤:
1. 在确保anaconda安装成功后,进入下一步。
在上一篇推文最后中,打开新的终端验证anaconda安装成功时,会发现命令前面有(base)。
2.为PyTorch创建虚拟环境。
为pytorch创建一个虚拟环境,这是推荐的做法,这样在创建其他环境如tensorflow时,就不会互相冲突。在终端输入:conda create -n pytorch python=3.7
如果安装的是Anaconda2,安装后会出现:
再输入 conda activate pytorch进入该环境,此外conda deactivate退出该环境。进入该环境后,命令行前面有(pytorch)。
3.添加清华源。
否则会下载过慢导致失败。在终端输入以下内容,可直接粘贴复制。在Linux系统终端复制时按Ctrl+Shift+v。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
最后一句是设置安装路径可见。可输入cat ~/.condarc查看是否成功。
补充:.condarc文件在Home文件中,是隐藏文件,可按Ctrl+H将其显示。
打开后可以看到:
4打开PyTorch官网。
官网:https://pytorch.org/getstarted/locally/#anaconda,根据提示进行选择:
在Linux终端输入指令,注意官网根据你的选择给出的指令是:
conda install pytorch torchvision cpuonly -c pytorch
而在终端输入的指令时将后面的 -c pytorch 删除,这样下载的路径才是清华源。
即输入:
conda install pytorch torchvision cpuonly
输入后等待,直到安装完成。
5.检测是否安装成功
打开新的终端,输入python,再输入import torch,没有报错;再输入import torchvision,也没有报错,如图所示。此时即安装成功。
为了进一步检测,我复制了PyTorch官网上的检测代码,测试结果也是正确的,如图。
总结:
1. 下载好anaconda
2. 创建虚拟环境pytorch(或者tensorflow)
3. 添加清华源镜像
4. 输入PyTorch官网安装提示命令,删除后面的 -c pytorch
5. 检测是否安装成功
03
安装时踩过的坑
软件安装需要看运气,有时候很顺利,有时候死磕也安装不下来。
以上的过程是我最后一次安装,整个过程很流畅很顺利。但在此之前,我尝试了好几次,遇到各种问题。
1.直接在终端输入按照官网提示的指令:
出现错误:
2. 在创建环境,添加镜像后,在创建的环境中安装pytorch。
还是出现同样错误。尝试了网上不同的办法,包括将https改为http,将.condarc文件中的-default删除,输入conda config --set remote_read_timeout_secs 600.0,设置conda下载的timeout(如果时长不够可以再设置大一点)。
这些方法都没有彻底解决问题,安装依然有错误。出错原因:pytorch和torchvision下载失败,主要是下载慢,延迟过高导致。
从上图可以看到,其他下载基本都是100%,而这两个始终下载不下来。
然后我把创建的pytorch环境移除,准备重新创建试试,发现还是一直报错。
报错给我报伤心了,于是我在VMware上直接将ubuntu移除,创建新的虚拟机,重新安装ananconda,按照第二部分的安装步骤,很顺利地安装成功。
以上是我安装的过程,包括成功的和失败的。祝你安装顺利!
补充:
在进一步检测是否安装成功时:
我的最后一个结果是False。
在安装过程中我被cuda困扰挺久。因为PyTorch官网上提供了无cuda的安装指示,所以我觉得没有cuda应该也可以安装好PyTorch。还有网上一些安装教程会有通过nvcc -V检测cuda的版本等。
经过查阅,我了解到PyTorch有GPU(图形处理器)版本和CPU(中央处理器)版本。
两者的区别主要是GPU版本的运行更快。如果要训练大规模的数据集,跑的程序很大需要使用GPU版本。
如果要装GPU版的,需要cuda和cudnn。如果只是快速上手学习pytorch,可以不用废时间装GPU版,CPU版本的PyTorch基本够用,小型网络神甚至更快。
然后我查询了自己的电脑是否可以安装GPU版本的PyTorch:
首先,需要明确的是目前只有NIVDIA(英伟达)的部分显卡支持cuda。故需要查看自己电脑的显卡型号,在windows操作系统中(我的是win7),打开cmd,输入dxdiag。
也可以通过设备管理器查看。
对于有两种型号显卡的电脑来说Intel的是集成显卡,另一个是独立显卡,对于只有一种显卡的电脑那么就是集成显卡。
故我的电脑没有独立显卡,只有集成显卡(GPU集成在CPU里),且不是NIVDIA显卡,是英特尔集成显卡。只能使用CPU版本的PyTorch。所以print(torch.cuda.is_available())回答是False没有什么影响,已成功安装CPU版本的PyTorch,且目前电脑的配置并不支持安装GPU版本的PyTorch。
参考文献:
【1】linux下使用anaconda安装pytorch
【2】Conda - Downloaded bytes did not match Content-Length 问题解决方案
【3】Pytorch安装(Anaconda配置虚拟环境)