Keras 图像数据生成器显示标签
Keras Image Data Generator show labels
我正在使用 ImageDataGenerator 来增强我的图像。我需要从生成器中获取 y 标签。
示例:我有 10 张训练图像,7 张是标签 0,3 张是标签 1。我想将训练集大小增加到 100。
total_training_images = 100
total_val_images = 50
model.fit_generator(
train_generator,
steps_per_epoch= total_training_images // batch_size,
epochs=epochs,
validation_data=validation_generator,
validation_steps= total_val_images // batch_size)
据我了解,这会在每个时期用 100 张训练图像训练一个模型,根据我的数据生成器以某种方式对每张图像进行增强,然后在 50 张图像上进行验证。
如果我这样做 train_generator.classes
,我得到一个输出 [0,0,0,0,0,0,0,1,1,1]。这对应于我的标签 0 的 7 个图像和标签 1 的 3 个图像。
对于这 100 张新图像,我如何获得 y 标签?
这是否意味着当我将其增加到 100 张图像时,我的新 train_generator
标签是同一件事,但重复了 10 次?基本上np.append(train_generator.classes)
10次?
我正在学习本教程,如果有帮助的话:
https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
根据您所说的生成器,是的。
它将为每个增强图像复制相同的标签。 (否则模型将无法正确训练)。
检查生成器输出内容的一种简单方法是获取生成的内容:
X,Y = train_generator.next() #or next(train_generator)
请记住,这会将生成器置于生成第二个元素的位置,而不是第一个元素。 (这将使 fit 方法从第二个元素开始)。
标签生成为使用 images.Hope 的单热编码,这有帮助!
training_set.class_indices
from keras.preprocessing import image
import matplotlib.pyplot as plt
x,y = train_generator.next()
for i in range(0,3):
image = x[i]
label = y[i]
print (label)
plt.imshow(image)
plt.show()
我正在使用 ImageDataGenerator 来增强我的图像。我需要从生成器中获取 y 标签。
示例:我有 10 张训练图像,7 张是标签 0,3 张是标签 1。我想将训练集大小增加到 100。
total_training_images = 100 total_val_images = 50
model.fit_generator(
train_generator,
steps_per_epoch= total_training_images // batch_size,
epochs=epochs,
validation_data=validation_generator,
validation_steps= total_val_images // batch_size)
据我了解,这会在每个时期用 100 张训练图像训练一个模型,根据我的数据生成器以某种方式对每张图像进行增强,然后在 50 张图像上进行验证。
如果我这样做 train_generator.classes
,我得到一个输出 [0,0,0,0,0,0,0,1,1,1]。这对应于我的标签 0 的 7 个图像和标签 1 的 3 个图像。
对于这 100 张新图像,我如何获得 y 标签?
这是否意味着当我将其增加到 100 张图像时,我的新 train_generator
标签是同一件事,但重复了 10 次?基本上np.append(train_generator.classes)
10次?
我正在学习本教程,如果有帮助的话: https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
根据您所说的生成器,是的。
它将为每个增强图像复制相同的标签。 (否则模型将无法正确训练)。
检查生成器输出内容的一种简单方法是获取生成的内容:
X,Y = train_generator.next() #or next(train_generator)
请记住,这会将生成器置于生成第二个元素的位置,而不是第一个元素。 (这将使 fit 方法从第二个元素开始)。
标签生成为使用 images.Hope 的单热编码,这有帮助!
training_set.class_indices
from keras.preprocessing import image
import matplotlib.pyplot as plt
x,y = train_generator.next()
for i in range(0,3):
image = x[i]
label = y[i]
print (label)
plt.imshow(image)
plt.show()