最近要在个人台式机上搭建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. F广搜

    <span style="color:#330099;">/* F - 广搜 基础 Time Limit:1000MS Memory Limit:10000KB 64b ...

  2. B. Case of Fake Numbers( Codeforces Round #310 (Div. 2) 简单题)

    B. Case of Fake Numbers time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  3. CSS经典布局之弹性布局

    当我们在浏览浏览器的时候,经常会放大/缩小浏览器的显示比例,或者在不同的设备上.所处的分辨率也不尽同样. 因此.我们须要学习一个新的知识:弹性盒模型. 弹性盒模型 实现项目对齐,方向,排序(即使项目大 ...

  4. 1245 最小的N个和(前k小ai+bi)

    1245 最小的N个和  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 有两个长度为 N ...

  5. ubuntu安装typora

    optional, but recommended sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AF ...

  6. NodeJs函数式编程

    虽然标题是NodeJS函数式编程,但实际上NodeJS 是一个框架,不是一种语言,其采用的语言是 JavaScript.而JavaScript是一种典型的多范式编程语言,算不上是函数式语言,但它有函数 ...

  7. C++11 function使用

    function是一组函数对象包装类的模板,实现了一个泛型的回调机制. 引入头文件 #include <functional>using namespace std;using names ...

  8. Area of Polycubes

    http://poj.org/problem?id=3792 题意:给出n个小正方体的中心坐标,求构成的多重小立方体的表面积.要求输入的下一个小正方体必须与之前的正方体有一个面是相交的.如果不满足条件 ...

  9. Unity 图形学 基础知识总结

    1. 渲染流水线     三大块:应用阶段,几何阶段,光栅化阶段                       渲染图元   顶点信息    GPU流水线     顶点数据=>     顶点着色器 ...

  10. 关于 android屏幕适配

    一.关于布局适配 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如 ...