个性化阅读
专注于IT技术分析

最新推荐!TensorFlow面试题及其答案合集

TensorFlow面试问题

下面列出了最常见的TensorFlow面试问题和答案。

1)什么是TensorFlow?

TensorFlow是一个基于Python的库, 用于创建机器学习应用程序。它是执行复杂数学的低级工具包。它为用户提供了可定制性选项, 以构建实验性学习体系结构。它还可以帮助用户与他们合作, 并将他们转变为正在运行的软件。它最初由Google Brain团队的研究人员和工程师创建, 并于2015年成为开源。

TensorFlow由两个词Tensor和Flow组成;张量被称为多维数组的数据表示, 流意味着对张量执行的一系列操作。


2)你对张量了解多少?

张量是计算机程序中使用的n维数组的矢量或矩阵的一般化。它代表数字形式的大量数据。互联网上没有其他可用的其他n维数组库, 例如Numpy, 但TensorFlow与那些库不同。它提供了创建张量函数和自动计算导数的方法。

图形可以在张量中进行所有操作。可以说节点的边缘称为张量。我们需要一个特征向量作为实现Tensor的初始输入。在机器学习中向模型提供对象列表, 这些对象称为特征向量。

我们可以借助以下图表了解张量:

TensorFlow面试问题

在此, 箭头表示多维。有一个张量, 称为压力, 它描述了在两个方向上发生的事情。


3)有多少张量?

可使用三种类型的张量来创建神经网络模型:

  • 恒定张量
    顾名思义, 常量张量用作常量。他们创建一个接受值且不会更改的节点。可以使用tf.constant创建一个常量。
    tf.constant(value, dtype = None, shape = None, name =’Const’, verify_shape = False)
    它接受五个参数。
  • 可变张量
    可变张量是提供其当前值作为输出的节点。这意味着它们可以在图形的多次执行中保留其价值。
  • 占位符张量
    占位符张量比变量至关重要。这些用于以后分配数据。占位符是在执行时馈入其值的节点。假设, 我们有一些依赖于外部数据的网络输入。另外, 我们不希望我们的图形在开发图形时依赖于任何实际值, 因此占位符是有用的数据类型。我们甚至可以构建没有任何数据的图形。
    因此, 占位符不需要任何初始值。他们只需要一个数据类型(例如float32)和张量形状, 因此即使它没有任何存储的值, 该图仍然知道要用什么进行计算。

4)向TensorBoard解释?

TensorBoard是一套可视化工具, 用于检查和理解TensorFlow运行和图形。这是创建者提供的Tensorflow的简单解决方案, 可让我们可视化图形。它绘制关于图形的定量指标以及其他数据, 例如要通过的图像.TensorBoard当前支持五种可视化技术, 例如标量, 图像, 音频, 直方图和图形。它提高了图形的准确性和流程。


5)TensorFlow的主要功能是什么?

Tensorflow具有对多种语言的API支持, 例如Matlab和C ++。研究人员一直在努力使它变得更好。还引入了一个javascript库tensorflow.js, 用于训练和部署机器学习模型。


6)TensorFlow有什么优势?

TensorFlow的一些主要优点如下:

  • 可以轻松地在CPU和GPU上对其进行培训, 以进行分布式计算。
  • 它具有自动区分功能。
  • 它具有平台灵活性。
  • 它易于定制和开源。
  • 它对线程, 异步计算和队列具有高级支持。

7)列出Tensorflow的一些限制。

TensorFlow有一些限制, 如下所述:

  • 它不提供对OpenCL(开放计算语言)的支持。
  • 它需要高级演算和线性代数的先验知识, 以及对机器学习的充分理解。
  • 如果在相同范围内导入, 则与Theano的GPU内存冲突。

8)TensorFlow支持哪些客户端语言?

TensorFlow提供了对多种客户端语言的支持, 其中最好的一种是Python。有一些实验性接口可用于C ++, Java和Go。开源社区创建并支持许多其他语言(例如C#, Julia, Ruby和Scala)的语言绑定。

TensorFlow面试问题

9)TensorFlow Architecture的三个工作组件是什么?

TensorFlow架构分为三个部分:

  • 预处理数据
  • 建立模型
  • 训练和估计模型

10)说明将数据加载到TensorFlow中的几种选择。

在训练机器学习算法之前, 将数据加载到TensorFlow中是第一步。有两种加载数据的方式:

  • 将数据加载到内存中
    这是最简单的方法。所有数据都作为单个阵列加载到内存中。可以编写与TensorFlow无关的Python代码。
  • Tensorflow数据管道
    TensorFlow具有内置的API, 可帮助轻松加载数据, 执行操作以及提供机器学习算法。存在大量数据集时, 通常使用此方法。

