我有一个医学纵向数据,我正在做一个研究。首先,我使用了4000行样本,3个时间步骤(3列)的骨大小对应于3个不同月份测量的骨大小。
我受够了基本模式。现在我想确定我对模型的理解是否正确。
model = Sequential()
model.add(layers.SimpleRNN(units=10, input_shape=(3,1),use_bias=True,bias_initializer='zeros',activation="relu",kernel_initializer="random_uniform"))
model.add(layers.Dense(1, activation="sigmoid"))
model.compile(loss='binary_crossentropy', optimizer='sgd')
model.summary()
model.fit(trainX,train_op, epochs=100, batch_size=50, verbose=2)
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)以下是我对这种模式的几点怀疑:
这里的
另外,我下面提到的逻辑有缺陷,但我需要解决它,即:
单位对应于输出单位。最初,我的猜测是,由于有3个时间步骤,必须有3个输出单位,但我感到惊讶的是,即使给units= 128或10,1模型工作。它是如何发生的,为什么会发生?这个问题和上面的问题使我更加困惑。
此外,如果在不同的时间范围内度量了不同的特征集,或者有不同的时间步骤,那么如何构建模型呢?我如何与上述模式相结合。
发布于 2019-12-21 18:34:55
是的,你得到最后一个输出,它是一个10维向量,而不是一维向量,所以得到形状correct.
(samples, 10)与时间步骤无关,时间步骤的数量是神经元被循环施加的次数,所以它与特征或单位的数量正交。
(samples, 3, 1),input_shape应该是(3, 1),所有这些在代码中都是正确的。我不知道你在说什么“numpy代表3d数组”,这个形状很清楚,numpy不对输入形状做任何修改。https://stackoverflow.com/questions/59437851
复制相似问题