最近要在个人台式机上搭建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. 【C语言】模拟实现memmove函数(考虑内存重叠)

    //模拟实现memmove函数(考虑内存重叠) #include <stdio.h> #include <assert.h> #include <string.h> ...

  2. bzoj2427 [HAOI2010]软件安装——缩点+树形DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2427 今天的考试题...好不容易一次写对了树形DP,却没发现有环的情况... 发现自己 ta ...

  3. 杂项:E-Learning

    ylbtech-杂项:E-Learning 1.返回顶部 1. E-Learning:英文全称为(Electronic Learning),中文译作“数字(化)学习”.“电子(化)学习”.“网络(化) ...

  4. ubuntu16.04 Kafka 安装

    Kafka核心概念: 下面介绍Kafka相关概念,以便运行下面实例的同时,更好地理解Kafka. 1. Broker Kafka集群包含一个或多个服务器,这种服务器被称为broker 2. Topic ...

  5. Windows7安装SQLServer 2008图解

    Windows7安装SQL Server 2008图解        这几天因为需要,一直想安装SQL Server 2008来作为Web后台的数据库进行些实验,但总是没有时间,今天终于有时间了,便安 ...

  6. PCB 所建不凡 AWS 技术峰会2018 • 深圳站 2018.9.20

    在去[AWS 技术峰会2018 • 深圳站]之提前并没有AWS提前做功课,主要PCB这行业基本自己搭服务器搭应用,不会买云服务器.由于没用过企业级的云服务器,对云这方面还是了解还是非常有限的. 市面上 ...

  7. poj1006生理周期(中国剩余定理)

    生理周期 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 139224   Accepted: 44687 Descripti ...

  8. [Swift通天遁地]九、拔剑吧-(8)创建气泡式页面切换效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  9. JavaScript--String 字符串对象属性

    访问字符串对象的属性length: stringObject.length; 返回该字符串的长度. var mystr="Hello World!"; var myl=mystr. ...

  10. 暴力(python)

    输出由1,2,3,4组成的互不相同且无重复的三位数! #方式一 lst = ['1', '2', '3', '4'] res = [] for i in lst: for j in lst: for ...