系统配置:

Ubuntu14.04(x64)

CUDA8.0

cudnn-8.0-linux-x64-v5.1.tgz(Tensorflow依赖)

Anaconda

1. Torch安装

Torch是深度学习一个非常好的框架,使用人也特别多,之前一直使用caffe进行实验,最近一个实验需要在Torch下面跑,所以借此机会安装一下torch。

Torch的官方文档已经说的非常详细,安装可以直接按照官方文档进行,官方文档戳我。

首先从github中down下来torch,放在~/torch文件夹下面:

git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch;
bash install-deps;
./install.sh

在安装过程中,可能会出现权限问题,如果不行可以直接在命令前加入sudo 来使用管理员权限来进行操作。

在安装过程中,Torch安装程序已经自动将所需的PATH等环境变量写入环境变量配置文件中,我们需要做的就是将新的环境变量执行,使其生效。

# On Linux with bash
source ~/.bashrc
# On Linux with zsh
source ~/.zshrc
# On OSX or in Linux with none of the above.
source ~/.profile

  

如果没有出现问题,那么Torch已经安装成功。

Torch 的使用和python 非常类似,在命令行中输入  th ,则会出现下面信息:

此时,Torch已经成功安装。

2. Tensorflow安装

Tensorflow安装官网已经很完善,直接参考官网教程。

因为系统已经安装Torch和caffe,为了不使得自己的环境变量混乱,推荐使用anaconda安装Tensorflow,方便管理,快捷。

Anaconda安装Tensorflow教程戳我

Tensorflow-gpu1.2.1

1. 安装Cuda

  首先下载Cuda8.0,然后进入下载目录,执行下列命令,即可安装Cuda

  安装完成后,配置环境变量,在home下的.bashrc中加入

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda:$CUDA_HOME

2. 安装Cudnn

  Cuda8.0支持Cudnn v5.0和v5.1,但是在安装tensorflow之后测试其示例代码mnist时,提示该代码基于Cudnn v5.1生成,因此我又改成了v5.1。
  下载Cudnn v5.1,进入下载目录,执行下列命令:

tar xvzf cudnn-8.0-Linux-x64-v5.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn.so* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn.so*​

上面第2、3行就是把Cudnn的头文件和库文件复制到Cuda路径下的include和lib目录。

3.使用Anaconda安装tensorflow

  首先新建一个conda环境,命名为tensorflow

conda create -n tensorflow Python=2.7

然后激活该环境并在该环境下安装tensorflow

source activate tensorflow

由于使用conda安装的tensorflow,所以我们使用pip安装,

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.1-cp27-none-linux_x86_64.whl
pip install –ignore-installed –upgrade $TF_BINARY_URL

如此,便完成GPU版本的tensorflow安装。使用完毕后,需要关闭tensorflow环境

source deactivate

可以简单测试一下tensorflow是否安装成功

python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session() #在该步会显示电脑的显卡信息
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant()
>>> b = tf.constant()
>>> print(sess.run(a + b))

测试mnist简单实验。

由于使用anaconda安装的tensorflow并没我model,所以需要从github上面git下来model文件夹。

cd /home/startag/anaconda/envs/tensorflow
git clone https://github.com/tensorflow/models.git

然后跑MNIST程序测试tensorflow性能:

cd /anaconda/envs/tensorflow/models/tutorials/image/mnist
python convolutional.py

  

