Python 我如何评估一个从目录中加载数据流的模型?

Python 我如何评估一个从目录中加载数据流的模型?,python,tensorflow,keras,Python,Tensorflow,Keras,您好,我培训了一个模型,图像正在加载: 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 d

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

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)

最后,我使用:

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

我认为你应该在求值之前把
numpy
x转换成张量。看看这个。