Mar*_*ldt 14 python machine-learning generator deep-learning keras
我对Keras很新.我训练了一个模型,并希望预测存储在子文件夹中的一些图像(比如用于训练).为了测试,我想预测7个类(子文件夹)中的2个图像.下面的test_generator可以看到14张图片,但我得到了196张预测.哪里出错了?非常感谢!
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(200, 200),
color_mode="rgb",
shuffle = "false",
class_mode='categorical')
filenames = test_generator.filenames
nb_samples = len(filenames)
predict = model.predict_generator(test_generator,nb_samples)
Run Code Online (Sandbox Code Playgroud)
Mat*_*tin 23
您可以将flow_from_directory中的batch_size值从默认值(即batch_size = 32)更改为batch_size = 1.然后将predict_generator的步骤设置为测试图像的总数.像这样的东西:
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(200, 200),
color_mode="rgb",
shuffle = False,
class_mode='categorical',
batch_size=1)
filenames = test_generator.filenames
nb_samples = len(filenames)
predict = model.predict_generator(test_generator,steps = nb_samples)
Run Code Online (Sandbox Code Playgroud)
batch_size生成器中的默认值为32。如果要对总计nb_samples个样本中的每个样本进行1个预测,则应使用来指定nb_samples batch_size。因此,使用batch_size7的a ,您只需要14/7 = 2步即可获得14张图像
desired_batch_size=7
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(200, 200),
color_mode="rgb",
shuffle = False,
class_mode='categorical',
batch_size=desired_batch_size)
filenames = test_generator.filenames
nb_samples = len(filenames)
predict = model.predict_generator(test_generator,steps =
np.ceil(nb_samples/desired_batch_size))
Run Code Online (Sandbox Code Playgroud)
问题是nb_samples其中包含predict_generator正在创建 14 批 14 张图像的
14*14 = 196
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28793 次 |
| 最近记录: |