Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';Tensorflow Keras模型和估计器之间的区别是什么?_Tensorflow_Keras_Tensorflow Estimator - Fatal编程技术网

什么';Tensorflow Keras模型和估计器之间的区别是什么?

什么';Tensorflow Keras模型和估计器之间的区别是什么?,tensorflow,keras,tensorflow-estimator,Tensorflow,Keras,Tensorflow Estimator,Tensorflow Keras模型和Tensorflow估计器都能够训练神经网络模型并使用它们预测新数据。它们都是位于低级核心TensorFlow API之上的高级API。那么什么时候我应该使用一个而不是另一个呢?Background 估计器API在1.1版中添加到Tensorflow中,并提供了对较低级别Tensorflow核心操作的高级抽象。它适用于估算器实例,这是TensorFlow对完整模型的高级表示 与Estimators API类似,它抽象了深度学习模型组件,如层、激活函数和优化

Tensorflow Keras模型和Tensorflow估计器都能够训练神经网络模型并使用它们预测新数据。它们都是位于低级核心TensorFlow API之上的高级API。那么什么时候我应该使用一个而不是另一个呢?

Background 估计器API在1.1版中添加到Tensorflow中,并提供了对较低级别Tensorflow核心操作的高级抽象。它适用于估算器实例,这是TensorFlow对完整模型的高级表示

与Estimators API类似,它抽象了深度学习模型组件,如层、激活函数和优化器,使开发人员更容易使用。它是一个模型级库,不处理低级操作,这是张量操纵库或后端的工作。Keras支持三个后端-,和

Keras直到2017年11月2日才成为Tensorflow的一部分。现在,当您使用
tf.keras
(或谈论“Tensorflow keras”)时,您只需使用Tensorflow后端的keras接口来构建和训练您的模型

因此,估计器API和Keras API都提供了一个高级别的API,而不是低级别的core Tensorflow API,您可以使用这两个API来训练您的模型。但是在大多数情况下,如果您使用的是Tensorflow,那么出于下面列出的原因,您可能希望使用Estimators API

分布 您可以使用Estimators API跨多台服务器进行分布式培训,但不能使用Keras API

从这个角度来看,它说:

估计器API用于分布式环境的训练模型

从这个角度来看,它说:

您可以在本地主机或分布式多服务器环境上运行基于估计器的模型,而无需更改模型。此外,您可以在CPU、GPU或TPU上运行基于估计器的模型,而无需重新编码您的模型

预制估计器 虽然Keras提供了抽象,使构建模型更容易,但您仍然需要编写代码来构建模型。对于估计器,Tensorflow提供了预先制作的估计器,这些模型可以直接使用,只需插入超参数即可

预先制作的估计器与您使用的类似。例如,from Tensorflow类似于from
scikit learn

与其他Tensorflow工具的集成 Tensorflow提供了一个名为的可视化工具,可以帮助您可视化图形和统计数据。通过使用估计器,您可以轻松地保存摘要,以便使用Tensorboard可视化

Keras模型到估计器的转换
要将Keras模型迁移到估计器,请使用该方法。

在我的理解中,估计器用于大规模培训数据并用于生产目的,因为cloud ML引擎只能接受估计器

以下来自tensorflow的描述提到了这一点:

" Estimators API用于分布式环境的培训模型。该API针对行业用例,例如可以导出模型用于生产的大型数据集上的分布式培训。

PS:Keras确实处理低级别操作,只是不太标准。它的后端(
import keras.backend as K
)包含许多围绕后端函数的函数。它们用于自定义图层、自定义度量、自定义损耗函数等@DanielMöller感谢您的评论!如果你愿意,请随意编辑我的答案。虽然你所说的是真的,但鉴于
colab
/文档(几乎不存在)的数量,TF.keras似乎更倾向于
TF.keras
tf.estimator.estimator
或自定义估计器就分布式训练而言,Keras API实际上比估计器API更受支持。你可以在这里阅读更多:。我同意@hwaxxer。您需要更新Tensorflow 2的答案。