输出实验结果:

Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
2017-05-27 11:02:25.851275: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-27 11:02:25.851296: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-27 11:02:25.851301: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-05-27 11:02:25.851304: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-27 11:02:25.851306: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2017-05-27 11:02:25.945195: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-05-27 11:02:25.945405: I tensorflow/core/common_runtime/gpu/gpu_device.cc:887] Found device 0 with properties:
name: GeForce GTX TITAN X
major: 5 minor: 2 memoryClockRate (GHz) 1.076
pciBusID 0000:01:00.0
Total memory: 11.91GiB
Free memory: 429.00MiB
2017-05-27 11:02:25.945418: I tensorflow/core/common_runtime/gpu/gpu_device.cc:908] DMA: 0
2017-05-27 11:02:25.945421: I tensorflow/core/common_runtime/gpu/gpu_device.cc:918] 0: Y
2017-05-27 11:02:25.945427: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN X, pci bus id: 0000:01:00.0)
Initialized!
Step 0 (epoch 0.00), 13.7 ms
Minibatch loss: 8.334, learning rate: 0.010000
Minibatch error: 85.9%
Validation error: 84.6%

参考:Ubuntu16.04lts使用Anaconda安装tensorflow并配置GPU

至此,Caffe升级工作,Torch,Tensorflow安装工作,历时3天终于完成。

期间踩坑无数,终于安装好了所需环境,希望后续实验可以顺利开展,取得好的实验结果。

3. Sublime配置tensorflow环境

在安装好tensorflow环境之后,已可以成功直接从terminal中使用tensorflow,但是在编写代码过程中,需要使用编辑器支持tensorflow的语法以及一些函数,这时就需要对sublime进行配置,使得sublime可以识别tensorflow的环境以及相关配置。

第一步:

安装anacoda编译器,使用sublime的package control管理器,安装anacoda编译器(ctrl+shift+p);

然后在Preferences——>Package Settings中找到Anaconda,然后选择User-settings选项,将以下配置信息放到配置文件中:

{
"python_interpreter": "/home/startag/anaconda/bin/python",
"suppress_word_completions":true,
"suppress_explicit_completions":true,
"complete_parameters":true,
"anaconda_linting": false
}

然后就可以正常import tensorflow啦。

4. 错误处理

1. 在使用tensorflow时候提示错误如下:

 
from google.protobuf import symbol_database as _symbol_database
ImportError: cannot import name symbol_database

这是因为在安装tensorflow时使用的是anaconda环境配置,将tensorflow使用conda命令单独创建了一个环境变量,在这个环境变量中并未能找到合适的protobuf进行编译。

解决方法:

sudo apt-get remove python-protobuf

这个是移除使用apt-get安装的protobuf,以免造成对protobuf的影响。

如果这个方法不奏效,那么使用下面的命令对protobuf进行升级,升级命令为:

sudo pip install --upgrade protobuf

该命令会将protobuf安装到系统自带的python2.7环境中。

需要开启tensorflow环境,即切换到anaconda环境中进行安装,方可对anaconda中的protobuf进行升级,命令为:

source activate tensorflow #开启tensorflow环境

使用pip对protobuf进行升级:

pip install --ignore-installed --upgrade protobuf

tips:

在使用anaconda时候,可以使用pip来对已经安装的包package进行管理和查看,以判别安装的package的版本是否正确:

$ pip show protobuf
Name: protobuf
Version: 3.3.
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author: protobuf@googlegroups.com
Author-email: protobuf@googlegroups.com
License: -Clause BSD License
Location: /home/startag/anaconda/lib/python2./site-packages
Requires: six, setuptools

关于anaconda的使用可参考: Anaconda多环境多版本python配置指导

Anaconda使用总结

在Ubuntu环境下配置TensorFlow

2. 在anaconda环境下import cv2提示错误

这是因为在默认python环境中安装的opencv,anaconda并不能找打其位置,需要在anaconda中明确,使用pip重新安装,安装命令为:

pip install opencv-python

