我正在尝试在 Keras 中实现一个卷积自动编码器,其层如下所示。我的数据有 1108 行和 29430 列。
def build(features, embedding_dims, maxlen, filters, kernel_size):
m = keras.models.Sequential()
m.add(Embedding(features, embedding_dims, input_length=maxlen))
m.add(Dropout(0.2))
m.add(Conv1D(filters, kernel_size, padding='valid', activation='relu', strides=1, input_shape=(len(xx), features) ))
m.add(MaxPooling1D())
m.add(Conv1D(filters, kernel_size, padding='valid', activation='relu', strides=1, input_shape=(None, len(xx), features) ))
m.add(UpSampling1D())
m.summary()
m.compile(optimizer="adagrad", loss='mse', metrics=['accuracy'])
return m
early = keras.callbacks.EarlyStopping(
monitor='val_loss', patience=10, verbose=1, mode='min')
model = build(len(xx[0]), 60, 11900, 70, 3)
model.fit(xx, xx, batch_size=4000, nb_epoch=10000,validation_split=0.1,
callbacks=[early])
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个错误,指出ValueError: Error when checking input: expected embedding_1_input to have shape (None, 11900) but got array …
我正在尝试自动确定Keras自动编码器何时收敛。例如,在“让我们构建尽可能简单的自动编码器”下查看此链接。时期数被硬编码为50(损失值收敛时)。但是,如果您不知道数字为50,您将如何使用Keras对此进行编码?您可以继续打电话fit()吗?
machine-learning neural-network autoencoder deep-learning keras