【问题标题】:How can I evaluate a model loading data with flow_from_directory?如何使用 flow_from_directory 评估模型加载数据?
【发布时间】:2020-12-24 17:54:48
【问题描述】:

您好,我训练了一个模型,图像正在加载:

batch_size = 16

# Data augmentation and preprocess
train_datagen = ImageDataGenerator(rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    validation_split=0.20) # set validation split

# Train dataset
train_generator = train_datagen.flow_from_directory(
    'PetImages/train',
    target_size=(244, 244),
    batch_size=batch_size,
    class_mode='binary',
    subset='training') # set as training data

# Validation dataset
validation_generator = train_datagen.flow_from_directory(
    'PetImages/train',
    target_size=(244, 244),
    batch_size=batch_size,
    class_mode='binary',
    subset='validation') # set as validation data

test_datagen = ImageDataGenerator(rescale=1./255)
# Test dataset
test_datagen = test_datagen.flow_from_directory(
    'PetImages/test')

问题是如何使用 test_datagen 评估模型?

我尝试了以下但不重要的工作:

x=[]
y=[]
test_datagen.reset()
for i in range(test_datagen.__len__()):
    a,b=test_datagen.next()
    x.append(a)
    y.append(b)
x=np.array(x)
y=np.array(y)
print(x.shape)
print(y.shape)

score = model.evaluate(x, y)
print(f'Test loss: {score[0]} / Test accuracy: {score[1]}')

我收到此错误:

无法将 NumPy 数组转换为张量(不支持的对象类型 numpy.ndarray)。

【问题讨论】:

标签: python tensorflow keras


【解决方案1】:

最后我使用:

score = model.evaluate_generator(test_datagen, steps=STEP_SIZE_VALID)
print(f'Test loss: {score[0]} / Test accuracy: {score[1]}')

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2021-10-22
    • 2021-11-24
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    相关资源
    最近更新 更多