本博文是对前面两篇tensorflow的博文的一个继续,对环境的更新。

基于tensorflow的MNIST手写识别

安装tensorflow,那叫一个坑啊

主要出发点:

上述两篇博文的程序运行的环境,其实是没有用到GPU的。本篇博文,介绍如何利用GPU。

首先通过pip重新安装一个支持gpu的tensorflow,采用upgrade的方式进行。

[root@bogon tensorflow]# pip install --upgrade tensorflow-gpu
Collecting tensorflow-gpu
Downloading tensorflow_gpu-1.0.-cp27-cp27mu-manylinux1_x86_64.whl (.8MB)
% |████████████████████████████████| .8MB .6kB/s
Requirement already up-to-date: protobuf>=3.1. in /usr/lib64/python2./site-packages (from tensorflow-gpu)
Requirement already up-to-date: six>=1.10. in /usr/lib/python2./site-packages (from tensorflow-gpu)
Requirement already up-to-date: wheel in /usr/lib/python2./site-packages (from tensorflow-gpu)
Requirement already up-to-date: mock>=2.0. in /usr/lib/python2./site-packages (from tensorflow-gpu)
Requirement already up-to-date: numpy>=1.11. in /usr/lib64/python2./site-packages (from tensorflow-gpu)
Requirement already up-to-date: setuptools in /usr/lib/python2./site-packages (from protobuf>=3.1.->tensorflow-gpu)
Requirement already up-to-date: funcsigs>=; python_version < "3.3" in /usr/lib/python2./site-packages (from mock>=2.0.->tensorflow-gpu)
Requirement already up-to-date: pbr>=0.11 in /usr/lib/python2./site-packages (from mock>=2.0.->tensorflow-gpu)
Requirement already up-to-date: appdirs>=1.4. in /usr/lib/python2./site-packages (from setuptools->protobuf>=3.1.->tensorflow-gpu)
Requirement already up-to-date: packaging>=16.8 in /usr/lib/python2./site-packages (from setuptools->protobuf>=3.1.->tensorflow-gpu)
Requirement already up-to-date: pyparsing in /usr/lib/python2./site-packages (from packaging>=16.8->setuptools->protobuf>=3.1.->tensorflow-gpu)
Installing collected packages: tensorflow-gpu
Successfully installed tensorflow-gpu-1.0.

这个过程顺利完成。

然后,将MNIST的手写识别程序,在运行一下,验证一下,是否启用GPU。

[root@bogon tensorflow]# python mnist_demo1.py
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:126] Couldn't open CUDA library libcudnn.so.5. LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64:
I tensorflow/stream_executor/cuda/cuda_dnn.cc:3517
] Unable to load cuDNN DSO
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcuda.so. locally
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcurand.so.8.0 locally
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Found device with properties:
name: GeForce GTX
major: minor: memoryClockRate (GHz) 1.7335
pciBusID ::00.0
Total memory: .92GiB
Free memory: .81GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] DMA:
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] : Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Creating TensorFlow device (/gpu:) -> (device: , name: GeForce GTX , pci bus id: ::00.0)
F tensorflow/stream_executor/cuda/cuda_dnn.cc:] Check failed: s.ok() could not find cudnnCreate in cudnn DSO; dlerror: /usr/lib/python2./site-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cudnnCreate
Aborted (core dumped)

上面红色部分报错了,找不到cudnn的so文件,进入到cuda的安装路径,查看是否有这个so。

[root@bogon lib64]# ll libcudnn
libcudnn.so.5.1 libcudnn.so.5.1. libcudnn_static.a

的确没有libcudnn.so.5的文件。

下面,建立一个软连接,将libcudnn.so.5指向libcudnn.so.5.1。

[root@bogon lib64]# ln -s libcudnn.so.5.1 libcudnn.so.5
[root@bogon lib64]# ll libcudnn*
lrwxrwxrwx. root root Mar : libcudnn.so. -> libcudnn.so.5.1
lrwxrwxrwx. root root Mar : libcudnn.so.5.1 -> libcudnn.so.5.1.
-rwxr-xr-x. root root Mar : libcudnn.so.5.1.
-rw-r--r--. root root Mar : libcudnn_static.a

现在,有了这个libcudnn.so.5的文件了。

再次验证mnist的手写识别程序。

[root@bogon tensorflow]# python mnist_demo1.py
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcudnn.so. locally
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcuda.so. locally
I tensorflow/stream_executor/dso_loader.cc:] successfully opened CUDA library libcurand.so.8.0 locally
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Found device with properties:
name: GeForce GTX
major: minor: memoryClockRate (GHz) 1.7335
pciBusID ::00.0
Total memory: .92GiB
Free memory: .81GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] DMA:
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] : Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Creating TensorFlow device (/gpu:) -> (device: , name: GeForce GTX , pci bus id: ::00.0)
0.9092

到现在为止,我的tensorflow的运行环境,已经是基于GPU的了。

下面附上测试中的mnist_demo1.py的内容:

