我正在使用 Keras 预训练模型 ResNet50 来训练我自己的数据集,该数据集仅包含一张用于测试目的的图像。首先,我用我的图像评估模型,得到 0.5 的损失和 1 的准确度。然后,我拟合模型,得到 6 的损失和 0 的准确度。我不明白为什么推理的损失和前向传播不匹配。Keras 中的推理和前向传播的行为似乎不同。我附上了我的代码片段和它的屏幕截图。
model = ResNet50(weights='imagenet')
img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
y = np.zeros((1, 1000))
y[0, 386] = 1
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['categorical_accuracy'])
model.evaluate(x, y)
1/1 [===============================] - 1s 547ms/步 [0.5232877135276794, 1.0]
model.fit(x, y, validation_data=(x, y))
训练 1 个样本,验证 1 个样本 Epoch 1/1 1/1 [=============================] - 3s 3 秒/步 - 损失:6.1883 - categorical_accuracy:0.0000e+00 - val_loss:9.8371e-04 - val_categorical_accuracy:1.0000
model.evaluate(x, y)
1/1 [===============================] - 0s 74ms/步 [0.0009837078396230936, 1.0]
缥缈止盈
相关分类