老猿谈谈对Tensorflow的理解

Tensorflow 发布已经三年了,今天它是深度学习生态系统的基石。然而,老猿看来初学者理解起来并不是很简单,尤其是与 PyTorch 或 DyNet 等动态定义的神经网络库相比时

Tensorflow 入门教程有很多,涵盖线性回归、MNIST 分类,甚至机器翻译。这些具体实用的指南可以帮助人们快速启动和运行 Tensorflow 项目,并且可以作为类似项目的切入点。然而,一些开发者在没有很好的教程参考的情况下开发应用程序,一些项目正在探索新的路线(在研究中很常见)。对于这些开发人员来说,在开始使用 Tensorflow 时很容易感到困惑。我写这篇文章是为了填补这个空白。本文没有关注具体的任务,而是提出了一种更通用的方法,并解析了 Tensorflow 的底层抽象。一旦掌握了这些概念,使用 Tensorflow 进行深度学习就会更加直观易懂。目标受众 本教程面向具有一定编程和机器学习经验并希望开始使用 TensorFlow 的从业者。他们可能是:想要在深度学习课程的最终项目中使用 Tensorflow 的 CS 学生;刚被调到深度学习项目的软件工程师;或困惑的 Google AI 新手(大声向 Jacob 打招呼)。

如果您需要开始使用基础知识,老猿的理解:TensorFlow 不是一个普通的 Python 库。大多数 Python 库都是作为 Python 的自然扩展编写的。当你导入一个库时,你得到的是一组变量、函数和类,它们补充和扩展了你的代码“工具箱”。使用这些库时,您知道它们会产生什么。我认为在谈论 Tensorflow 时,是时候抛开这些看法了,这些看法与 Tensorflow 的理念根本不一致,也不能反映 TF 与其他代码交互的方式。 Python 和 Tensorflow 的关系可以比作 Javascript 和 HTML 的关系。 Javascript是一种功能齐全的编程语言,可以实现各种很棒的效果。 HTML 是一个框架,用于表示某种类型的实际计算抽象(在这种情况下,可以由 Web 浏览器呈现的内容)。 Javascript 在交互式网页中的作用是组装浏览器看到的 HTML 对象,然后在需要时通过将其更新为新的 HTML 来与之交互。与 HTML 类似,Tensorflow 是一个框架,用于表示某种类型的计算抽象,称为“计算图”。

当我们在 Python 中操作 TensorFlow 时,我们对 Python 代码做的第一件事就是组装计算图。之后我们的第二个任务是与之交互(使用 Tensorflow 的“会话”)。但重要的是要记住计算图不在变量内部,而是在全局命名空间中。莎士比亚曾经说过:“所有的 RAM 都是一个舞台,所有的变量都不过是指针。”

posted @ 2022-05-23 15:00  老猿一只  阅读(45)  评论(0编辑  收藏  举报
超越台 网站制作 软件开发