我有一台内存很好的电脑(英特尔酷睿 i7-11 代和 16gb 内存) 我的每个纪元仍然需要大约 1.5 小时,花这么长时间是否正常?
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
# define model
model = Sequential()
model.add(LSTM(100, activation='relu', input_shape=(n_input, n_features)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
model.summary()
# fit model
model.fit(generator,epochs=10)
从您的输出来看,您似乎采用了非常小的 batch_size,因此迭代次数很多。考虑到您的 16GB RAM,您应该能够根据数据的丰富程度对更大的批次进行训练。
您可以在 model.fit 中将批量大小设置为:
model.fit(generator, epochs=10, batch_size=16)
这里的 batch_size 为 16 是任意的,您可以根据系统的容量选择更少或更多的批次。
或者您也可以在生成器的声明中设置它,例如:
datagen = ImageDataGenerator(rescale=1./255)
image_generator = datagen.flow_from_directory(
images,
target_size=input_size,
batch_size=batch_size,
class_mode=None)