【TensorFlow使用教程】1 环境搭建
一、TensorFlow主要依赖包——Protocol Buffer & Bazel
1. Protocol Buffer
首先要弄清三个概念:
- 结构化数据:指拥有多种属性的数据,例如用户信息可以表示为
name:张三
id:1234
email:zhangsan@abc.com
这样的用户信息就是一个结构化数据,name、id和email都是这个数据的属性。
- 序列化:结构化的数据持久化或进行网络传输时,需要先进行序列化。序列化就是将结构化的数据变成数据流的格式,即变成字符串。
- 结构化数据的处理:将结构化数据序列化,并从序列化之后的数据流中还原出原来的结构化数据。
Protocol Buffer就是用来处理结构化数据的。
另外两种经常被用来处理结构化数据的工具时XML和JSON,它们和Protocol Buffer的主要区别如下
| XML、JSON | Protocol Buffer | |
| 序列化结果 | 可读字符串 | 二进制流 |
| 还原操作 | 序列化结果包含格式信息,无需其他信息即可还原 | 需事先定义数据格式,还原时也需使用这个定义好的格式。 |
由于Protocol Buffer在序列化时可根据需要选定数据类型,它序列化出来的数据一般比XML格式小,解析时间也要快许多。
Protocol Buffer定义数据格式的文件一般保存在.proto文件中,如
message user{
optional string name = 1
required int32 id = 2
repeated string email = 3
}
其中,每一个message代表了一类结构化的数据,它的里面定义了每一个属性的类型和名字。
属性的类型可以是:
- 布尔型
- 整型
- 实数型
- 字符型等基本类型
- 另一个message
属性的设置:
- repeated 属性是可以重复的,即属性的取值可以是一个列表
- optional 属性是可选的,即属性的取值可以为空
2. Bazel
一个自动化构建工具,用于对项目空间(workspace)中的程序进行编译。
workspace可以理解为一个文件夹,它包含了编译一个软件所需要的源代码以及输出编译结果的软连接(symbolic link),其根目录的基本结构如下:
- WORKSPACE文件,定义了对外部资源的依赖关系。可以是空文件。
- BUILD文件,Bazel通过它来寻找需要编译的目标。它采用一种类似Python的语法来指定每一个编译目标的输入、输出和编译方式,也就是说,和一般的开放式编译工具不同,Bazel的编译方式是事先定义好的。
- 程序源码的py文件(以Python为例)。
Bazel对Python支持的编译方式只有以下三种:
- py_binary 将Python程序编译为可执行文件
- py_library 将Python程序编译为库函数供其他py_binary或py_test调用
- py_test 编译Python测试程序
举例见书p28-29。
【TensorFlow使用教程】1 环境搭建的更多相关文章
- MyBatis实例教程--开发环境搭建
MyBatis实例教程--开发环境搭建 准备工作: 1.mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包 ...
- 史上最全最详细的环境搭建教程,行百里者手把手教你在windows下搭建Anaconda+pycharm+库文件(TensorFlow,numpy)环境搭建
我是在搭建TensorFlow开发环境的道路上走了很多弯路 掉了很多头发,为了让广大同学们不在受苦受累 下面我将手把手教你学习如特快速搭建python环境 快速导入numpy,PIL,pillow,等 ...
- 使用Tensorflow object detection API——环境搭建与测试
[软件环境搭建] 操作系统:windows 10 64位 内存:8G CPU:I7-6700 Tensorflow: 1.4 Python:3.5 Anaconda3 (64-bit) 以上环境搭建请 ...
- Tensorflow object detection API ——环境搭建与测试
1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...
- PHP入门教程-开发环境搭建
1.PHP简介: PHP是能让你生成动态网页的工具之一.PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP. 2.学习需要基础: a.HTML b.Ja ...
- Hadoop基础教程-运行环境搭建
一.Hadoop是什么 一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式 ...
- django1.7 配置demo教程(环境搭建)
近期又用到django做个简单项目,1年多没用过了有些手生,按理说没啥问题吧 以下是一个简单的环境搭建demo过程: 前提条件:准备了python2.7已经安装 1.搭建django环境下载 http ...
- MongoDB最简单的入门教程之一 环境搭建
MongoDB是近年来非常流行的一个介于关系数据库和非关系数据库之间的解决方案,特别广泛地应用于国内很多互联网公司,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB支持的数据结构非常松 ...
- appium使用教程(一 环境搭建)-------------2.安装部署
1) 安装appium 2) SDK(不建议使用模拟器,占用内存很大,会造成机器卡顿.另外模拟器还存在兼容性问题:pc为x86架构,绝大多数的手机都是ARM架构,app的兼 ...
- [ PyQt入门教程 ] PyQt5环境搭建和配置
PyQt入门系列教程主要目的是希望通过该系列课程学习,可以使用PyQt5工具快速实现简单的界面开发,包括界面设计.布局管理以及业务逻辑实现(信号与槽).简单说就是可以使用PyQt5工具快速画一个控件摆 ...
随机推荐
- 最清晰易懂的UML类图与类的关系详解
虚线箭头指向依赖: 实线箭头指向关联: 虚线三角指向接口: 实线三角指向父类: 空心菱形能分离而独立存在,是聚合: 实心菱形精密关联不可分,是组合: 上面是UML的语法. 在画类图的时候,理清类和类之 ...
- tengine2.2.3报错502的The proxy server received an invalid response from an upstream server问题处理
tengine2.2.3报错502的The proxy server received an invalid response from an upstream server问题处理 现象:访问订单的 ...
- vue ajax返回html代码不渲染解决
<span v-html='lists.html'></span>
- 五种ip proxy的设置方法
我们在制作爬虫爬取想要的资料时,由于是计算机自动抓取,强度大.速度快,通常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,在这里介绍相关的技巧,以免被封:但在制作爬虫时,还 ...
- 在js中插入html语句
连上数据库之后,填充数据时往往需要在js中插入html语句 做法是: <body> <div class="modal-body" id="delete ...
- jsp 安全
一. 身份验证和授权 认证是检验某人真正是他/她自称的那个人的过 程.在一个Servlet/JSP应用程序中,身份验证一般通过 检查用户名密码是否正确.授权是检查该级别的用户是 否具备访问权限.它适 ...
- 饮冰三年-人工智能-Python-18Python面向对象
1 类与实例对方法和属性的修改 class Chinese: # 这是一个Chinese的类 #定义一个类属性,又称为静态数据或者静态变量,相当于C#中的static country="Ch ...
- Windows 7 设置,启动,停止本地虚拟WLAN
以管理员身份运行以下命令 设置承载网络属性 netsh wlan set hostednetwork mode=allow ssid=Burp key= 启动承载网络 netsh wlan start ...
- 使用ansible kubectl插件连接kubernetes pod以及实现原理
ansible kubectl connection plugin ansible是目前业界非常火热的自动化运维工具.ansible可以通过ssh连接到目标机器上,从而完成指定的命令或者操作. 在ku ...
- python面试必问 知识整理
一 数据类型 1 数字 整型与浮点型 #整型int 作用:年纪,等级,身份证号,qq号等整型数字相关 定义: age=10 #本质age=int(10) #浮点型float 作用:薪资,身高, ...