我试图使用keras构建一个非传统的神经网络,遇到了设置上的困难。
前几层是标准的卷积层,这些层的输出具有d个通道,每个通道的图像形状为n x n。
我想做的是使用单个全连接层将这个d x n x n的张量映射到一个大小为n x n的单一图像。我希望定义一个单一的全连接层,输入大小为d,输出大小为1,并将此函数应用于输入的每个“像素”(输入在通道上按深度取值)。
到目前为止,我还没有找到一个有效的解决方案。我尝试首先定义一个全连接层,然后遍历输入的每个“像素”,然而这需要几个小时来初始化模型,我担心这会减慢反向传播,因为计算可能没有正确地并行化。
有没有有效的方法来做到这一点?
回答:
您描述的是一个输出深度为1的1×1卷积。您可以像实现其他卷积层一样实现它。之后,您可能需要应用tf.squeeze
来移除深度,其大小应为1。