我到处都看了看,却找不到办法。 基本上我想将输入馈送到keras模型中的某个中间层,并且想要对整个图形进行反向传播(即在中间层之前包括层)。为了理解这一点,我建议您参考文章中提到的图#34; 用于3D形状识别的多视图卷积神经网络"。
从图中可以看出,该特征在视图池层中被最大化,然后将结果向量传递给网络的其余部分。 从论文中他们进一步使用视图池功能进行传播。
为了达到这个目的,我正在尝试一种简单的方法。我的模型中不会有任何视图池。这个池我将通过获取多个视图的功能然后获取最大值来离线。最后,聚合功能将传递到网络的其余部分。但是我无法通过直接将输入传递到中间层来弄清楚如何将反向传播到整个网络。
任何帮助将不胜感激。感谢
答案 0 :(得分:1)
如果您有tensorflow模型的代码,那么这将非常简单。该模型可能看起来像
def model( cnns ):
viewpool_output = f(cnns)
cnn2_output = cnn2( viewpool_output )
...
您只需将模型更改为
即可def model( viewpool_output ):
cnn2_output = cnn2( viewpool_output )
...
而不是传递“真正的”视图池输出,您只需传递您想要的任何图像。但是你没有给出任何代码,所以我们只能猜测它的样子。