最近要在个人台式机上搭建TensorFlow和PyTorch运行环境,期间遇到了一些问题。这里就把解决的过程记录下来,同时也可以作为安装上述环境的过程记录。

如果没有遇到类似的问题,想直接从零安装上述两个包的运行环境的,请直接阅读第三部分

一、硬件和环境配置:

1)操作系统:Ubuntu 18.04;

2)NVIDIA Driver Version :390.48;(可通过nvidia-smi命令查到)

3)GPU:GTX 1080; (可通过nvidia-smi命令查到)

4)已安装CUDA Toolkit 9.1; (可通过nvcc --version命令查到)

5)已安装Anaconda3。

二、问题描述及解决过程:

1)在安装Anaconda3后,创建名为mydev的虚拟环境

conda create --name mydev

2)随后

source activate mydev

启用虚拟环境

3)安装torch1.0.0和tensorflow1.12.0

conda install -c pytorch pytorch

conda install tensorflow-gpu

4)安装完成后,检测上述两个包是否均能够使用GPU进行训练

pytorch的测试代码:

# -*- coding: utf-8 -*-
from __future__ import print_function
import os
import torch cuda = torch.cuda.is_available()
if cuda:
print('OK! CUDA device detected.')
else :
print('Error, CUDA device NOT detected.')

tensorflow的测试代码:

import tensorflow as tf
print(tf.test.is_gpu_available())

测试结果:

pytorch测试结果显示:OK! CUDA device detected.

tensorflow测试结果显示:False.

说明torch可以检测到GPU但是tensorflow没检测到GPU。

5)开始查错。首先

source deactivate

退出当前虚拟环境

6)然后

source activate mydev

重新进入虚拟环境,

conda list

让conda列出当前虚拟环境下安装的所有包的信息,目的是查看包的版本

发现一个名为cudatoolkit的包,其版本是9.2,是随着tensorflow一并安装到虚拟环境内的。看似没有什么问题。

7)在当前虚拟环境内进入python

python

在python内,敲入:

>>> import tensorflow as tf

>>> tf.__file__

>>> tf.__version__

来获取tensorflow的安装位置,我们要检查一下tensorflow到底安装到了哪里,以及版本对不对。

从python的输出结果来看:

tensorflow的版本是1.10.0,而且位置也不对,被安装到了~/.local/lib/python3.6/site-packages/...目录下,而不是类似~/anaconda3/envs/mydev/...下。

同样类似的问题也出现在了pytorch上。

突然回想起来电脑刚装完驱动和CUDA Toolkit的时候,可能用过pip安装过tensorflow,而且当时没有意识到tensorflow有CPU和GPU版本之分,就误安装了tensorflow1.10的CPU版,而pip安装的包会优先于conda虚拟环境内安装的包,所以都乱套了。

8)根据上面的发现,我们要退出当前虚拟环境,

source deactivate

然后在主环境内

pip uninstall tensorflow

pip uninstall torch

卸载掉这两个旧的包。

9)卸载之后,再

source activate mydev

进入虚拟环境,运行tensorflow的测试代码,显示

cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version

意思是CUDA驱动版本和CUDA运行库版本不匹配,这是由于之前所说的cudatoolkit版本是9.2,版本过高造成的。

10)于是根据出错信息上网搜解决措施,发现在conda虚拟环境内,利用

conda update --all

可以使conda意识到在当前虚拟环境内,包之间的版本依赖问题,敲入上述指令后,发现conda提出的解决方案中,将cudatoolkit降级为9.0,pytorch降级为0.4.1。

于是很欣慰的敲入上述指令并运行,发现tensorflow可以发现GPU了。

11)第10步中我们降级了pytorch,所以我们要重新安装pytorch为1.0.0版:

conda install -c pytorch pytorch

12)完整操作后,我们就有了tensorflow1.12.0和pytorch1.0.0了~

三、上述的环境配置全过程整理

1)首先,如果您的电脑之前利用pip命令曾经安装过tensorflow或者pytorch,请用

pip uninstall tensorflow

pip uninstall torch

在pip中卸载掉这两个包。

2)随后按照如下步骤操作:

创建虚拟环境

conda create --name mydev

进入虚拟环境

source activate mydev

安装tensorflow和pytorch

conda install -c pytorch pytorch

conda install tensorflow-gpu

让conda再次整理包间的依赖

conda update --all

重新安装pytorch

conda install -c pytorch pytorch

3)测试安装好的两个包是否均支持GPU,测试代码已在上面给出。

四、总结

1)安装tensorflow时,一定要写tensorflow-gpu而不是tensorflow,否则安装的是tensorflow的CPU版而不是GPU版。

2)理论上来说,pip和conda命令是冲突的。pip解决的是python内包之间的依赖问题,而conda的目标是管理任何编程语言之间的包的依赖问题。所以根据喜好,以后尽量使用二者中的一个。

