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实现socket端口重定向示例
Feb 10 Python
Python二维码生成库qrcode安装和使用示例
Dec 16 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
在Python中用get()方法获取字典键值的教程
May 21 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
pandas 层次化索引的实现方法
Jul 06 Python
Python: 传递列表副本方式
Dec 19 Python
Python中bisect的用法及示例详解
Jul 20 Python
基于OpenCV的路面质量检测的实现
Nov 04 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 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备份/还原MySQL数据库的代码
2011/01/06 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
php操作access数据库的方法详解
2017/02/22 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
python实现汽车管理系统
2018/11/30 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
django数据库自动重连的方法实例
2019/07/21 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
Python 可视化神器Plotly详解
2020/12/26 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
公司中层干部的自我评价分享
2014/03/01 职场文书
十佳护士先进事迹
2014/05/08 职场文书
党课培训心得体会
2014/09/02 职场文书
小学教师岗位职责
2015/04/02 职场文书
硕士论文致谢范文
2015/05/14 职场文书