下面列出了最常见的TensorFlow面试问题和答案。
1)什么是TensorFlow?
TensorFlow是一个基于Python的库, 用于创建机器学习应用程序。它是执行复杂数学的低级工具包。它为用户提供了可定制性选项, 以构建实验性学习体系结构。它还可以帮助用户与他们合作, 并将他们转变为正在运行的软件。它最初由Google Brain团队的研究人员和工程师创建, 并于2015年成为开源。
TensorFlow由两个词Tensor和Flow组成;张量被称为多维数组的数据表示, 流意味着对张量执行的一系列操作。
2)你对张量了解多少?
张量是计算机程序中使用的n维数组的矢量或矩阵的一般化。它代表数字形式的大量数据。互联网上没有其他可用的其他n维数组库, 例如Numpy, 但TensorFlow与那些库不同。它提供了创建张量函数和自动计算导数的方法。
图形可以在张量中进行所有操作。可以说节点的边缘称为张量。我们需要一个特征向量作为实现Tensor的初始输入。在机器学习中向模型提供对象列表, 这些对象称为特征向量。
我们可以借助以下图表了解张量:
在此, 箭头表示多维。有一个张量, 称为压力, 它描述了在两个方向上发生的事情。
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)的语言绑定。
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模型的现成集成。只要需要, 它也可以轻松扩展以服务于其他类型的模型和数据。
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。
估算器的示意图可以看成是:
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面试问题
评论前必须登录!
注册