Mac下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
安装环境:
虽然笔者用的是mac,自带了Python,但是还是先安装了Anaconda(点击进入官网)。因为它集成了很多Python的第三方库,而且可以方便的管理不同版本的Python,在不同版本的Python之间切换。而且Anaconda是一个科学计算环境,在电脑上安装完Anaconda之后,除了相当于安装了Python,也安装好了一些常用的库。
笔者安装的是Python 2.7版的Anaconda,在安装好Anaconda之后,就已经安装好了Python和一些常用的库了。此外,还自动安装了Spyder。
Spyder是Python一个简单的集成开发环境,和其他的Python开发环境相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值。
在终端中输入Spyder就可以打开它了,如下图所示:
但是笔者更喜欢使用Pycharm作为开发环境
三、建立、激活、安装Tensorflow
打开终端,在上面输入:
conda create -n tensorflow python=2.7
然后等执行完毕之后,再执行:
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的开发,所以这里我们只需要选择图中所示的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))
如果出现以下提示,就说明成功了,可以开始接下来的学习了~
Hello, Tensorflow!
154
五、总结
至此,我们便在机器上安装好了Tensorflow以及其开发环境。
总的来说,只需要以下几步:
- 安装Anaconda
- 通过conda建立Tensorflow运行环境
- 激活Tensorflow运行环境
- 安装Pycharm IDE
Mac下TensorFlow安装及环境搭建的更多相关文章
- 【深度学习笔记】(一)Mac下TensorFlow安装及环境搭建
本文由@ray 出品,转载请注明出处. 文章链接:http://www.cnblogs.com/wolfray/p/7828903.html 在学习了一段时间台大李宏毅关于deep learning ...
- Android开发学习之路--MAC下Android Studio开发环境搭建
自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门 ...
- Windows 2012 下Redmine安装和环境搭建
公司在过去一年中处于高速发展创业期,对于技术管理和项目管理没有找到一个很好的管理工具,使用过Teanbition+禅道+SVM的集成管理工具,但是明显各工具之间联系性差,断层严重,不能很好的形成团队成 ...
- 【Android学习笔记】Mac下Android Studio开发环境搭建
本文由@ray 出品,转载请注明出处. 文章链接:http://www.cnblogs.com/wolfray/p/7829069.html 对于移动端这块,笔者之前一直都是进行iOS开发的,也从来 ...
- 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记
Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...
- Mac下PHP+Apache+MySQL环境搭建
一.启动Apache 有两种方法 1.打开网络共享 打开"系统偏好设置"->"共享",在"互联网共享"那一项前面打√. 2.打开终端, ...
- 【深度学习笔记】(一)TensorFlow安装及环境搭建
在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了. 感觉保完研之后散养状态下,学习效率太低了,于是便想白天学习,晚上对白天学 ...
- Mac下持续集成-Mac下Tomcat+Jenkins集成环境搭建
一.MAC安装jdk及环境变量配置 1)访问Oracle官网 http://www.oracle.com,浏览到首页的底部菜单 ,然后按下图提示操作: 2)下载完成后点击安装包,按提示即可完成安装. ...
- windows下tensorflow/objectdetection API环境搭建(基于tensorflow1.14和python3.6)
此前就听闻室友说tensorflow在windows下坑很多,这次终于亲身领会到了.以下是参考网上大佬的教程以及自己的踩坑史总结出的有效步骤(亲测有效) 1.下载objectdetection所在的m ...
随机推荐
- 笔记:CSS常用中文字体英文名称对照表
* 分类排序:中文名+英文名+Unicode+Unicode 2 Windows平台新细明体 PMingLiU \65B0\7EC6\660E\4F53 新细明体细明体 MingLiU \7EC6\6 ...
- 探求Floyd算法的动态规划本质
Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...
- 【spfa训练】HDU4725 (层级建图)
HDU4725 题目大意:一些节点分布在不同的层上,已知相邻的层可以往来距离为c,在给你一些已知的边,问你点1-n的最短路 分析:越往后做,越觉得最短路的考点已经不是spfa算法还是dijkscar算 ...
- Android adb获取屏幕分辨率
获取Android设备屏幕分辨率,可以采用最快捷的方式,使用ADB命令获取即可: 打印详细方式: adb shell dumpsys window displays 执行结果: Dump time : ...
- ASP.NET WEB API 返回JSON 出现2个双引号问题
前言 在使用ASP.NET WEB API时,我想在某个方法返回JSON格式的数据,于是首先想到的就是手动构建JSON字符串,如:"{\"result\" ...
- MySqlException: The user specified as a definer ('root'@'%') does not exist解决方法
之前因为MySql安全问题,将root@%改为允许特定ip段进行远程连接,结果有一个接口报The user specified as a definer ('root'@'%') does not e ...
- C#之23中设计模式
本身打算把二十三种设计模式,总结一下.总结了几个设计模式后发现已经有博主总结的非常详细,内容丰富,我看了后也是受益良多.大家可以参考他的博客,地址如下: https://www.cnblogs.com ...
- sqlServer 查询表中31到40的记录,考虑id不连续的情况
SQL 查询表中31到40的记录,考虑id不连续的情况 写出一条sql语句输出users表中31到40记录(数据库为SQL Server,以自动增长的ID作为主键,注意ID可能不是连续的)? -- ...
- “全栈2019”Java多线程第二十章:同步方法产生死锁的例子
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- 《Python黑帽子:黑客与渗透测试编程之道》 网络:原始套接字和流量嗅探
Windows和Linux上的包嗅探: #!/usr/bin/python import socket import os #监听的主机 host = "10.10.10.160" ...