1:查看CUDA Version
(查看/usr/local/cuda/version.txt)、
CUDA Version 8.0.61
2:Linux 多个python版本的问题:
2.1安装:
下载:wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
解压:tar -zxvf Python-3.5.3.tgz
配置 进入python-3.5.3 1 : (后面是指定安装路径)
./configure --prefix=/usr/local/bin/python353(可以指定也可以默认)
make
make install
默认python3.53位置:/usr/local/lib/python3.5
(PS:这里记录的是普通的方法,但是在import pytorch可能会报错,直接看模块3)
2.2 关于软链接的问题
Linux下使用python命令实际上都是使用软连接连接到指定的编辑器上,
(python只是一个连接的名字,python3也可以,python4也可以)
使用:which python 查看一下Python可执行文件的位置
查看软链接:切换到该目录下执行 ll python * 命令查看
增加一个软链接:ln -s /usr/local/lib/python3.5 /usr/bin/python3
删除一个软链接直接rm rm python3
此时使用python3可以连接python3.5的编译器。
2.3关于不同python版本下包版本冲突的问题
第一种情况:例如python2和python3下的numpy并不兼容:
python2下使用 pip install numpy
python3下使用 pip3 install numpy
这样可以看到安装的是不同版本的numpy,存放在不同的site-package下
这个很重要哦,虽然在python3下使用pip一样会打python3的package,但是在多个版本下pip 和 pip3的差别就体现出来了
第二种情况:建立虚拟环境 virtualenv
1 创建一个虚拟环境
virtualenv -p python 编辑器位置 自定义的虚拟环境位置(文件夹就是这个环境的名字)
virtualenv -p python编辑器位置 --no-site-packages 环境名字
此时便是在当前目录创建这个虚拟环境
这里有一个 --no-site-packages 是指这个环境不使用全局环境的包,比如python3.5的包不适用于python3.6,那么创建python3.6环境时就要打上这个no-site-packages
2 激活这个环境
source 自定义的虚拟环境位置/bin/activate
3 退出这个环境
deactivate
其实对于python2 和python3 这种大不同的版本,使用第一种软链接完全可以实现共存
对于python 3.5 python3.6这种小版本不同,使用virtualenv创建虚拟环境
3安装pytorch
使用pip安装pytorch可以参考官网
在此处记录一个import错误:
ImportError:libpython3.5m.so.1.0: cannot open shared object file: No such file or directory
而你翻遍了系统都找不到这个libpython3.5.so.1.0,说明错误出现在安装python3.5的某个步骤上
原因:在于安装python3.5是没有共享库(--enabled-shared)
解决办法:重新编译python3.5安装,并指定路径
进入python3.5的解压包:
./configure --prefix=/usr/local --enable-shared --with-threads
LD_RUN_PATH=/usr/local/lib make
在此import torch 不再报错sudo make install
4运行py文件
CUDA_VISIBLE_DEVICES=0,1,2 python3 /mnist/rnn.py
!!注意是python3的编辑器去运行 (指定CUDA模块 python编辑器 python文件)
利用nvidia-smi来查询GPU信息,获取GPU模块,可以看到一共有四块NVIDIA GPU模块,编号分别为0,1,2,3 选取其中部分全部作为上个命令行代码CUDA_VISIBLE_DEVICES的值
nvidia-smi是一个命令行工具,可以帮助你管理操作GPU device,并且允许你查询和更改device状态