#!/usr/bin/env python
# -*- coding: utf- -*- import tensorflow as tf import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot=True) sess = tf.InteractiveSession() x = tf.placeholder("float", shape=[None, ])
y_ = tf.placeholder("float", shape=[None, ]) w = tf.Variable(tf.zeros([,]))
b = tf.Variable(tf.zeros([])) init = tf.global_variables_initializer()
sess.run(init) y = tf.nn.softmax(tf.matmul(x, w) + b) cross_entropy = -tf.reduce_sum(y_*tf.log(y)) train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) for i in range():
batch = mnist.train.next_batch()
train_step.run(feed_dict={x: batch[], y_: batch[]}) correct_prediction = tf.equal(tf.argmax(y,), tf.argmax(y_,))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) print accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels})

最后说明下,上述WARNING部分:

W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

暂时没有关注,所知道的处理办法,就是用bazel进行源码安装tensorflow可以解决这个问题。由于不是太影响实验,暂且不关注。

Tensorflow安装环境更新的更多相关文章

  1. TensorFlow安装环境的误区

    安装py一定要注意安装的版本,我一开始安装的3.7版本的,现在还没有支持,另外,看清楚自己电脑是32位还是64位的

  2. 【吴恩达课程使用】keras cpu版安装【接】- anaconda (python 3.7) win10安装 tensorflow 1.8 cpu版

    一.确认tensorflow的版本: 接上一条tensorflow的安装,注意版本不匹配会出现很多问题!:[吴恩达课程使用]anaconda (python 3.7) win10安装 tensorfl ...

  3. 深度学习入门篇--手把手教你用 TensorFlow 训练模型

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:付越 导语 Tensorflow在更新1.0版本之后多了很多新功能,其中放出了很多用tf框架写的深度网络结构(https://git ...

  4. ArXiv最受欢迎开源深度学习框架榜单:TensorFlow第一,PyTorch第四

    [导读]Kears作者François Chollet刚刚在Twitter贴出最近三个月在arXiv提到的深度学习框架,TensorFlow不出意外排名第一,Keras排名第二.随后是Caffe.Py ...

  5. 【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

    [导读]TensorFlow 在 2015 年年底一出现就受到了极大的关注,经过一年多的发展,已经成为了在机器学习.深度学习项目中最受欢迎的框架之一.自发布以来,TensorFlow 不断在完善并增加 ...

  6. Tensorflow物体检测(Object Detection)API的使用

    Tensorflow在更新1.2版本之后多了很多新功能,其中放出了很多用tf框架写的深度网络结构(看这里),大大降低了吾等调包侠的开发难度,无论是fine-tuning还是该网络结构都方便了不少.这里 ...

  7. Tensorflow & Python3 做神经网络(视频教程)

    Tensorflow 简介 1.1 科普: 人工神经网络 VS 生物神经网络 1.2 什么是神经网络 (Neural Network) 1.3 神经网络 梯度下降 1.4 科普: 神经网络的黑盒不黑 ...

  8. Centos7安装TensorFlow

    TensorFlow也火了一段时间,想想既然要研究NLP.为什么不好好应用一下Google开源的Deep Learning平台呢,一切还是先从搭建好开发环境開始. 非常多大神们也做了这方面的工作.汲取 ...

  9. Tensorflow代码解析(一)

    http://www.leiphone.com/news/201702/n0uj58iHaNpW9RJG.html?utm_source=tuicool&utm_medium=referral ...

随机推荐

  1. 2018年3月最新的Ubuntu 16.04.4漏洞提权代码

    2018年3月最新的Ubuntu 16.04.4漏洞提权代码,本代码取自Vitaly Nikolenko的推子 亲测阿里云提权可用. /* * Ubuntu 16.04.4 kernel priv e ...

  2. HDU 6066 17多校3 RXD's date(超水题)

    Problem Description As we all know that RXD is a life winner, therefore he always goes out, dating w ...

  3. tomcat 配置成服务

    1.下载Zip版Tomcat;选择:32-bit Windows zip(pgp,md5)下载解压文件到指定目录,如:D:/ProgramFiles/Tomcat6 进入D:/ProgramFiles ...

  4. idea【取消多行】

    有时间把idea总结一下 idea打开很多文件时默认收起来就很烦. 这样可以取消多行 效果大概是这样 .酥服哒.

  5. Android内核sys_setresuid() Patch提权(CVE-2012-6422)

    让我们的Android ROOT,多一点套路. 一.简单套路 CVE-2012-6422的漏洞利用代码,展示了另一种提权方法.(见附录) 这也是一个mmap驱动接口校验导致映射任意内核地址的洞.将内核 ...

  6. 豆瓣电影 Top 250

    import refrom urllib.request import urlopen def getPage(url): # 获取网页的字符串 response = urlopen(url) ret ...

  7. Java中的break和continue以及标签

    一.Java中的break,continue,goto 首先break,continue是Java中的关键字,而goto是保留字. 基于goto在c和c++中的鬼畜表现,我觉得goto可能还会长期在J ...

  8. input标签(文本域和文件域)

    单行文本域: <form> <input type="text" name="..." ....../> </form> 属 ...

  9. poj 2253——Frogger

    这个题一开始不知道咋做,但是大致有点意思.后来还是借鉴了题解发现可以用dijkstra,不太理解.但是在最后自己推的时候突然理解了. dijkstra应该也算是动态规划.我们用dis[i]数组作为青蛙 ...

  10. bulma入门

    http://www.ruanyifeng.com/blog/2017/10/bulma.html