我正在尝试使用如下所示的输入形状训练张量流 keras 模型。
x_train = (729124, 50, 5)
y_train = (729124,)
我的模型定义如下
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Conv1D(filters=8, kernel_size=2, input_shape=(50,5), activation='relu'))
# model.add(tf.keras.layers.InputLayer(input_shape=input_shape))
model.add(tf.keras.layers.LSTM(256, return_sequences=True, kernel_regularizer=tf.keras.regularizers.l2(0.01)))
model.add(tf.keras.layers.BatchNormalization())
model.add(tf.keras.layers.LSTM(256, dropout=0.1, kernel_regularizer=tf.keras.regularizers.l2(0.01)))
model.add(tf.keras.layers.BatchNormalization())
model.add(tf.keras.layers.Dense(256, activation='relu', kernel_regularizer=tf.keras.regularizers.l2(0.01)))
model.add(tf.keras.layers.BatchNormalization())
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(256, activation='relu', kernel_regularizer=tf.keras.regularizers.l2(0.01)))
model.add(tf.keras.layers.BatchNormalization())
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(1))
model.compile(loss='mse', optimizer="adam")
使用以下代码训练模型
model.fit(x_train, y_train, epochs=50, batch_size=256, validation_split=0.2, shuffle=True)
我总是收到以下错误。
我知道存在一些内存溢出,因此想减少我的批量大小。但我在这里发现令人惊讶的是,我给出的批量大小是无效的,因为我总是收到上述错误,其中张量试图为大小分配张量,[583299,50,5]
但我想我应该期待类似的东西[batch_size,50,5]
。我可以知道上面的实现有什么问题吗?如何有效地给出训练的批量大小,从而避免内存溢出。
任何帮助解决此问题的帮助都将受到高度赞赏。提前致谢。
汪汪一只猫
相关分类