TensorFlow在MAC环境下的安装及环境搭建


Posted in Python onNovember 14, 2017

给大家分享一下TensorFlow在MAC系统中的安装步骤以及环境搭建的操作流程。

TensorFlow 底层的图模型结构清晰,容易改造;支持分布式训练;可视化效果好。如果做长期项目,接触较大数据集的话,TensorFlow很适用,而且谷歌也在不断优化完备它,对于使用深度学习朋友,TensorFlow是一个很好的工具。

在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了。

感觉保完研之后散养状态下,学习效率太低了,于是便想白天学习,晚上对白天学习的知识做一些总结和记录,如果有不妥的地方,欢迎大家批评指教,共同进步。

一、深度学习框架的选择

随着深度学习日趋火热,技术的逐渐兴起,各种深度学习框架也层出不穷。

目前使用普遍的框架有Tensorflow、Caffe、PyTorch、Theano、CNTK等,那么在这么多框架中该如何选择呢?

笔者作为一个初学者,架不住Tensorflow的名气之大,所以最开始便选择了Tensorflow。当然不仅仅只是因为名气大,Tensorflow作为谷歌主持的开源项目,它的社区热度目前看来是旺盛的,而且现在也最为流行。听说,它是在谷歌总结了DistBelief的经验教训上形成的;它运行高效、可扩展性强,可以运行在手机、普通电脑、计算机群上。

下面再简单介绍一下其他深度学习框架的特点:

(1) Caffe:卷积神经网络框架,专注于卷积神经网络和图像处理,因为是基于C++语言,所以执行速度非常的快。

(2) PyTorch:动态computation graph!!!(笔者学习Tensorflow一段后,便会转学PyTorch试试看)

(3) Theano:因其定义复杂模型很容易,在研究中比较流行。

(4) CNTK:微软开发的,微软称其在语音和图像识别方面比其他框架更有优势。不过代码只支持C++.

Tensorflow的一些特性就不再说了,网络上相关资料也有很多。

下面就介绍一下Tensorflow的安装,笔者的安装顺序是首先安装Anaconda、然后安装Tensorflow、再安装Pycharm。

二、安装Anaconda

安装环境:
TensorFlow在MAC环境下的安装及环境搭建

虽然笔者用的是mac,自带了Python,但是还是先安装了Anaconda(点击进入官网)。因为它集成了很多Python的第三方库,而且可以方便的管理不同版本的Python,在不同版本的Python之间切换。而且Anaconda是一个科学计算环境,在电脑上安装完Anaconda之后,除了相当于安装了Python,也安装好了一些常用的库。

TensorFlow在MAC环境下的安装及环境搭建

笔者安装的是Python 2.7版的Anaconda,在安装好Anaconda之后,就已经安装好了Python和一些常用的库了。此外,还自动安装了Spyder。

Spyder是Python一个简单的集成开发环境,和其他的Python开发环境相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值。

在终端中输入Spyder就可以打开它了,如下图所示:

TensorFlow在MAC环境下的安装及环境搭建
TensorFlow在MAC环境下的安装及环境搭建

但是笔者更喜欢使用Pycharm作为开发环境

三、建立、激活、安装Tensorflow

打开终端,在上面输入:

conda create -n tensorflow python=2.7

 

TensorFlow在MAC环境下的安装及环境搭建

然后等执行完毕之后,再执行:

source activate tensorflow

 

至此就激活了运行环境。

然后再执行pip install tensorflow以进行Tensorflow的安装。

然后再执行以下Hello Tensorflow代码测试Tensorflow是否安装成

import tensorflow as tf hello = tf.constant('Hello Tensorflow!') sess = tf.Session() print(sess.run(hello)) a = tf.constant(10) b = tf.constant(32) printf(sess.run(a+b))

 

如果正常的话会提示:

Hello Tensorflow! 42

四、PyCharm IDE

一直使用终端开发的话,实在是太过难用了。笔者选择了PyCharm作为开发环境,官网链接。这里笔者用的是社区版(free)。

(1)首先新建一个Pycharm的工程
TensorFlow在MAC环境下的安装及环境搭建

因为是做Tensorflow的开发,所以这里我们只需要选择图中所示的interpreter即可。

~/anaconda2/envs/tensorflow/bin/python

这样就把Tensorflow环境包括了进来,超级方便。

如果平时开发,想用一些轻量级的环境,就选择其他Python解释器就可以了。

(2)运行一个demo进行测试

