- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 keras 中定义了一个简单的 RNN,代码如下:
# define RNN architecture
from keras.layers import Input
from keras.models import Model
from keras.layers import SimpleRNN
from keras.models import Sequential
model = Sequential()
model.add(SimpleRNN(units = 10,
return_sequences=False,
unroll=True,
input_shape=(6, 2)))
model.compile(loss='mse',
optimizer='rmsprop',
metrics=['accuracy'])
model.summary()
然后我将形状为 (batch_size, 6, 2) 的输入数据提供给它,即 6 个时间步长,每个时间步长有两个特征。因此,我希望有 6 个简单的 RNN 单元。
启动训练时,我收到以下错误消息:
Error when checking target: expected simple_rnn_2 to have shape (10,) but got array with shape (1,)
我不明白为什么。
RNN 的要点(我的理解)是让其输入由先前的 RNN 单元提供,以防它不是第一个 RNN 单元和新的时间步长输入。
所以在这种情况下,我希望第一个 RNN 单元为第二个 RNN 单元提供一个形状为 (10,) 的向量,因为单位 = 10。它怎么会得到一个 (1,) 大小的向量?
奇怪的是,只要我在模型中添加一个 Dense 层,问题就解决了。所以下面的架构:
# define RNN architecture
from keras.layers import Input
from keras.models import Model
from keras.layers import SimpleRNN, Dense
from keras.models import Sequential
model = Sequential()
model.add(SimpleRNN(units = 10,
return_sequences=False,
unroll=False,
input_shape=(6, 2)))
model.add(Dense(1, activation='relu'))
model.compile(loss='mse',
optimizer='rmsprop',
metrics=['accuracy'])
model.summary()
不会抛出错误。知道为什么吗?
最佳答案
假设您实际上正在训练模型(您没有包含该代码),问题是您正在为它提供形状为 (1,)
的目标输出,而 SimpleRNN
需要形状 (10,)
的输入。您可以在此处查看文档:https://keras.io/layers/recurrent/
文档明确指出 SimpleRNN
的输出等于 units
,即 10
。每个单元产生一个输出。
第二个示例确实有效,因为您添加了一个 Dense
层,可将输出大小减小到 (1,)
。现在模型可以接受您的训练目标输出,并且它们通过网络反向传播。
关于keras - simpleRNN 输入/输出形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935277/
我在 keras 中定义了一个简单的 RNN,代码如下: # define RNN architecture from keras.layers import Input from keras.mod
我有一个医学纵向数据,我正在对其进行研究。 首先,我正在处理 4000 行样本,其中 3 个时间步长(3 列)的骨骼大小对应于在 3 个不同月份测量的骨骼大小。 我已经完成了基本模型。现在我想确定我对
Keras 新手警报!!! 我有一些与 Keras 中的循环层相关的问题(通过 theano) 关于时间步长,输入应该如何格式化(例如,我想要一个具有 3 个时间步长的层,1 个 future 时间步
...来自 TensorFlow,其中几乎所有形状和所有内容都已明确定义,我对 Keras 用于循环模型的 API 感到困惑。让 Elman 网络在 TF 中工作非常容易,但 Keras 拒绝接受正确
我有一个 SimpleRNN喜欢: model.add(SimpleRNN(10, input_shape=(3, 1))) model.add(Dense(1, activation="linear
当使用 SimpleRNN 或 LSTM 进行经典处理时 sentiment analysis算法(此处适用于长度 3200 个参数(内核) l.weights[1].shape == (100,
在下面的代码中,我导入了一个保存的稀疏 numpy 矩阵,使用 python 创建,对其进行致密化,将掩码、batchnorm 和密集输出层添加到多对一 SimpleRNN。 keras 顺序模型工作
我有一个像这样的时间序列数据的数据框 df = pd.DataFrame({'TimeStep': [1, 2, 3, 1, 2, 3], 'Feature1':
我想在我正在构建的 tensorflow 模型中为我的简单 RNN 使用 relu 激活。它位于深度卷积网络之上。我正在尝试对一系列图像进行分类。我注意到 keras 和 tensorflow 源代码
输入元素有 3 行,每行 199 列,输出元素有 46 行 1 列 Input.shape, output.shape ((204563, 3, 199), (204563, 46, 1)) 当给出输
我创建了一个非常简单的顺序模型,但我的数据很不方便(每个样本都是不同长度的序列)。没关系,因为每个数据项都相对重要,所以将每个序列作为唯一批处理进行训练效果很好。一切正常。 模型看起来像: Input
我正在尝试在 Keras 上的 SimpleRNN 上根据文本进行训练。 在 Keras 中,我为 SimpleRNN 指定了一个非常简单的参数,如下所示: model = Sequential()
我是一名优秀的程序员,十分优秀!