首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试着理解角蛋白SimpleRNN

试着理解角蛋白SimpleRNN
EN

Stack Overflow用户
提问于 2019-12-21 16:18:53
回答 1查看 689关注 0票数 2

我有一个医学纵向数据,我正在做一个研究。首先,我使用了4000行样本,3个时间步骤(3列)的骨大小对应于3个不同月份测量的骨大小。

我受够了基本模式。现在我想确定我对模型的理解是否正确。

代码语言:javascript
复制
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)

以下是我对这种模式的几点怀疑:

这里的

  1. 是假的,那么我不应该只从RNN层得到最后的输出。为什么输出是来自RNN层的形状(无,10)?我想应该是(样本量1)。

另外,我下面提到的逻辑有缺陷,但我需要解决它,即:

单位对应于输出单位。最初,我的猜测是,由于有3个时间步骤,必须有3个输出单位,但我感到惊讶的是,即使给units= 128或10,1模型工作。它是如何发生的,为什么会发生?这个问题和上面的问题使我更加困惑。

  1. input_shape对应于-sample大小、时间步数、特性。在这里,我测量了一个骨大小在3个时间段。当我说输入的形状是(样本大小,3,1)时,我的理解正确吗?此外,对于numpy如何表示3d数组,我感到困惑。看起来,要获得所需的维度,我需要输入为-#特性、观察/样本_大小、时间步骤。我是否必须根据numpy代表3d的方式来重塑我的输入,还是应该让它成为。?

此外,如果在不同的时间范围内度量了不同的特征集,或者有不同的时间步骤,那么如何构建模型呢?我如何与上述模式相结合。

EN

回答 1

Stack Overflow用户

发布于 2019-12-21 18:34:55

是的,你得到最后一个输出,它是一个10维向量,而不是一维向量,所以得到形状correct.

  • Number (samples, 10)与时间步骤无关,时间步骤的数量是神经元被循环施加的次数,所以它与特征或单位的数量正交。

  • 是的,输入的形状应该是(samples, 3, 1)input_shape应该是(3, 1),所有这些在代码中都是正确的。我不知道你在说什么“numpy代表3d数组”,这个形状很清楚,numpy不对输入形状做任何修改。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59437851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档