11)描述大多数TensorFlow算法的通用步骤吗?

  • 通过占位符导入数据, 生成数据或设置数据管道。
  • 通过计算图输入数据。
  • 评估损失函数的输出。
  • 使用反向传播来修改变量。
  • 重复直到停止状态。

12)提及一些方法来处理TensorFlow中的过拟合问题。

  • 辍学技巧
  • 正则化
  • 批量标准化

13)你对TensorFlow Manager知道多少?

TensorFlow管理器负责通过其装载程序来装载, 卸载, 查找和对所有可服务对象进行生命周期管理。 TensorFlow Managers控制Servable的整个生命周期, 包括:

  • 加载服务
  • 服务内容
  • 卸货

这是一个抽象类。其语法为:

#include <manager.h>

14)什么是TensorFlow服务?此外, 请解释TensorFlow服务。

客户端使用一些对象来执行计算, 这些对象称为Servable。 servable的大小是灵活的。一个可服务项可能包含任何内容, 从查找表到单个模型再到推理模型的元组。这些servable是TensorFlow Serving中的核心基本单元。

TensorFlow Serving专为生产环境而设计。它是用于机器学习模型的灵活, 高性能的服务系统。 TensorFlow Serving可以轻松部署新算法和实验, 同时保持相同的服务器体系结构和API。 TensorFlow Serving提供与TensorFlow模型的现成集成。只要需要, 它也可以轻松扩展以服务于其他类型的模型和数据。

TensorFlow面试问题

15)TensorFlow的用例是什么?

Tensorflow是深度学习的重要工具。它主要有五个用例, 它们是:

  • 基于文本的应用程序
  • 语音/声音识别
  • 时间序列
  • 图像识别
  • 视频检测

16)你可以在哪里运行TensorFlow?

TensorFlow可以在不同的平台上运行:

  • 操作系统, 例如Windows, OS和Linux
  • 云网络服务
  • IOS和Android等移动操作系统

17)什么时候可以在TensorFlow中找到模型的过拟合条件?

训练数据有所不同, 此数据需要通过TensorFlow进行验证。如果数据中的变化很大, 则可能会出现过度拟合。最好的解决方案是最大程度地消除可用数据中的噪声。


18)TensorFlow的加载程序是什么?

加载程序可以实现为加载, 卸载和访问新型的可服务机器学习模型。这些加载器用于在后端添加算法和数据。函数load()用于从保存的模型中加载模型。


19)列出一些使用TensorFlow构建的产品。

使用TensorFlow构建了一些产品:

  • 奈斯
  • 乔治·卡姆(Giorgio Cam)
  • 手写识别
  • 教学机

20)TensorFlow的来源是什么?

来源是识别并提供服务的模块类型。每个源提供零个或多个可服务流。每个可服务版本都提供了一个加载程序, 使其可以访问, 以便可以加载。


21)TensorFlow与其他库相比有什么好处?说明。

TensorFlow与其他库相比有很多优点, 如下所示:

  • 可扩展性
    TensorFlow提供易于扩展的机器学习应用程序和基础架构。
  • 数据可视化
    在TensorFlow中直观地显示图形非常简单。 TensorBoard(一套可视化工具)用于可视化TensorFlow图。
  • 调试设施
    tfdbg是TensorFlow的专用调试器。它使我们可以在训练和推理期间查看运行TensorFlow图的内部结构和状态。
  • 流水线
    TensorFlow的数据集模块tf.data用于为图像和文本构建有效的管道。

22)你对”深度演讲”有什么了解?

DeepSpeech是用于将语音转换为文本的开源引擎。它使用通过机器学习技术训练的模型。它基于百度的《深度语音》研究论文。它使用Google的TensorFlow来简化实现。

我们可以通过深层语音列出命令行选项, 其语法如下所示:

./deepspeech.py

23)你对TensorFlow抽象了解多少?

TensorFlow包含诸如TF-Slim和kereas之类的抽象库, 可提供对TensorFlow的简化高级访问。这样的抽象有助于简化数据流图的构造。

TensorFlow抽象不仅有助于使代码更整洁, 而且可以大大减少代码的长度。结果, 它大大减少了开发时间。


24)TensorFlow如何使用Python API?

在TensorFlow及其开发方面, Python是主要语言。它是TensorFlow支持的第一种也是最易识别的语言, 并且仍然支持大多数功能。 TensorFlow的功能似乎最初是在Python中定义的, 后来又转移到了C ++。


25)TensorFlow项目中使用了哪些API?

TensorFlow内部的大多数API均基于Python语言。它们为用户提供了低级选项, 例如用于构建神经网络体系结构的tf.manual或tf.nn.relu。这些API还用于设计具有更高抽象级别的深度神经网络。


26)TensorFlow项目之外使用了哪些API?

