【发布时间】:2018-12-20 16:29:46
【问题描述】:
我正在使用 Keras 对图像(多个类)进行分类,并且我正在使用 ImageDataGenerator。它会自动找到所有类,并且似乎没有在任何变量中写入标签。我想我需要使用 to_categorical 以矩阵形式存储我的标签,但我只是不知道在哪里使用它。
这是我的代码的 sn-p:
...
datagen = ImageDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
# generator for training
train_generator = datagen.flow_from_directory(
train_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='categorical')
# generator for validation
val_generator = datagen.flow_from_directory(
val_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='categorical')
# generator for testing
test_generator = datagen.flow_from_directory(
test_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='categorical')
# train
model.fit_generator(
train_generator,
steps_per_epoch=nb_train_samples // batch_size,
epochs=epochs,
validation_data=val_generator,
validation_steps=nb_validation_samples // batch_size)
生成器只会说“找到属于 5 个类别的 442 张图像”。或类似的东西。如何在我的标签上使用 to_categorical?
【问题讨论】:
-
您无需致电
to_categorical。当您将class_mode='categorical'传递给flow_from_directory()时,生成器生成的标签将采用分类格式。
标签: python tensorflow machine-learning keras