我正在尝试用卷积神经网络对DNA序列进行分类。DNA序列被转换成一个输入阵列,编码为一个热载体。例如,“ACTG”编码为[[1,0,0,0],[0,1,0,0],[0,0,0,1],[0,0,1,0]]。我把每个样本都这样编码了。输入的维数将是number_of_samples*length_of_samples*4。我现在正试图理解一维卷积在像这样的输入数组上是如何工作的,但是我无法计算出一维卷积的输出是什么样子。非常感谢你的帮助。作为参考,我使用了斯坦德大学Kundaje实验室的this代码。我不明白一维卷积对于三维输入是如何工作的。在
下面是KerasConv1D模块的文档,其中他们将模型的输入描述为固定长度的固定或可变数量的序列(如示例(10128):10个序列,每个序列的长度为128)。在
一维卷积可以被认为是贯穿于二维数据的单一空间或时间维度。这个stack overflow答案对各种类型的Conv层给出了相当清晰的解释。在
为了解决你的问题,我做了一个有2个conv层和随机数据的玩具程序,我想你可能会觉得有用。在
结果:
^{pr2}$现在你可以用一个形状(没有序列,4)来代替4,然后用这种方式定义你自己的模型。 但是,如果您想使用类似(None,4)的东西,如果您的序列是可变的,并且没有您可以选择的固定长度,那么在使用Tensorflow后端时,您会遇到密集层的问题,这需要输入的最后一个维度。 所以你可以选择最适合这个要求的形状。在
相关问题 更多 >
编程相关推荐