我是神经网络的初学者,打算使用Tensorflow估计器,请耐心等待。
是否可以从训练有素的神经网络获取输出,对其进行修改,然后将结果传递给另一个模型?
我希望从第一个NN获得一个数字作为输出(如果可以通过TensorFlow进行输出),对该数字进行一些计算,然后将其传递给第二个NN。
为此,我需要使用两个单独的估算器吗?我可以将这两个NN放在同一模型中,同时确保第一个NN的输出为数字吗?
对于这些问题中的任何一个是常识,我感到抱歉,但是我肯定对他们有些困惑。
答案 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层“连接”。
您可以使用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
。