参考地址:OpenCV - cannot find module cv2

Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow的更多相关文章

  1. DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录

    DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录 前面部分是自己的记录,后面方案部分是成功安装驱动+桌面的正解 问题的开始在于:登录不了桌面,停留在重复 ...

  2. caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0

    国服亚马逊的GPU实例G2.2xlarge的python+caffe的安装过程,被虐- 一周才装出来- BVLC/caffe的在AWS安装的官方教程github: https://github.com ...

  3. Ubuntu14.04 64位机上安装cuda8.0 cudnn5.0操作步骤 - 网络资源是无限的

    查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...

  4. Ubuntu16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano

    title: Ubuntu 16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano categories: 深度学习 tags: [深度学习框架搭建] --- 前言 ...

  5. Ubuntu16.04 + gtx1060 + cuda8.0 + cudnn5.1 + caffe + Theano + Tensorflow

    参考 ubuntu16.04+gtx1060+cuda8.0+caffe安装.测试经历 ,细节处有差异. 首先说明,这是在台式机上的安装测试经历,首先安装的win10,然后安装ubuntu16.04双 ...

  6. Ubuntu16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细

      本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www ...

  7. Ubuntu14.04 64位机上安装OpenCV2.4.13(CUDA8.0)版操作步骤

    Ubuntu14.04 64位机上安装CUDA8.0的操作步骤可以参考http://blog.csdn.net/fengbingchun/article/details/53840684,这里是在已经 ...

  8. Ubuntu14.04 64位机上安装cuda8.0+cudnn5.0操作步骤

    查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...

  9. ubuntu14.04英文环境下安装中文输入法

    ubuntu14.04英文环境下安装中文输入法 发表于1年前(2014-07-12 20:12)   阅读(4478) | 评论(0) 3人收藏此文章, 我要收藏 赞1 9月19日成都 OSC 源创会 ...

随机推荐

  1. UART, SPI, IIC的详解及三者的区别和联系

    UART.SPI.IIC是经常用到的几个数据传输标准,下面分别总结一下: UART(Universal Asynchronous Receive Transmitter):也就是我们经常所说的串口,基 ...

  2. 【chrome】"您的连接不是私密连接" 解决办法

    1.启用显示证书选项 在Chrome的地址栏中输入:chrome://flags/#show-cert-link,选择"启用",重启Chrome浏览器.  (操作过无用) 2.安装 ...

  3. 20155323刘威良《网络对抗》Exp6 信息搜集与漏洞扫描

    20155323刘威良<网络对抗>Exp6 信息搜集与漏洞扫描 实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查 ...

  4. python基础学习1-流程控制和判断

    python for循环和 if流程控制用法 Ages=22 for i in range(10): inputAges = int(input("输入年龄")) if input ...

  5. BigDecimal工具类

    package config_service.slowcity; import java.math.BigDecimal; public class ConfigServerApp { /* * 小数 ...

  6. 一个Python开源项目-哈勃沙箱源码剖析(下)

    前言 在上一篇中,我们讲解了哈勃沙箱的技术点,详细分析了静态检测和动态检测的流程.本篇接着对动态检测的关键技术点进行分析,包括strace,sysdig,volatility.volatility的介 ...

  7. ECC检验与纠错

    引入ECC ECC:Error Checking and Correction,是一种差错检测和修正的算法. NAND闪存在生产和使用中都会有坏块产生,BBM就是坏块的管理机制.而生产坏块已经无法避免 ...

  8. numpy 初识(三)

    基本运算 exp: e sqrt:开放 floor:向下取整 ravel:矩阵拉成一个向 T:转置(行和列变换) 改变形状: resize: 更改其形状(返回值为None)a.resize(6,2) ...

  9. 开发认为不是bug,你该如何处理?

    这是软件测试员面试时经常被问到的问题.看了很多答案,个人觉得作为有工作经验的测试人员回答时不能完全照搬标准答案,技术面试官想听的当然不止如此.毕竟这种情况在实际工作中也常常出现,具体问题要具体分析,你 ...

  10. Apache Ignite 学习笔记(三): Ignite Server和Client节点介绍

    在前两篇文章中,我们把Ignite集群当做一个黑盒子,用二进制包自带的脚本启动Ignite节点后,我们用不同的客户端连接上Ignite进行操作,展示了Ignite作为一个分布式内存缓存,内存数据库的基 ...