模型甚至没有开始训练谷歌 Colab
Posted
技术标签:
【中文标题】模型甚至没有开始训练谷歌 Colab【英文标题】:model not even started training google Colab 【发布时间】:2021-06-18 20:39:46 【问题描述】:我购买了 Colab pro 来训练我的 CNN 模型,当我尝试仅使用 4k 图像训练模型时,训练会立即开始......但是当我尝试使用 30k 图像训练模型时,训练成功了甚至没有开始。 .我什至等了 1 个小时,但模型从来没有开始训练它在第一个时期本身就卡住了.......我的代码没有任何问题,我仔细检查了它......image shows where i got stuck even at first epoch of my model training with 30k images
【问题讨论】:
如果你直接从你的谷歌驱动器读取图像,它可能会超级慢。 这是由于数据集较大,因此请尝试了解有关批处理的更多信息。 【参考方案1】:我使用这个生成器修复了那个大型数据集问题...下面我用于它的代码
train_datagen = ImageDataGenerator(rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
validation_split=0.2) # set validation split
train_generator = train_datagen.flow_from_directory(
data_dir,
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='categorical',
subset='training') # set as training data
validation_generator = train_datagen.flow_from_directory(
data_dir, # same directory as training data
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='categorical',
subset='validation') # set as validation data
history=model.fit_generator(
train_generator,
steps_per_epoch = train_generator.samples // batch_size,
validation_data = validation_generator,
validation_steps = validation_generator.samples // batch_size,
epochs = epochs)
【讨论】:
【参考方案2】:批量处理是训练大型数据集的好主意。延迟是由于数据集中的大量数据造成的。下面是一个很好的例子。 (请注意,每个时期的步骤如何划分数据)。根据您的数据仔细选择批量大小。
batch_size = 1000
history = model.fit_generator(
train_generator,
steps_per_epoch=train_generator.samples//train_generator.batch_size,
epochs=5,
validation_data=validation_generator, validation_steps=validation_generator.samples//validation_generator.batch_size,
verbose=1)
【讨论】:
【参考方案3】:当您想在大量图像上拟合模型时,您无法传递整个图像数据库,您必须使用仅将当前批次传递给模型的生成器,考虑编写一个或使用 TFRecords。这是 google lab 上的一个很好的例子:
https://codelabs.developers.google.com/codelabs/keras-flowers-tpu/#4
【讨论】:
以上是关于模型甚至没有开始训练谷歌 Colab的主要内容,如果未能解决你的问题,请参考以下文章
将本地训练的 TensorFlow 模型导入 Google Colab