扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章将为大家详细讲解有关Anaconda+Pycharm环境下如何配置PyTorch,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
为华容等地区用户提供了全套网页设计制作服务,及华容网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、华容网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!pycharm
是什么,为什么让我指定interpreter
记事本
最开始写C
语言代码的时候,人们使用vi
,记事本
等软件写代码,写完了之后用GCC
编译,然后运行编译结果,就是二进制文件。python
也可以这样做,用记事本
写完代码,保存成如test.py
的文件后,通过命令python test.py
可以运行这一文件。最初的C
语言代码都是通过这种方式写的。但是人们很快发现了一个问题,就是这么弄太麻烦了,编写用vi
,运行得切出去用shell
,出错了再切回vi
改代码。这要是编写、运行、调试都能在同一个窗口里进行,再来点语法检查,高亮,颜色,代码提示,那写代码的效率不就高多了吗?所以就有了Microsoft Visual C++
等写代码工具,这些工具除了提供方便的文本编辑功能,还能够连接到编译器(C/C++
)、解释器(java
,python
,R
),把编译器和解释器的运行结果显示在自己的界面上,这些工具被称为IDE
(集成开发环境)。正因为编译器,解释器不是它的组成部分,pycharm
中每个项目都要指定一个interpreter
才能运行。即某个路径下的python.exe
。其他的IDE
也都要指定运行环境。
pip
又是什么应用商店 python
和java
一样,运行起来需要各种包的支持。java
兴起的最开始,开源jar
包作者在各自的网站上面发布自己的包,需要用的开发者就去他们的网站上下载,然而很快就出现了一个问题,如果一个大型工程需要用到几十个,甚至几百个jar
包,一个个翻网站下载显然是非常劳累的。所以就有了maven
和gradle
,他们自己建了maven
仓库和gradle
仓库,就像IOS应用商店
一样,开源jar
包的作者会把各种版本的jar
包统一上传到仓库,开发者统一下载,非常方便。 python
问世的时候,java
的maven
和gradle
早已流行多年,python
官方也吸取了经验,直接官方内置pip
工具,官方经营pip
仓库。正式的名称叫做包管理工具
。 conda
的功能之一也是包管理工具。
conda
,vitualenv
,pipenv
又是什么照片管理系统 python
版本繁多,版本之间的区别较大。这种不兼容激化了矛盾,当一台机器上存在多个python
项目,而这些项目又各自依赖于不同的python
版本以及各个不同版本的包,这些包对于python
版本又非常敏感。即使有pip
,配置环境也变成了一件令人绝望的事。以往java
等语言没有这么激烈的矛盾,是因为它们没有这么多版本,而且版本之间也能大体兼容。所以人们就想,如果能把pip
配置出来的结果“照”下来。不同项目用不同的“照片”,这问题不就解决了吗。这类任务通常都是靠虚拟化技术。
传统的虚拟机可以胜任这个任务,但是运行效率有损失,消耗资源多,管理不灵活。
新晋的docker
容器比虚拟机更加轻量,更加灵活,但对于这个任务来说,还是同样的缺点。
于是conda
等软件应运而生,它不是虚拟机,没有使用虚拟化技术,自然就没有运行效率损失。它只是一个物理机上的管理软件,可以把它想象成一个照片管理系统
,只不过它管理的照片
有点特殊,叫做虚拟环境
,它是某个python
运行环境,里面已经装好了一些特定版本的特定包。 注意:pip
和pipenv
是两个东西,不可混为一谈。
anaconda
是什么,anaconda
和conda
是什么关系,为什么要装anaconda
XX照片管理系统+XX全家桶 anaconda
和miniconda
同为conda
官方推荐的conda
工具。anaconda
和conda
的关系,就像github
和git
的关系,anaconda
不光包含了conda
命令行软件,还包含了多如牛毛的预装python
包,以及令人瞠目结舌的黑科技全家桶。我们装anaconda
主要是冲着conda
管理python
运行环境比较方便的原因,以及它那一大堆预装包。虽然其他的我们用不到,但是大树底下好乘凉嘛。
下文所述两种配置方法异同
下面有两种pytorch
环境配置方法,推荐使用第一种,即使用conda
的pytorch
环境配置方法。第二种费时费力。这是亲测的结果。不禁慨叹还是conda
好用,手动撸环境犹如小米加步枪啊。
使用conda
的pytorch
环境配置方法安装anaconda
下载anaconda
在https://www.anaconda.com/distribution/ 找到合适的安装包,得到下载链接后进行下载
https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
安装anaconda
所有步骤参照官方文档 https://docs.anaconda.com/anaconda/install/linux/
bash Anaconda3-2019.03-Linux-x86_64.sh
使用conda
组装pytorch
虚拟环境安装pytorch
到本地conda
仓库中
到pytorch
官方网站找到合适的安装命令 https://pytorch.org/get-started/locally/ 注意:CUDA
是使用GPU
进行计算的组件。
conda install pytorch-cpu torchvision-cpu -c pytorch
使用下面的命令可以看到conda
仓库中的torch
创建新的conda list |grep torch
conda
虚拟环境官方文档
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
conda create --name pytorch-py36 --channel pytorch python=3.6 pytorch-cpu torchvision-cpu
使用conda
虚拟环境
activate pytorch-py36python
在打开的python
命令行里输入
import torchimport torchvisionimport numpy
不报错则说明构建conda
虚拟环境pytorch-py36
成功。 注意:pytorch-py36
默认在anaconda
目录下的envs
文件夹中。
在pycharm
中使用conda
虚拟环境将自己创建的conda
虚拟环境pytorch-py36
添加到pycharm
的interpreter
可选列表中
在pycharm
新建工程,或在files->settings->project:
界面,可以设定project interpreter
。
新建工程界面,选择Existing enviroment
,点击...
按钮,会弹出添加界面。settings
界面,点击齿轮
按钮,选择Add
,会弹出添加界面。在添加界面左侧选择Conda Environment
,右边选择Existing environment
,再点击...
按钮添加一个已经存在的conda
虚拟环境,即刚刚构建的pytorch-py36
。
使用已经添加进来的虚拟环境pytorch-py36
在interpreter
列表中选择刚刚添加的interpreter
。如果需要对刚添加的interpreter
改名,比如把python 3.6 (3)
改成pytorch-py36
,则点击齿轮
按钮,点击show all
,里面可以改名。
大功告成!
试着使用import torch
,import torchvision
这样的语句,不会报错则成功。
pytorch
手动配置方法源码安装python3.6.7
下载python3.6.7
cd ~wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
创建目录,改名
mkdir ~/pythonmkdir ~/python/python367mv ~/Python-3.6.7.tgz ~/python/python367.tgz
解压缩
源码安装zlibcd ~/pythontar xvf python367.tgz
zlib
是python
需要的依赖库,必须提前安装。如果有管理员权限,只需用包工具即可安装,如sudo apt-get install zlib1g-dev
;因为没有管理员权限,所以采用源码安装。可以用以下两条命令确认zlib是否存在。
ls /usr/include |grep zlibls /usr/lib |grep zlib
如果任意一条输出为空,则说明zlib
不存在,需要安装。 注意:|grep
可以跟在任意命令之后,对该命令的输出结果进行搜索,只显示跟搜索内容有关的部分。
cd ~/python/Python-3.6.7/Modules/zlibmkdir ~/python/zlib./configure -- prefix=/home4/grad4/wzhao1/python/zlibmake install
然后将zlib
加入到GCC
的include
和lib
路径中。
export C_INCLUDE_PATH=~/python/zlib/includeexport CPLUS_INCLUDE_PATH=~/python/zlib/includeexport LD_LIBRARY_PATH=~/python/zlib/libexport LIBRARY_PATH=~/python/zlib/lib
注意:此处的路径修改仅对当前shell
有效,关闭shell
或断开重连都会导致路径失效。因为我们只需要编译一次,所以采用这种方式。想查看这两个路径的当前值使用echo
命令,即echo $C_INCLUDE_PATH
。如果想要每次都生效,可以将export
命令写入.bashrc
中。 注意:GCC
编译时搜索的路径远比这些变量多,这些变量只是其中的一部分,且通常默认为空,也不是最优先的。比如最常见的,也是一般情况下最优先的搜索路径是/usr/include
和/usr/lib
,也就是刚才判断zlib
是否存在的命令中搜索的路径。 注意:四个变量含义:C头文件路径(.h),C++头文件路径(.hpp),动态链接库路径(.so),静态链接库路径(.a)。
编译安装
cd ~/python/Python-3.6.7/./configure -- prefix=/home4/grad4/wzhao1/python/python367makemake install
如有报错,必须停下来解决问题。如果一直没有报错,则会安装成功。 注意:--prefix
后面的参数必须是绝对路径,不能出现~
,.
,..
这样的相对路径。echo ~
可以显示处当前用户~
目录的绝对路径,如/home4/grad4/wzhao1
。--prefix
后面的参数简单理解,就是windows
下的安装路径。 注意:以上过程是自动化编译,./configure
这种可运行文件一般显示为绿色
,它的作用是根据当前环境,制定编译策略,即Makefile
。C/C++
语言与java
,python
,scala
,R
等高度现代化的编程语言不同,它的部分语言特性是根据编译时环境而定的,这一点颇受诟病。如long
,int
型的数据类型长度竟然取决于编译时环境。
验证安装1
cd ~/python/python367/bin./python3.6
如果python
命令行正常启动,且显示版本也是正确的3.6.7
,则安装成功。
备份编译包
同一环境,尤其是同一服务器下通常不需要重新编译,只要有人编译出一份并备份保存,所有人都能直接下载使用。为了这个目的,以及备份的目的,我们要把编译结果保存成压缩包。
cd ~/pythontar cvf python367.tgz python367
建立软连接
软连接可以简单理解为windows
下的快捷方式,建立软连接的目的是为了更方便地使用我们安装的python
。从这个步骤开始都不做,python
也能正常使用。进入~/python/python367/bin
下查看目前的情况。
ls -lh
可以看到,软连接是浅蓝色
,并标注了它指向的目标。如python3 -> python3.6
,而且可以看到python3.6
的文件大小是12M,而python3
的大小是9(字节)。我们建立名为python
和pip
的软连接。
配置环境变量ln -s python3.6 pythonln -s pip3.6 pip
修改文件~/.bashrc
,添加python3.6.7
环境变量。 注意:这个文件内的变量是用户变量。系统变量在/etc/profile
。
cd ~vim .bashrc
注意:用vim
进行编辑时,不可使用鼠标。屏幕下端是状态栏。打开文件时,默认为浏览状态。输入a
或i
可以进入编辑状态。按ESC
回到浏览状态,在浏览状态下,输入:q!
强制退出不保存,输入:wq
保存退出。
export PYTHON_HOME="~/python/python367"export PATH="$PYTHON_HOME/bin:$PATH"
修改完环境变量后,不会立即生效。用这个命令让环境变量立即生效。
source .bashrc
验证安装2
python --versionpip --version
显示下列结果即安装成功
Python 3.6.7pip 10.0.1
今后该用户的shell
里只要输入python
和pip
,默认就是使用刚才安装的python
和pip
。
在python3.6.7
中安装pytorch
下载pytorch
在 https://pytorch.org 找到合适的安装包,得到下载链接后进行下载
wget https://download.pytorch.org/whl/cpu/torch- 1.0.1.post2-cp36-cp36m-linux_x86_64.whl
使用pip
安装pytorch
pip install torch-1.0.1.post2-cp36-cp36m- linux_x86_64.whlpip install torchvision
注意:torch-1.0.1.post2-cp36-cp36m-linux_x86_64.whl
不能改名,因为pip
会严格检查文件名是否符合当前python
版本,不符合则拒绝安装。
验证安装
pythonimport torchimport torchvision
不报错则安装成功。
在Pycharm
下使用pytorch
在新建工程的时候选择existing interpreter
,指定之前安装的python.exe
即可。(即~/python/python367
)对于已经存在的工程,可以按如下步骤操作(如果project interpreter
里面有我们要的python.exe
,就不需要再add
了)
关于“Anaconda+Pycharm环境下如何配置PyTorch”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流