首页 > 解决方案 > 如何获取 NN 的结果,修改结果,然后将其传递给另一个 NN?

问题描述

我是神经网络的初学者,计划使用 Tensorflow 估计器,请多多包涵。

是否可以从经过训练的神经网络获得输出,对其进行修改,然后将结果传递给另一个模型?

我希望得到一个数字作为第一个 NN 的输出(如果可以通过 TensorFlow),使该数字经过一些计算,然后将其传递给第二个 NN。

我需要为此使用两个单独的估算器吗?我可以将这两个 NN 放在同一个模型中,同时确保第一个 NN 的输出是一个数字吗?

如果这些问题中的任何一个是常识,我很抱歉,但我肯定对它们有点迷茫。

标签: pythontensorflowneural-network

解决方案


为了更容易使用tf.estimator

缺乏适当的文档tf.estimators使得这个问题很难解决estimators。您必须定义一个自定义估算器,但正如我所提到的,截至今天,没有关于如何完成此任务的端到端指南。
我的建议是通过tf.kerasAPI 定义您的模型,然后通过将编译的模型转换为估算器tf.keras.estimator.model_to_estimator(有关更多信息,请查看此链接

加入两个模型

Keras Lambda 层允许将您的自定义操作定义为模型层。例如,您可以定义您的两个模型,tf.keras.Sequential并将它们与您的自定义 lambda 层“连接”。

(可选)不稳定的替代方法:子类化 API

您可以使用Keras 子类化 API来定义您自己的带有自定义前向传递的模型类,这将包括您的操作。然而,Subclassing API 存在一些序列化问题。来自TensorFlow 文档
A subclassed model differs in that it's not a data structure, it's a piece of code. The architecture of the model is defined via the body of the call method. This means that the architecture of the model cannot be safely serialized.

因此,我不确定这是否可以安全地转换为tf.estimator.


推荐阅读