import tensorflow as tf hello = tf.constant('Hello, Tensorflow!') sess = tf.Session() print(sess.run(hello)) a = tf.constant(66) b = tf.constant(88) print(sess.run(a + b))

TensorFlow在MAC环境下的安装及环境搭建

如果出现以下提示,就说明成功了,可以开始接下来的学习了~

Hello, Tensorflow! 154

五、总结

至此,我们便在机器上安装好了Tensorflow以及其开发环境。

总的来说,只需要以下几步:

安装Anaconda 通过conda建立Tensorflow运行环境 激活Tensorflow运行环境 安装Pycharm IDE

大家在本地MAC上安装的时候,很多坑是需要留意的,我们把经常遇到的坑给大家做了总结,希望你在安装的时候尽量的避免这些地方。

一般都是服务器上直接开干,但是也会有人在本机上装一下的,这里写下,tensorflow在mac上安装的坑,给后来者一个参考

1 安装教程

直接去官网按照说明安装就好,如果要安装GPU版本,先安装官网上的mac gnu设置教程,装下cud相关的工具,最后有个sample跑过了就算gpu计算环境配置成功

2 第一个坑

按照官网上的教程,直接使用pip安装方法就好,注意pip版本要大于8.1,然后你直接sudo pip install tensorflow (不加sudo会权限不够),然后一般会不通过,提示卸载numpy不成功。 

我认为是这样的原因:numpy是mac系统默认装的库,并且设置有保护,所以无法卸载,然后tensorflow需要更高版本的numpy,所以就不成功啦

解决方法如下:

去除mac系统的保护,1 重启电脑 2 重启看见苹果logo了,按住command + R ,进入恢复模式 3 然后在上面的终端工具里面,进入终端 4 在终端输入 csrutil disable 5 重启,然后再次执行pip安装 还不明白的话看这篇博客

3 第二个坑

操作成功的话,就成功安装啦,然后,进去python编辑行 

输入 import tensorflow 然后你会发现,RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9 这个错误,说是你bumpy版本太低,这个时候表示日狗,刚才去除了保护,安装的时候已经bumpy更新到最新版了,查看numpy的版本也是最新版,查看版本方法可自行百度。 

解决这个坑的方法如下:

import numpy
numpy.__path__
#你会发现出现了一个包含XXX/Framework/xxx的路径,没错这还是系统安装的那个numpy的路劲,
#虽然你升级了,然是导入包的时候还是按照之前的路劲导入,所以版本过低,这个时候只需要把老的路径去掉
#就像这样,在终端中(不是python编辑模式下)输入:
sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy \
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy_old

然后再次进入python编辑模式,输入

import numpy
numpy.__path__
#这个时候,路劲就变成了,我们升级的那个numpy的路径了,是个XXX/local/xxx

然后你再import tensorflow 就没问题啦,就可以去输出hello world 了

Python 相关文章推荐
Python的Django框架中模板碎片缓存简介
Jul 24 Python
Python使用PyCrypto实现AES加密功能示例
May 22 Python
itchat接口使用示例
Oct 23 Python
python安装教程
Feb 28 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
python 巧用正则寻找字符串中的特定字符的位置方法
May 02 Python
selenium处理元素定位点击无效问题
Jun 12 Python
python框架django项目部署相关知识详解
Nov 04 Python
python 递归调用返回None的问题及解决方法
Mar 16 Python
Django与pyecharts结合的实例代码
May 13 Python
Python经典五人分鱼实例讲解
Jan 04 Python
pycharm无法导入lxml的解决办法
Mar 31 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 #Python
Python中import机制详解
Nov 14 #Python
AI人工智能 Python实现人机对话
Nov 13 #Python
Python编程实现蚁群算法详解
Nov 13 #Python
Python编程实现粒子群算法(PSO)详解
Nov 13 #Python
人工智能最火编程语言 Python大战Java!
Nov 13 #Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 #Python
You might like
PHP连接access数据库
2008/03/27 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
JS中async/await实现异步调用的方法
2019/08/28 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
用Python写冒泡排序代码
2016/04/12 Python
python装饰器初探(推荐)
2016/07/21 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Python 发送邮件方法总结
2020/08/10 Python
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
英语自荐信常用语句
2013/12/13 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
我为自己代言广告词
2014/03/18 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
食品安全汇报材料
2014/08/18 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
优秀团员自我评价
2015/03/10 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
个人维稳承诺书
2015/05/04 职场文书
学雷锋活动简报
2015/07/20 职场文书
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL
5个实用的JavaScript新特性
2022/06/16 Javascript