Anaconda+Pycharm环境下的PyTorch配置方法


Posted in Python onMarch 13, 2020

写给新手的话

pycharm是什么,为什么让我指定interpreter

记事本

最开始写C语言代码的时候,人们使用vi记事本等软件写代码,写完了之后用GCC编译,然后运行编译结果,就是二进制文件。python也可以这样做,用记事本写完代码,保存成如test.py的文件后,通过命令python test.py可以运行这一文件。最初的C语言代码都是通过这种方式写的。但是人们很快发现了一个问题,就是这么弄太麻烦了,编写用vi,运行得切出去用shell,出错了再切回vi改代码。这要是编写、运行、调试都能在同一个窗口里进行,再来点语法检查,高亮,颜色,代码提示,那写代码的效率不就高多了吗?所以就有了Microsoft Visual C++等写代码工具,这些工具除了提供方便的文本编辑功能,还能够连接到编译器(C/C++)、解释器(javapythonR),把编译器和解释器的运行结果显示在自己的界面上,这些工具被称为IDE(集成开发环境)。正因为编译器,解释器不是它的组成部分,pycharm中每个项目都要指定一个interpreter才能运行。即某个路径下的python.exe。其他的IDE也都要指定运行环境。

pip又是什么

应用商店 pythonjava一样,运行起来需要各种包的支持。java兴起的最开始,开源jar包作者在各自的网站上面发布自己的包,需要用的开发者就去他们的网站上下载,然而很快就出现了一个问题,如果一个大型工程需要用到几十个,甚至几百个jar包,一个个翻网站下载显然是非常劳累的。所以就有了mavengradle,他们自己建了maven仓库和gradle仓库,就像IOS应用商店一样,开源jar包的作者会把各种版本的jar包统一上传到仓库,开发者统一下载,非常方便。 python问世的时候,javamavengradle早已流行多年,python官方也吸取了经验,直接官方内置pip工具,官方经营pip仓库。正式的名称叫做包管理工具conda的功能之一也是包管理工具。

condavitualenvpipenv 又是什么

照片管理系统 python版本繁多,版本之间的区别较大。这种不兼容激化了矛盾,当一台机器上存在多个python项目,而这些项目又各自依赖于不同的python版本以及各个不同版本的包,这些包对于python版本又非常敏感。即使有pip,配置环境也变成了一件令人绝望的事。以往java等语言没有这么激烈的矛盾,是因为它们没有这么多版本,而且版本之间也能大体兼容。所以人们就想,如果能把pip配置出来的结果“照”下来。不同项目用不同的“照片”,这问题不就解决了吗。这类任务通常都是靠虚拟化技术。

  • 传统的虚拟机可以胜任这个任务,但是运行效率有损失,消耗资源多,管理不灵活。
  • 新晋的docker容器比虚拟机更加轻量,更加灵活,但对于这个任务来说,还是同样的缺点。

于是conda等软件应运而生,它不是虚拟机,没有使用虚拟化技术,自然就没有运行效率损失。它只是一个物理机上的管理软件,可以把它想象成一个照片管理系统,只不过它管理的照片有点特殊,叫做虚拟环境,它是某个python运行环境,里面已经装好了一些特定版本的特定包。 注意:pippipenv是两个东西,不可混为一谈。

anaconda是什么,anacondaconda是什么关系,为什么要装anaconda

XX照片管理系统+XX全家桶 anacondaminiconda同为conda官方推荐的conda工具。anacondaconda的关系,就像githubgit的关系,anaconda不光包含了conda命令行软件,还包含了多如牛毛的预装python包,以及令人瞠目结舌的黑科技全家桶。我们装anaconda主要是冲着conda管理python运行环境比较方便的原因,以及它那一大堆预装包。虽然其他的我们用不到,但是大树底下好乘凉嘛。

下文所述两种配置方法异同

下面有两种pytorch环境配置方法,推荐使用第一种,即使用condapytorch环境配置方法。第二种费时费力。这是亲测的结果。不禁慨叹还是conda好用,手动撸环境犹如小米加步枪啊。

使用condapytorch环境配置方法安装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添加到pycharminterpreter可选列表中

pycharm新建工程,或在files->settings->project:<xxx>->project interpreter界面,可以设定project interpreter

新建工程界面,选择Existing enviroment,点击...按钮,会弹出添加界面。settings界面,点击齿轮按钮,选择Add,会弹出添加界面。在添加界面左侧选择Conda Environment,右边选择Existing environment,再点击...按钮添加一个已经存在的conda虚拟环境,即刚刚构建的pytorch-py36

Anaconda+Pycharm环境下的PyTorch配置方法

使用已经添加进来的虚拟环境pytorch-py36

interpreter列表中选择刚刚添加的interpreter。如果需要对刚添加的interpreter改名,比如把python 3.6 (3)改成pytorch-py36,则点击齿轮按钮,点击show all,里面可以改名。

Anaconda+Pycharm环境下的PyTorch配置方法

大功告成!

试着使用import torchimport 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

解压缩

cd ~/pythontar xvf python367.tgz

源码安装zlib

zlibpython需要的依赖库,必须提前安装。如果有管理员权限,只需用包工具即可安装,如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加入到GCCincludelib路径中。

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这种可运行文件一般显示为绿色,它的作用是根据当前环境,制定编译策略,即MakefileC/C++语言与javapythonscalaR等高度现代化的编程语言不同,它的部分语言特性是根据编译时环境而定的,这一点颇受诟病。如longint型的数据类型长度竟然取决于编译时环境。

验证安装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(字节)。我们建立名为pythonpip的软连接。

ln -s python3.6 pythonln -s pip3.6 pip

配置环境变量

修改文件~/.bashrc,添加python3.6.7环境变量。 注意:这个文件内的变量是用户变量。系统变量在/etc/profile

cd ~vim .bashrc

注意:用vim进行编辑时,不可使用鼠标。屏幕下端是状态栏。打开文件时,默认为浏览状态。输入ai可以进入编辑状态。按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里只要输入pythonpip,默认就是使用刚才安装的pythonpip

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配置方法

总结

到此这篇关于Anaconda+Pycharm环境下的PyTorch配置方法的文章就介绍到这了,更多相关Anaconda Pycharm PyTorch配置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
Python smtplib实现发送邮件功能
May 22 Python
python实现简易动态时钟
Nov 19 Python
Python中函数参数匹配模型详解
Jun 09 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
OpenCV 图像梯度的实现方法
Jul 25 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 #Python
django 取消csrf限制的实例
Mar 13 #Python
django-csrf使用和禁用方式
Mar 13 #Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 #Python
python爬虫实现获取下一页代码
Mar 13 #Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 #Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 #Python
You might like
如何用php获取文件名后缀
2013/06/09 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
js中new一个对象的过程
2017/02/20 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
对python中的xlsxwriter库简单分析
2018/05/04 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
python实现桌面气泡提示功能
2019/07/29 Python
pytorch 求网络模型参数实例
2019/12/30 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
python的dict判断key是否存在的方法
2020/12/09 Python
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
孝老爱亲模范事迹
2014/01/24 职场文书
中年人生感言
2014/02/04 职场文书
服装设计专业自荐信
2014/06/17 职场文书
公司2014年度工作总结
2014/12/10 职场文书
护士求职自荐信范文
2015/03/04 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
golang为什么要统一错误处理
2022/04/03 Golang