我想知道这两个模型之间的区别。上面的有 4 层查看模型摘要,您还可以定义降维的单元数。但是第二个模型是什么,它有 3 层,你不能直接定义隐藏单元的数量?LSTM 自动编码器都用于降维和回归分析吗?我从keras和这里找到了描述这两个例子的好论文吗?我没有在任何地方定义变量,事实上我并没有直接询问编码问题。我希望这也是这个话题的好地方。一、型号:
from keras.layers import *
from keras.models import Model
from keras.layers import Input, LSTM, Dense, RepeatVector
samples=1000
timesteps=300
features=input_dim=1
data_shape=np.reshape(data,(samples,timestep,input_dim)
inputs = Input(shape=(timestep, input_dim))
encoded = LSTM(units, return_sequences=False, name="encoder")(inputs)
decoded = RepeatVector(timestep)(encoded)
decoded = LSTM(input_dim, return_sequences=True, name='decoder')(decoded)
autoencoder = Model(inputs, decoded)
encoder = Model(inputs, encoded)
print (autoencoder.summary())
2.型号:
x = np.random.random((1000, 300, 1))
2.型号:
m = Sequential()
m.add(LSTM(100, input_shape=(300,1)))
m.add(RepeatVector(300))
m.add(LSTM(100, return_sequences=True))
print (m.summary())
m.compile(loss='mse', optimizer='rmsprop', metrics=['mse', 'mape'])
history = m.fit(x, x, nb_epoch=2000, batch_size=100)
当我尝试向它们添加一个形状为 (1000, 300, 1) 的数据时,第一个接受它,第二个不接受,我得到错误预期 lstm_4 具有形状 (None, 300, 100) 但得到了形状为 (1000, 300, 1) 的数组。使用选择的 input_dim 1 和单位 =100。我究竟做错了什么 ?这就是我想要的:
LSTM(100, input_shape=(300, 1))
使用单位 = 100 运行模型时,出现以下错误:检查目标时出错:预期 lstm_2 具有形状 (None, 300, 100) 但得到形状为 (1000, 300, 1) 的数组
模型不接受我的数据形状和单位大小的错误在哪里?