我在 DNA 序列上使用神经网络进行分类,其中输入以一种热编码进行编码。
我开始使用一个非常简单的网络,只是为了一些测试。
ishape = (None,4)
ksize = 18
model.add(Conv1D(16, ksize, activation='relu', input_shape=ishape))
model.add(GlobalAvgPool1D(data_format="channels_last"))
model.add(Dense(2, activation='sigmoid'))
问题在于它返回相同的结果,每次我训练网络时都会改变。
所以我尝试查看全局平均层的输出..我发现输出几乎相同,例如,仅考虑一个值,它从 0.17484 到 0.17424。 (如果我尝试用全 0 或全 1 预测假输入,也会发生这种情况)
我不知道如何解决它..一些建议?
附言这个问题与训练无关,因为我发现如果我在初始化之后但在训练之前尝试预测输入是一样的。
更新---
我发现卷积层的权重很小,在 0.1 或 0.01 的范围内..考虑到我只使用 0 和 1 值,这可能是问题吗?我该如何解决这个问题?