作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试批量训练 RNN。输入输入大小(10, 70, 3075),其中10是批量大小,70是时间维度,3075是频率维度。
有 3 个输出,其大小为(10、70、1025)每个基本上都有 10 个大小为 (70,1025) 的频谱图。
我想通过回归来训练这个RNN,其结构是
input_img = Input(shape=(70,3075 ) )
x = Bidirectional(LSTM(n_hid,return_sequences=True, dropout=0.5, recurrent_dropout=0.2))(input_img)
x = Dropout(0.2)(x)
x = Bidirectional(LSTM(n_hid, dropout=0.5, recurrent_dropout=0.2))(x)
x = Dropout(0.2)(x)
o0 = ( Dense(1025, activation='sigmoid'))(x)
o1 = ( Dense(1025, activation='sigmoid'))(x)
o2 = ( Dense(1025, activation='sigmoid'))(x)
问题是输出密集层无法考虑三个维度,它们想要类似 (None, 1025) 的东西,我不知道如何提供它,除非我沿着时间维度连接。
出现以下错误:
ValueError: Cannot feed value of shape (10, 70, 1025) for Tensor u'dense_2_target:0', which has shape '(?, ?)'
batch_shape 选项在输入层中有用吗?我实际上已经尝试过,但也遇到了同样的错误。
最佳答案
在本例中,第二个 RNN 将序列折叠为单个向量,因为默认情况下 return_sequences=False
。要使模型返回序列并在每个时间步上单独运行 Dense 层,只需将 return_sequences=True
添加到第二个 RNN:
x = Bidirectional(LSTM(n_hid, return_sequences=True, dropout=0.5, recurrent_dropout=0.2))(x)
密集层会自动应用于最后一个维度,因此之后无需重新整形。
关于Python、Keras - 张量 u'dense_2_target : Cannot feed value of shape (10, 的 ValueError : 0', which has shape ' (? 70, 1025)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54260919/
我是一名优秀的程序员,十分优秀!