如何获得NN的结果,修改结果,然后将其传递给另一个NN?

时间:2019-12-26 13:38:36

标签: python tensorflow neural-network

我是神经网络的初学者,打算使用Tensorflow估计器,请耐心等待。

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

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

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

对于这些问题中的任何一个是常识,我感到抱歉,但是我肯定对他们有些困惑。

1 个答案:

答案 0 :(得分:0)

为了方便使用tf.estimator

tf.estimators缺少适当的文档,这使得仅使用estimators才能解决这个相当棘手的问题。您必须定义一个自定义估算器,但是正如我提到的那样,到今天为止,还没有有关如何实现此目标的端到端指南。
我的建议是通过tf.keras API定义模型,然后通过tf.keras.estimator.model_to_estimator将编译后的模型转换为估算器(有关更多信息,请检查this link

要加入两个模型

Keras Lambda Layer允许将自定义操作定义为模型层。 您可以通过tf.keras.Sequential定义两个模型,然后将其与自定义lambda层“连接”。

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

您可以使用Keras Subclassing API通过自定义正向传递定义自己的模型类,其中包括您的操作。但是,Subclassing API存在一些序列化问题。来自Tensorflow Docs
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