TensorFlow项目之外使用了一些API, 它们是:

  • TFLearn
    TFLearn提供了一个高级API, 它使神经网络的构建和训练变得快速而简单。该API与Tensorflow完全兼容。其API可以表示为tf.contrib.learn。
  • 张量层
    TensorLayer是基于TensorFlow的深度学习和强化学习库。它是为研究人员和工程师设计的。它提供了广泛的可自定义神经层/功能集合, 这些对于构建现实世界的AI应用程序至关重要。
  • 漂亮的张量
    Pretty Tensor为TensorFlow提供了高级构建器API。它在Tensor上提供了薄的包装器, 因此你可以轻松地构建多层神经网络。
    漂亮张量提供了一组行为类似于张量的对象。它还支持可链接对象语法, 可在TensorFlow中快速定义神经网络和其他分层体系结构。
  • 十四行诗
    Sonnet是一个基于TensorFlow建立的库, 用于创建复杂的神经网络。它是Google DeepMind项目的一部分, 该项目具有模块化方法。

27)我们如何从Python对象创建张量?

我们可以借助Python对象创建张量, 例如numpy数组和列表。我们可以使用tf.convert_to_tensor()操作轻松地执行它。


28)TensorFlow中的变量是什么?

TensorFlow中的变量也称为张量对象。这些对象包含可以在程序执行期间修改的值。

TensorFlow变量是用于表示程序操纵的共享, 持久状态的最佳方式。


29)变量的生存期是多少?

当我们第一次在会话中为该变量运行tf.Variable.initializer操作时, 将创建一个变量。在处理tf.Session.close时将其销毁。


30)区分tf.variable和tf.placeholder。

tf.variable和tf.placeholder几乎彼此相似, 但是有一些区别, 如下所示:

tf变量 tf.placeholder
它定义了不会随时间变化的特定输入数据。
定义时不需要初始值。

31)什么是标量仪表板?

Scaler仪表板可视化随时间变化的Scaler统计信息。它使用一个简单的API来执行这种可视化。例如, 我们可能要检查模型的损失或学习率。

我们可以比较多次运行, 并通过标签建立数据。


32)什么是直方图仪表板?

直方图仪表板用于显示张量的统计分布如何随时间变化。它有助于可视化通过tf.summary.histogram记录的数据。每个图表显示数据的时间”切片”, 其中每个切片是给定步骤的张量直方图。它的排布时间最晚, 位于后面, 而最近的时间位于前面。

如果直方图模式从”偏移”更改为”重叠”, 则透视图将旋转。结果, 每个直方图切片都呈现为一条线并相互覆盖。


33)你对TensorFlow中的Distribution Dashboard有什么了解?

分发仪表板是用于可视化tf.summary.histogram中的直方图数据的另一种方法。它显示有关分发的一些高级统计信息。图表上的每条线都用来代表数据分布的百分比。例如, 底线显示最小值随时间变化的方式, 中间的线显示中位数的变化方式。从上到下阅读这些行, 它们的含义如下:[最大, 93%, 84%, 69%, 50%, 31%, 16%, 7%, 最小]。


34)TensorBoard中的图像仪表板是什么?

图像仪表板用于显示通过tf.summary.image保存的png文件。仪表盘的配置方式是, 每一行对应一个不同的标签, 每一列对应一个运行。图像仪表板还支持任意png, 可用于将自定义可视化效果(例如, matplotlib散点图)嵌入到TensorBoard中。该仪表板始终显示每个标签的最新图像。


35)你对音频仪表板了解多少?

音频仪表板用于为通过tf.summary.audio存储的音频嵌入可播放的音频小部件。仪表盘配置为, 每行对应一个不同的标签, 每列对应一个运行。音频仪表板始终为每个标签嵌入最新的音频。


36)在TensorFlow中描述Graph Explorer?

可视化TensorBoard图时可以使用Graph Explorer。它还负责启用TensorFlow模型的检查。为了充分利用图形可视化工具, 应该使用名称范围将图形中的操作分组。否则, 图形可能难以解密。


37)什么是嵌入式投影仪?

嵌入式投影仪允许可视化高维数据。例如, 可以按模型将输入数据嵌入到高维空间中之后查看输入数据。嵌入式投影仪从模型检查点文件读取数据。它可能配置有其他元数据, 例如词汇文件或精灵图像。


38)你对文本仪表板了解什么?

文本仪表板用于显示通过tf.summary.text存储的文本片段。还支持其他功能, 例如超链接, 列表和表。


39)我可以在没有TensorFlow的情况下运行TensorBoard吗?

如果你未安装TensorFlow, 则可以运行TensorBoard 1.14+, 但功能集有所减少。主要限制是从TensorFlow 1.14开始, 仅支持以下插件:标量, 自定义标量, 图像, 音频, 图形, 投影仪(部分), 分布, 直方图, 文本, PR曲线, 网格。另外, 不支持Google Cloud Storage上的日志目录。


