最近要在个人台式机上搭建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. ios oc调用swift framework

    1.oc 调用swift /*oc调用swift, project name为DeomOC: 1.oc工程DemoOC中显式创建一个swift文件,生成DemoOC-Bridging-Header.h ...

  2. Recommendation system

    Dear Prof.Choi: My research interest is mainly the application and optimization of big data and arti ...

  3. B4197 [Noi2015]寿司晚宴 状压dp

    这个题一开始想到了唯一分解定理,然后状压.但是显然数组开不下,后来想到每个数(n<500)大于19的素因子只可能有一个,所以直接单独存就行了. 然后正常状压dp就很好搞了. 题干: Descri ...

  4. ubuntu/linuxmint下java环境变量设置

    1.root权限下使用vi或gedit打开/etc目录下的profile文件,末尾加入环境变量. 1)命令: sudo gedit /etc/profile 2)环境变量个人案例: export JA ...

  5. Vue解决移动端localhost无数据问题

    正常web端调用后台接口时使用localhost或者ip都能访问后台数据,但是在移动端上使用localhost却无法访问后台数据 这时候需要把localhost改成ip就可以在移动端上访问后台数据了

  6. nginx + php-fpm 运行原理

    一.关于nginx 1.1 简单认知 我们都知道nginx 是web服务器. 也知道 用户访问时通过ip和端口访问 nginx. 那么nginx 是如何 通过php 获取数据并返回数据的呢? 1.2 ...

  7. Hadoop Hive概念学习系列之hive里的用户定义函数UDF(十七)

    Hive可以通过实现用户定义函数(User-Defined Functions,UDF)进行扩展(事实上,大多数Hive功能都是通过扩展UDF实现的).想要开发UDF程序,需要继承org.apache ...

  8. [转]Android监听ListView里Button事件

    本文转自:http://blog.csdn.net/lovediji/article/details/6753349 public View getView(int position, View co ...

  9. 鼠标单击到 img行的时候图片隐藏方案

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. node的api

    一. 1.url: 绝对URI http://user:pass@www.example.com:80/dir/index.html?uid=1#ch1 协议 登录信息 服务器地址 端口 文件路径 查 ...