3)当包的状态不对时,可以利用packageName.__version__和packageName.__file__可以查看包的版本和安装位置。

Ubuntu 18.04 nvidia driver 390.48 安装 TensorFlow 1.12.0 和 PyTorch 1.0.0 详细教程的更多相关文章

  1. Ubuntu 18.04 下 emscripten SDK 的安装

    Ubuntu 18.04 下 emscripten SDK 的安装http://kripken.github.io/emscripten-site/docs/getting_started/downl ...

  2. 在 Ubuntu 18.04 LTS 无头服务器上安装 Oracle VirtualBox

    作者: Sk 译者: LCTT qhwdw | 2018-10-12 01:59 本教程将指导你在 Ubuntu 18.04 LTS 无头服务器上,一步一步地安装 Oracle VirtualBox. ...

  3. Windows 10、Ubuntu 18.04 双系统 双硬盘 安装经验总结

    首先说明,我假设读者懂得分区.安装系统,所以不再深入讨论具体操作. 如果需要手把手教程,建议先参考其它Windows中加装Linux的相关文章. 网上其它文章.教程的常见问题是,各家机器配置不一样,安 ...

  4. Ubuntu 14.04 Nvidia显卡驱动手动安装及设置

      更换主板修复grub 引导后,无法从Nvidia进入系统(光标闪烁), 可能是显卡驱动出了问题. 1. 进入BIOS设置, 从集成显卡进入系统 将显示器连接到集显的VGI口, 并在BIOS中设置用 ...

  5. Ubuntu 18.04 下用命令行安装Sublime

    介绍: 添加来源: $ wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - $ sud ...

  6. Ubuntu 18.04 下 PostgreSQL 10 的安装与基础配置

    下载安装 在命令行执行如下语句: apt-get install postgresql-10 该指令会帮助你下载如下PostgreSQL组件: name |explain | ------------ ...

  7. Ubuntu 18.04 截图工具-flameshot(安装及使用)

    安装flameshot:https://github.com/lupoDharkael/flameshot 安装命令: sudo apt-get install flameshot 设置>设备& ...

  8. Ubuntu 18.04 64位安装tensorflow-gpu

    第一步(可直接跳到第二步):安装nvidia显卡驱动 linux用户可以通过官方ppa解决安装GPU驱动的问题.使用如下命令添加Graphic Drivers PPA: 1 sudo add-apt- ...

  9. 如何在Ubuntu 18.04上安装Pip

    一.简介: Pip是一个软件包管理系统,它简化了用Python编写的软件包(如Python包索引(PyPI)中的软件包)的安装和管理. 在Ubuntu 18.04上缺省没有安装Pip,但安装非常简单. ...

随机推荐

  1. MySQL hash分区(四)

    具体描写叙述总结请看MySQL分区(一) 样例:该样例为本人个人学习总结分享->具体说明-->有问题欢迎前来交流 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  2. npm/bower/brew

    npm: npm(node package manager)node包管理器,用来下载发布第三方工具包,例如:代码的压缩.合并.编译的插件包.主要功能:安装.卸载.更新.查看.搜索.发布等 npm的具 ...

  3. Objective-C NSFileManager 文件管理总结

    createFileAtPath //创建文件 NSFileManager *fm = [NSFileManager defaultManager]; NSString *strpath = [NSS ...

  4. js 数字格式化,只能输入正负整数,小数

    1.只能输入正整数 <input name="columnValue" class="input96 required" type="text& ...

  5. 【WIP】Bootstrap 基础

    创建: 2017/09/28   更新: 2017/10/14 标题加上[WIP]

  6. phpexecl 的基本操作

    基本使用方法分三部分:一.引入接口 // PHPExcel_IOFactory require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory. ...

  7. windows下 redis/tomcat 服务自启动

    //设置redis服务自启动 //根据个人配置执行语句.   redis-server --service-install redis.windows.conf --loglevel verbose ...

  8. GoLang 编译exe添加ICO图标

    我们在做Go开发的时候在Window平台下编译出来的exe后大部分都是没有图标,看起来很难看.下面我们说下如何添加一个图标. 1.首先在根目录下,exe的同级目录下创建.rc文件, IDI_ICON1 ...

  9. MyEclipse找不到install new software

    Window->Preferences->Capabilities-> classic update(勾选即可) 勾选后会出现software updates,下面按照help-&g ...

  10. 【BZOJ1124】[POI2008]枪战Maf(基环树_构造)

    被教练勒令做题不能看题解后的第一道新题,自行 yy 了好久终于 AC 了(菜啊)--写博客纪念. 题目: BZOJ1124 分析: 考虑每个人向他要打的人连边.根据题意,所有点都有且只有一条出边.那么 ...