我是Tensorflow 2.0 / Keras的新手,但是我仍然对使用Keras自定义API有一定的经验。我有一个关于卷积层的问题。
根据这次讨论https://ai.stackexchange.com/questions/5769/in-a-cnn-does-each-new-filter-have-different-weights-for-each-input-channel-or和我自己的实验,如果我使用Keras卷积层,则每个滤波器的每个通道都有唯一的权重。因此,例如,如果我将一维卷积层应用于第二维上形状为(10,9)的输入张量,并且使用的内核大小为10,则每个内核的权重总数将为90。
问题是,我怎么不那样做?如何为每个通道使用相同的权重应用内核/运算?在我的示例中,总共只有10个权重。
对于上下文,我正在尝试创建一个模型来预测晶体的某些属性。我的输入是一个M x 2N矩阵。晶体有M个原子,对于每个原子,我都收集了N个最近邻居的信息。 (2N个特征)每个原子和邻居都是可互换的,顺序应该无关紧要。因此,我想对每个原子的每个最近邻居应用相同的操作。所以我要的是本质上是2D卷积内核,内核大小为1 x 2,使用步幅(2,1)应用于此矩阵,如果我正确理解的话,应该对每个对象“迭代”最近的邻居(第二维)原子(第一维)。但是,此内核应该对每个操作使用相同的权重(每个内核只需两个权重!),因为我知道每个邻居都是等效的。
有关如何执行此操作的任何提示?我觉得它应该很简单,或者至少可以某种方式?还是我需要为此自定义图层?