3.3 TensorFlow 机器学习系统。
TensorFlow[26]是 Google 公司于最近开源的一个机器学习系统,使用数据流图表示运算过程,数据流图中的节点用于表示各个数学运算,图的两端表示输入和输出的多维数据,其中各个节点称为 Tensor.通过使用 Tensor 表示运算的架构十分灵活,也使得 TensorFlow 可以使用同一个 API 去调用同一台计算机的各个CPU 或 GPU,或者调用各个服务器,移动设备等。TensorFlow 最开始是由 GoogleBrain 团队的工程师开发的,希望能够用于机器学习和深度神经网络计算,在实现之后发现 TensorFlow 对于机器学习的其它许多相关领域也有很好的适应性。
数据流图主要是描述一些输入边缘通过数学运算节点得到相应输出边缘的流程。节点通常都是用于描述某种数学运算,有时也可以用于存放输入的数据,输出的结果数据或者运算过程中的变量。边缘用于描述输入输出数据和节点之间的关系,这些边缘通常都是由一些大小可变的多维数据组成。TensorFlow 这个名字就是来源于这种通过数据在 Tensor 之间流动完成计算的计算方式。
在完成对 TensorFlow 数据流图的设计之后,只要节点需要的数据边缘已经到位,相应节点的运算可以并行地进行。一个简单的 TensorFlow .
TensorFlow 由于其良好的设计和突出的高效率,加上 Google 公司在机器学习方面的影响边,TensorFlow 刚开源没多久,很快就得到了很多公司与开发者的响应。TensorFlow 主要有以下几个特点:
1. 良好的灵活性,TensorFlow 不仅是一个神经网络系统,通过数据流图中节点的使用,完全可以通过 TensorFlow 完成其它各种的运算。而且在需要快速开发时,可能使用Python进行高抽象的编程,在有高性能需要时,可以使用 C++编写一个新的节点,完成计算。
2. 可移植性,TensorFlow 可以运行在 CPU 或者 GPU 上,并且不关心是个人电脑,服务器还是移动设备,TensorFlow 可以简单地在一台个人电脑上运行,也可以部署到云服务器上进行高性能运算。
3. 研究与生产的普适性,由于高度抽象的设计,使得在使用 TensorFlow 在研究时,可以很快地对完成研究工作,而由于良好的性能,无需做过多的个性就可以把 TensorFlow 程序部署到生产线上。
4. 自动计算,TensorFlow 提供了诸多自动化计算,在使用 TensorFlow 时,仅需要提供目标函数,输入数据,TensorFlow 会为你完成大部分运算。
5. 多语言支持,TensorFlow 提供了 Python 和 C++编程接口,可以任意选择一个语言进行编程,而且对于 Python 语言,TensorFlow 还提供了一套逻辑可视化的支持,在程序运行过程中,可以把一些结果使用图形输出。
6. 高性能,TensorFlow 从底层实现对线程,队列,和异步运算,因此TensorFlow 可以很简单地调用所有可用的硬件资源,通过把节点分配给不同的设备进行计算,TensorFlow 会自动地为用户实现并行化计算。
除了以上的特点之外,TensorFlow 还有一个最大的优点就是使用了 Apache2.0 开源许可证作为开源软件发布,这样无论是学生,研究员,还是开发者,在遵循 Apache 2.0 开源许可证的前提下,都可以随意地使用 TensorFlow 进行研究和开发工作。
Apache 2.0 许可证[27]是由 Apache 组织提出的协议,与 BSD 等开源许可证类似,它鼓励代码共享和尊重原作者的著作权,同时也允许代码修改,然后作为开源软件或者商业软件进行发布。虽然 TensorFlow 在各方面表现都很好,但是也有其不足的方面,最大的问题就是当前开源的仅为其单机版本,而 TensorFlow 分布式版还没有开源,TensorFlow 作为 Google 提出的一个关键性的机器学习系统,已经用在了 Gmail,Google Photos,Google 翻译等应用中,Google 还为其规划了长远的目标,相信在不远的将来,TensorFlow 还能够进一步地提升,也会加入分布式计算支持。
由于 TensorFlow 在各方面突出的表现,加上开源的优势,所以本系统选择了使用 TensorFlow 作为核心计算框架,通过使用 TensorFlow 完成神经网络训练与预测。
3.4 本章小结。
本章通过介绍机器学习的相关知识大致说明了机器学习的相关概念,然后详细说明了机器学习内人工神经网络的知识,其中介绍了人工神经网络的组成,激活函数,最优化算法等,为本文系统的实现进行了理论分析,介绍了算法的优势与选择的原因。最后通过对 TensorFlow 的介绍说明了本文系统所选用的机器学习核心系统。通过以上的介绍,已经完成对本文系统的所有理论知识分析。
1软件发展危机1.1软件的定义及特点软件是按照顺序组织的计算机数据和指令的集合。一般软件被分为系统软件、应用软件和编程语言。其中系统软件为计算机使用提供最基本的功能,最基础的软件就是操作系统;应用软件是在系统软件的基础上衍生出来的为用户提...
随着网络信息时代的到来,人们的生活中越来越离不开手机、电脑等电子产品。他们可以通过软件购买商品、点餐、预约车等服务。...
随着虚拟现实技术(VR)的发展和社会需求,VR技术应用在各个行业中,其在室内设计中的应用不仅体现在室内设计效果图的沉浸式虚拟展示,而且逐渐蔓延到通过VR室内设计软件进行同步设计,交互性和构想性使得VR室内设计软件为用户提供了超于传统室内设计软件的使...
1开发背景教育信息化的实施,自上至下而言,必须与学校的制度创新、组织创新和管理创新结合;自下至上而言,必须以作为学校主体的工作人员使用信息技术水平的逐步提高为基...
0引言管理信息系统(简称MIS)是一个供使用者利用计算机、网络通信设备以及其他办公设备,对所需的信息进行采集、传输、处理、格式转换及存储、信息更新、功能拓展和维护的系统。[1]我国高等职业教育虽然起步比较晚,但在高等教育大众化的今天,高等职业教...
第5章总结随着计算机的普及和网络技术的发展,人们获取信息主要途径以及从书籍、期刊等传统的方式转向从互联网中获...
第3章系统设计3.1数据库设计3.1.1概念结构(1)住户信息数据库结果设计,通过对以往小区物业管理实际需求情况及常用的信息分析,其住户信息主要包括了住户编号、房屋编号、户主名称、联系电话以及联系地址等信息,其结果图如图3.1所示。3.1.2实...
计算机已经经历了四代的发展历程,从电子计算机到晶体管计算机时代,再从集成电路计算机时代到大规模集成电路计算机时代,这一路的发展表现出了计算机的发展速度,同时这也为计算机软件开发的发展打好了坚实的基础。...
本文首先对学生宿舍管理系统进行了需求分析,然后又介绍了学生宿舍管理系统的整体设计,将系统分成用户信息管理、学生信息管理、报修信息管理和检查信息管理四个模块,最后对系统各模块设计进行了简单的概述。...
第4章系统测试系统测试是在系统详细设计功能实现后,借助专业测试工具对系统的功能和性能进行全方位模拟测试的过程,用于检验系统设计是否符合设计预期,发现系统潜在故障及问题并于系统实现前改进。本课题中的系统测试紧密结合软件工程要求,分单元测试...