Tensorflow的安装

虽然官网已经写的很清楚了,但是自己安装的时候还是有坑,出现了好多错,特此记录

官网步骤

我是用的virtualenv,按照官网的步骤来,先说明此步骤对你不一定成功:

<1> 安装pipvirtualenv环境

# Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev python-virtualenv

<2>创建虚拟环境目录

$ virtualenv --system-site-packages ~/tensorflow

<3>激活虚拟环境

$ source ~/tensorflow/bin/activate  # If using bash
$ source ~/tensorflow/bin/activate.csh  # If using csh
(tensorflow)$  # Your prompt should change

<4>使用预编译好的安装包安装

最新要求cuda7.5cudnnV5

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

# Python 2
(tensorflow)$ pip install --upgrade $TF_BINARY_URL

# Python 3
(tensorflow)$ pip3 install --upgrade $TF_BINARY_URL

官网的步骤就到此为止了,理论上你应该装好了

测试

需要测试下:

官网的测试地址

按照此测试做,发现错了,具体是执行:

python -m tensorflow.models.image.mnist.convolutional

Loaded CuDNN library: 5005 (compatibility version 5000) but source was compiled with library 5103 (compatibility version 5100) 

提示cudnn版本低,这是第一个坑

后来我重新升级了cudnn之后,再去测试,这次这个过了,但是又有其它错,具体是:

使用ipython导入tensorflow出错无法导入,但是python下可以直接导入

AttributeError: type object 'NewBase' has no attribute 'is_abstract'

这个官方有解决方法,具体见:

NewBase错误

错误的排除

cudnn版本低

官方说是使用cuda7.5+cudnnV5,实际是使用cuda7.5+cudnnV5.1才行

所以升级到5.1版本的就没问题了

ipython导入出错

(1) 创建虚拟目录时候不要使用--system-site-packages选项, 之后自己进去安装numpy,matplotlib,six这三个包 尤其注意six需要1.8.0以后的版本

(2) 升级到1.8.0之后的版本就没问题了

实例

10月7号新增:

由于需要在本机(没有GPU环境)下进行本机调试,所以我在本机上安装了cpu版本的tensorflow,又出现了几个错,特此记录

Error 1:

无法升级通过apt-get安装的软件

通过apt-get安装的numpy等,默认的位置在/usr/lib/python2.7下,所以你要是使用sudo apt-get remove,会告诉你xxxx owned by OS

解决方法: 直接进入/usr/lib下删除相应的软件文件即可,结果是pip会使用/usr/local/lib/python2.7下的软件(通过pip安装的)

Error 2:

ImportError: numpy.core.multiarray failed to import

原因是: tensorflow需要的numpy版本大于本机自带的numpy版本

解决方法: 删除/usr/lib/python2.7下的numpy,使用pip进行安装numpy即可

sudo rm -fR /usr/lib/python2.7/numpy*
sudo pip install numpy

Error 3:

ImportError: cannot import name symbol_database

解决方法: 升级protobuf

sudo apt-get remove python-protobuf
sudo pip uninstall protobuf
sudo pip install protobuf

此时在ipython下导入import tensorflow as tf, 没有问题

参考资源

  1. tensorflow安装问题的yhl_leo的博客
  2. tensorflow官方安装文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维小白

17.5 测试主从同步

主服务器上 binlog-do-db= //仅同步指定的库(多个库,可以用“ , ”逗号分隔)——>英文的逗号 , binlog-ign...

1828
来自专栏SpringBoot 核心技术

第四十一章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息消费

1825
来自专栏Hongten

hadoop2-HBase的安装和测试

https://www.cnblogs.com/hongten/p/hongten_hadoop_hbase.html

721
来自专栏乐沙弥的世界

Linux 文件目录特殊权限设定(SUID,SGID,SBIT)

Linux文件及目录的权限设定,除了我们孰知的读写执行(rwx)之外,还有一些特殊的权限设定用来满足特定的目录。这些特殊权限的设定主要是SUID,SGID以及S...

772
来自专栏颇忒脱的技术博客

Spring Cloud Config配置文件最佳实践

大多数Spring Cloud项目都会使用Spring Cloud Config来管理应用启动时的配置文件,同时开发人员面临着多样化的程序启动方式:操作系统进程...

2332
来自专栏有困难要上,没有困难创造困难也要上!

CentOS5.5使用yum时报错Error: Cannot find a valid baseurl for repo: addons

38810
来自专栏Java进阶架构师

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。

883
来自专栏网络

换换Cygwin的Terminal吧

17年最后一篇技术相关帖来介绍一下使用secureCRT等工具连接cygwin吧。 cygwin可以说是一个很好的在Windows上迅速模拟和学习Unix/Li...

2047
来自专栏知无涯

PHP5.4+Apache2.2+Mysql5.0+PHPMyAdmin3.2.5安装配置

47211
来自专栏云计算教程系列

Django入门:搭建你第一个应用

Django是用Python编写的免费开源Web框架,用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内...

1452

扫码关注云+社区