摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!
『不要把手段当成目标 — 《一个瑜伽行者的自传》』
 
本文提纲
1. 机器学习
2. TensorFlow 介绍
    2.1 什么是 TensorFlow
    2.2 TensorFlow 能做什么
3. 安装 TensorFlow
    3.1 安装 pip
    3.2 安装 TensorFlow
    3.3 运行 Hello,TensorFlow 案例
4. 小结
 

一、机器学习

机器学习,并不能理解成机器学习算法。机器学习,就是为了让机器可以去模拟人类。在应用实践上,可以狭义理解为机器学习算法,但聚焦在具体算法实现和编程上,往往实践中不尽人意。机器学习是一种学科,一种类似数学的学科,交叉了数学、算法、计算机等多门学科。目的是让机器(这里指计算机)如何模拟或者实现人类的学习行为。就像我们读小学,读初中,读高中… 让机器学习的话可能需要 1 小时,因为机器效率很高。
机器学习的应用:
     语音识别
     自动驾驶
     语言翻译
     计算机视觉
     推荐系统
     无人机
     识别垃圾邮件
 
已经实践的Demo:
     人脸识别
     无人驾驶汽车
     电商推荐系统
 

二、TensorFlow 介绍

标语:TensorFlow 是一个用于人工智能的开源神器
 
什么是 TensorFlow 呢?
TensorFlow™ 是一个采用数据流图(Data Flow Graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个 CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由 Google 大脑小组(隶属于 Google 机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
 
那什么是数据流图(Data Flow Graphs)呢?
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
 
TensorFlow 能做什么?
上面也说了,用于数值计算。具体而言,语音识别,自然语言理解,计算机视觉,广告等等。所以未来有更多的产品,将想法和机器学习算法产品化。
 
TensorFlow 的特征如下:
1. 高度的灵活性
2. 真正的可移植性(Portability)
3. 将科研和产品联系在一起
4. 自动求微分
5. 多语言支持
6. 性能最优化

三、安装 TensorFlow

环境:Mac OS 10.x
TensorFlow 支持多种安装,比如 Pip, Docker, Virtualenv, Anaconda 或源码编译的方法安装 TensorFlow。我自己推荐当然是 Pip 安装。什么是 Pip ?Pip 是一个 Python 的软件包安装与管理工具。
 
1. 安装 pip
然后解压 pip ,并执行 python 进行安装。
 
1
2
3
tar zvxf pip-9.0.1.tar.gz
cd pip-9.0.1 
sudo python setup.py install
2. 安装 TensorFlow
用 pip 安装 TensorFlow :
1
sudo pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
 
Mac OS X 10.x 因 SIP 安全问题无法运行,安装会不成功。所以重启 OS,长按 Command + R 。点击 Utilities(实用工具)-> Terminal(终端),输入如下命令:
1
csrutil disable
 

然后开机,重新用 pip 安装 TensorFlow :

1
sudo pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
(需要FQ哈)
 
3. 运行 Hello,TensorFlow 案例
使用 TensorFlow, 你必须明白 TensorFlow:
a. 使用图 (graph) 来表示计算任务.
b. 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
c. 使用 tensor 表示数据.
d. 通过 变量 (Variable) 维护状态.
e. 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据
 
这里我们执行下 Hello,TensorFlow 。证明 TensorFlow 安装成功就好。打开 PyCharm,新建一个 HelloTensorFlow.py 。创建一个字符串常量,然后创建一个 Session 对象,从会话中构造器中会默认启动一个图,Session 对象使用后要需要关闭并释放资源。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf-8 -*-
import tensorflow as tf
 
# 创建另外一个字符串常量
helloTf = tf.constant('Hello,TensorFlow!')
 
# 启动默认图
sess = tf.Session()
 
# 调用 sess 的 'run()' 方法来执行
# 返回值 'result' 是一个字符串对象.
result = sess.run(helloTf)
print result
# ==> Hello,TensorFlow!
 
# 任务完成, 关闭会话.
sess.close()
 
然后运行即可得到输出:
Hello,TensorFlow!
 

四、小结

本文主要介绍了机器学习、TensorFlow 安装及简单使用。
 
推荐书《一个瑜伽行者的自传》一本讲行者的故事。

欢迎扫一扫我的公众号关注 — 及时得到博客订阅哦!

TensorFlow 安装详解的更多相关文章

  1. Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

  2. (转)Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

  3. Linux ssh登录和软件安装详解

    阿哲Style   Linux第一天 ssh登录和软件安装详解 Linux学习第一天 操作环境: Ubuntu 16.04 Win10系统,使用putty_V0.63 本身学习Linux就是想在服务器 ...

  4. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

  5. scribefire 多博客管理利器 安装详解

    scribefire 多博客管理利器 安装详解 一.ScribeFire介绍 ScribeFire 是 Firefox (火狐浏览器)上著名的博客写作工具,目前已跨平台支持多浏览器(Firefox,C ...

  6. CentOS 6.5的安装详解

    CentOS 6.5的安装详解 主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS 免费: RedHat 和CentOS差别不大,Cent ...

  7. Linux下tomcat的安装详解

    Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...

  8. Phoenix和SQuirrel安装详解

    Phoenix安装详解 描述 现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等.今天的主角是Phoenix. phoenix,中文译为“凤凰” ...

  9. zabbix agent安装详解

    安装 Installing repository configuration package Zabbix 2.2 for RHEL5, Oracle Linux 5, CentOS 5: rpm - ...

随机推荐

  1. jQuery源码学习:Sizzle

    本文所有讨论均基于jQuery版本3.1.1,官网http://jquery.com/. 一 简介 Sizzle是用javascript实现的CSS selector engine,官网见https: ...

  2. libviso中的姿态解算【转载】

    这篇关于libviso的文章,本人已投稿在泡泡机器人微信公众号中,放到这里,作学习笔记用. libviso一直以来被称为在视觉里程计(VO)中的老牌开源算法.它通过corner,chessboard两 ...

  3. [Hadoop] - Protocol Buffer安装

    Hadoop从2.x版本开始,底层的RPC远程调用使用ProtocolBuffer格式来传递数据,所以在编译Hadoop的过程中有可能出现提示缺少Protocol服务的异常信息,类似:'protoc ...

  4. MongoDB【第一篇】安装

    第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. MongoDB 版本 mongodb-linux-x86_64-rhel70-3.4.2 3. 设置 ...

  5. 如何用PHP做到页面注册审核

    用户注册后就有该条用户记录,你对用户表设一个"审核状态"字段,默认值设为"未审核",然后你写几句审核代码做成一个功能,按照你们的意愿若审核通过你把审核状态改为& ...

  6. tcp粘包和拆包的处理方案

    随着智能硬件越来越流行,很多后端开发人员都有可能接触到socket编程.而很多情况下,服务器与端上需要保证数据的有序,稳定到达,自然而然就会选择基于tcp/ip协议的socekt开发.开发过程中,经常 ...

  7. app 评分

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #822e0e } p.p2 { margin: 0.0px 0. ...

  8. 取出关联数组的key值和values值

    取出关联数组的key值,可用 array_keys()取出; <?php $a=array("Volvo"=>"XC90","BMW&qu ...

  9. python IP地址转16进制

    python IP地址转16进制 第一种方法: 通过socket.inet_aton实现 import socket from binascii import hexlify ary='192.168 ...

  10. JavaWeb之Ajax

    一.什么是Ajax 1.1.Ajax的定义 Ajax:(Asynchronous JavaScript And XML)指异步 JavaScript 及 XML 不是一种新的编程语言,而是一种用于创建 ...