40)TensorFlow中有哪些不同的仪表板?

TensorBoard中有不同类型的仪表板, 它们在张量板上执行各种任务:

  • 标量仪表板
  • 直方图仪表板
  • 仪表盘分销商
  • 图像仪表板
  • 音频仪表板
  • 图资源管理器
  • 投影机
  • 文字资讯主页

41)TensorFlow的主要操作是什么?

TensorFlow中的主要操作定义为传递值并将输出分配给另一个张量。


42)在基于TensorFlow的机器学习中, 模型的性能和准确性之间对你而言更重要的是什么?

它通常取决于完整的性能。尽管精度和精度在大多数模型中都很突出, 但性能和精度都相等。


43)TensorFlow可以部署在容器软件中吗?

TensorFlow可以与Docker等容器化工具一起使用。部署使用字符级ConvNet网络进行文本分类的情感分析模型可能会有所帮助。


44)有人如何报告TensorFlow中的漏洞?

一个人可以直接向security@tensorflow.org报告任何安全问题。该电子邮件的报告已发送到TensorFlow的安全团队。然后在24小时内确认电子邮件, 并在一周内提供详细的响应以及后续步骤。


45)在TensorFlow中部署精简模型文件使用哪些组件?

  • Java API
    Java API是Android上C ++ API的包装。
  • C ++ API
    C ++ API会加载TensorFlow Lite模型并调用解释器。
  • 口译员
    解释器可用于执行模型。它使用特定的内核加载, 这是TensorFlow Lite的独特功能。

46)TensorFlow和PyTorch有什么区别?

TensorFlow PyTorch
PyTorch是基于Torch库的软件。
它是由Facebook开发的。
PyTorch在运行时包括计算图。
PyTorch没有像可视化这样的功能。

47)TensorFlow中可以使用词嵌入吗?列举两个词嵌入模型?

单词嵌入在自然语言处理中用作单词的表示形式, 它们可以在TensorFlow(也称为Word2vec)中使用。

单词嵌入中使用的两个模型是-单词连续袋模型和skip-gram模型。


48)你对TensorFlow估算器了解什么?

Estimators是一个高级API, 可减少训练TensorFlow模型时以前需要编写的许多代码。估计器非常灵活, 如果模型有任何特定要求, 它可以覆盖默认行为。

使用Estimators建立模型的方式有两种:

  • 预制估算器
    这些是预定义的估算器。创建这些模型是为了生成特定类型的模型, 例如DNNClassifier, 它是一个预制的估算器。
  • 估算器(基类)
    它提供了对如何使用model_fn函数创建模型的完全控制。
    这些函数由类tf.estimator.Estimator使用。这些函数返回一个初始化的估算器, 我们可以在其上调用.train, .eval和.predict。
    估算器的示意图可以看成是:
TensorFlow面试问题

49)TensorFlow提供哪些统计分布函数?

TensorFlow提供了多种统计分布, 这些分布位于内部:

tf.contrib.distributions

它包含Beta, Bernoulli, Chi2, Dirichlet, Gamma, Uniform等分布。在构建机器学习算法时, 尤其是对于诸如贝叶斯模型之类的概率方法而言, 这些都是重要的构建块。


50)Tensor.eval()和Session.run()有什么区别?

在TensorFlow中, 我们创建图并为该图提供值。图本身处理所有的工作, 并根据我们在图中应用的配置生成输出。现在, 当我们为图提供值时, 首先, 我们需要创建一个TensorFlow会话。

tf.Session()

会话初始化后, 就应该使用该会话。这是必需的, 因为所有变量和设置现在都属于会话。

因此, 我们可以采用两种可能的方法将外部值传递给图, 以便图接受它们。

  • 第一个是在使用会话并执行会话时调用.run()。
  • 另一种方法是使用.eval()。 .eval()的完整语法为
tf.get_default_session().run(values)

在values.eval()处, 我们可以放置tf.get_default_session()。run(values), 它将提供相同的行为。在这里, eval使用默认会话, 然后执行run()。


工作/人力资源面试问题
jQuery面试问题
Java OOP面试问题
JSP面试问题
休眠面试问题
SQL面试题
Android面试题
MySQL面试问题
  • 它定义随时间修改的变量值。
  • 定义时需要一个初始值。
  • TensorFlow基于Theano库。
  • 它是由Google生产的。
  • TensorFlow在运行时没有任何选项。
  • TensorFlow具有用于可视化机器学习模型的TensorBoard。

面试技巧

JavaScript面试问题

Java基础面试问题

Servlet面试问题

春季面试问题

PL / SQL面试问题

Oracle面试问题

SQL Server面试问题

赞(1) 打赏
未经允许不得转载:srcmini » 最新推荐!TensorFlow面试题及其答案合集
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