首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[译]写给初学者的Tensorflow介绍(2)

[译]写给初学者的Tensorflow介绍(2)

作者头像
云水木石
发布2019-07-02 14:54:25
3690
发布2019-07-02 14:54:25
举报

去年我翻译了一篇文章:写给初学者的Tensorflow介绍,但这只是文章的第一部分,由于原作者迟迟没有写第二部分,我后来就把这件事情忘了。前几天,有朋友留言问为什么没有第二部分的内容,还有朋友热心的给出了第二部分的原文链接。所以在此把第二部分的内容也翻译出来,原文地址:https://medium.com/buzy-developers/a-beginner-introduction-to-tensorflow-part-2-6b4dc25ea51 。点击阅读原文可以跳转到该文章,需要访问外国网站哦!

在上一部分中,我写了一些非常重要的关于使用Tensorflow构建机器学习模型的核心理论概念。

Tensorflow的核心组件是张量和计算图(或数据流图)。Tensorflow只是一个将运算表示为计算图的框架。然后Tensorflow将图划分为许多彼此独立的子图,这些子图并行执行,当然这是TensorFlow的主要特性之一,它为其可扩展性做出了很大贡献。Tensorflow还具有另一个重要特性,它提供了各种现成的计算工具,可用于解决各种问题。这些计算工具也是计算图,一旦将它们添加到程序中,它们就被视为子图,因为它们将成为您要构建的计算图的一部分。

使用Tensorflow执行程序时会发生什么?

上图展现了TensorFlow最简单的架构。顶层代表编程语言接口,Tensorflow主要支持C++和Python(当然还有许多语言绑定可用,但不如C++和python高效)。

语言绑定:语言绑定提供了使用您熟悉的语言构建图形的接口,请注意,这只是一个帮助您构建图形的层。

复合图:了解复合图的含义非常重要,复合图是多个子图的组合,在第一层构建的图总是复合图,因为它是许多现成的子图或Tensorflow提供的操作的组合。例如,如果要为如下表达式构建计算图:

e = a * b + c +(a / b)

那么e是复合图,因为它是2个子图a * b和(a / b)的组合(在Tensorflow术语中,表达式就是计算图)。

核心Tensorflow执行系统:

一旦构建并编译Tensorflow程序,语言绑定将调用包含核心执行系统的Tensorflow库。通过绑定发送到核心执行系统的数据采用容器的形式。此容器在Tensorflow中也称为Session。因此,您必须创建一个会话对象,其中包含所有操作和张量。核心执行引擎的任务很简单:

  • 获取会话对象并为其构建计算图。
  • 辨别子图及其输入。
  • 确定子图是预先构建的Tensorflow操作还是用户操作。
  • 生成主进程和工作进程,初始化分布式环境。
  • 封装子图并将它们发送到单个工作进程。主进程监控所有工作进程。
  • 与Tensorflow内核交互以执行数学运算。

Tensorflow操作:Tensorflow操作是一组预置的数学运算,使用C和C++构建。它们本质上是子图,可以在我们的程序中使用。Tensorflow操作支持的操作非常广泛,有许多不同复杂程度的操作,包括简单的加法、乘法等,以及神经网络激活函数、梯度下降、损失操作等。这个庞大的集合使得Tensorflow不仅是一个分布式执行引擎,而且还是一个用于构建科学应用的数学引擎。(Tensorflow也使用了Numpy)。

内核:Tensorflow的核心定义如下:“Tensorflow是一个用于异构平台上的机器学习和数学计算的库。”这里的异构平台意味着各种各样的设备具有不同的配置和不同的功能,具有不同的内存限制。Tensorflow可以运行在任何平台,因为它有一个复杂的内核。这些内核是为每个平台构建的,可供上层用来与异构硬件设备进行交互。内核可以利用XLA、AVX等CPU的某些特性来加速数学运算。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云水木石 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Tensorflow执行程序时会发生什么?
  • 核心Tensorflow执行系统:
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档