当前位置: 首页 > news >正文

双显卡笔记本安装CUDA+theano、tensorflow环境

原文出处:http://www.cnblogs.com/jacklu/p/6377820.html

个人知乎主页欢迎关注:https://www.zhihu.com/people/jack_lu,相信我会提供高质量的timeline。

 

“站在岸上学不会游泳。”看了各种深度学习的新闻、有意思的paper,要开始搭建深度学习环境入坑了。昨天看到一视频展现了tensorflow在Android平台上的应用,感觉潜力巨大,所以选择了tensorflow。

结合几篇安装博客总结了安装方法,可能是最简便的一种了~

笔记本Y430p 显卡GTX850M

操作系统Ubuntu 16.04(经本人测试 14.04 14.10 15.04 15.10 对双显卡的支持都不是特别好)安装好后建议关掉所有更新选项。

python版本 2.7

1、首先保证安装好NVIDIA驱动。如下图所示:

image

2、安装CUDA

sudo apt-get update
sudo apt-get install nvidia-cuda-toolkit

默认安装cuda 7.5.18 安装之后,是没有/usr/local/cuda*这个文件夹,也没有sample的

3、由于Ubuntu16.04的gcc和g++都是5.0版的,不兼容CUDA7.5版本,需要降级

sudo apt-get install gcc-4.9 g++-4.9
cd /usr/bin
sudo rm gcc
sudo rm g++
sudo ln -s gcc-4.9 gcc
sudo ln -s g++-4.9 g++

4、安装cudnn

下载cudnn 5.0 for cuda7.5 需要nvidia的开发者帐号登录

image
解压

tar -zxf cudnn-7.5-linux-x64-v5.0-ga.tgz

cd cuda

复制头文件到/usr/local/include

sudo cp include/cudnn.h /usr/local/include/

复制lib文件到/usr/local/lib

sudo cp lib64/* /usr/local/lib/

并编辑~/.bashrc 添加环境变量

export LD_LIBRARY_PATH=/usr/local/lib

5、安装theano

sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose python-mock python-wheel g++ libopenblas-dev git
sudo pip install Theano

编辑配置文件

sudo gedit ~/.theanorc

加入

[global]
device = gpu
floatX = float32
[nvcc]
flags=-D_FORCE_INLINES

注意有符号-

测试,注意cuDNN版本5005

image

6、安装tensorflow

根据自己的实际情况参照官网的这张表选择适合的下载链接。

# Ubuntu/Linux 64-bit, CPU only, Python 2.7
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl

# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
# Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below.
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl

# Mac OS X, CPU only, Python 2.7:
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl

# Ubuntu/Linux 64-bit, CPU only, Python 3.4
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp34-cp34m-linux_x86_64.whl

# Ubuntu/Linux 64-bit, GPU enabled, Python 3.4
# Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below.
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp34-cp34m-linux_x86_64.whl

# Ubuntu/Linux 64-bit, CPU only, Python 3.5
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp35-cp35m-linux_x86_64.whl

# Ubuntu/Linux 64-bit, GPU enabled, Python 3.5
# Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below.
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp35-cp35m-linux_x86_64.whl

# Mac OS X, CPU only, Python 3.4 or 3.5:
 export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py3-none-any.whl

我在这里选择 64-bit GPU Python 2.7

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl

然后根据自己情况选择

# Python 2
 pip install --upgrade $TF_BINARY_URL

# Python 3
 pip3 install --upgrade $TF_BINARY_URL

我在这里选择Python 2

pip install --upgrade $TF_BINARY_URL

测试Tensorflow是否安装成功并使用了CUDA,依次执行以下python代码

import tensorflow as tf
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print sess.run(c)

实验结果如下,表示安装成功!可以开始新的征程啦~

image

remark:

cudnn version should be 5.1

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

export CUDA_HOME=/usr/local/cuda

参考资料:

https://zhuanlan.zhihu.com/p/23042536?refer=tomasen

https://www.zhihu.com/question/48027732?from=profile_question_card

http://www.ifcoder.us/2003

转载于:https://www.cnblogs.com/jacklu/p/6377820.html

相关文章:

  • Zabbix3.x 服务安装、配置及常见问题处理
  • Material Design学习之 Camera
  • Perl 获得当前路径
  • 【254】◀▶IEW-Unit19
  • windbg调试命令
  • Makefile经典教程(掌握这些足够)
  • inotify-tools命令使用讲解
  • mysql5.7.17主从同步配置
  • 『设计模式』之小试牛刀
  • callback和spring的MD5加密
  • this.getClass().getResource(String) 路径问题
  • Git基础之(十四)——分支管理——解决冲突
  • MySQL学习2 使用docker建立mysql服务
  • 算法笔记_035:寻找最小的k个数(Java)
  • Linux 文件系统 的 学习
  • 【391天】每日项目总结系列128(2018.03.03)
  • Android Studio:GIT提交项目到远程仓库
  • gulp 教程
  • isset在php5.6-和php7.0+的一些差异
  • Java 内存分配及垃圾回收机制初探
  • JS 面试题总结
  • js操作时间(持续更新)
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • rabbitmq延迟消息示例
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • vue总结
  • 百度小程序遇到的问题
  • 第2章 网络文档
  • 如何利用MongoDB打造TOP榜小程序
  • 线上 python http server profile 实践
  • 协程
  • 学习使用ExpressJS 4.0中的新Router
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 回归生活:清理微信公众号
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (1)(1.9) MSP (version 4.2)
  • (4)Elastix图像配准:3D图像
  • (九)One-Wire总线-DS18B20
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (四)Controller接口控制器详解(三)
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)SpringBoot3---尚硅谷总结
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • **CI中自动类加载的用法总结
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .net分布式压力测试工具(Beetle.DT)
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复