tensorflow - 我们应该有什么作为 model.evaluate 的输出
问题描述
我不久前开始使用 tensorflow,目前正在研究 CNN,尤其是手语 mnist 以识别手语。创建并运行我的模型后,我使用 model.evaluate 和 7172 个图像对其进行评估。问题是在评估器的输出中我有 7172/1,在我看来应该是 7172/7172。此外,我认为我的冗长冗长。我尝试更改模型中的几个设置,但没有任何效果。有人可以帮助我更好地理解这个问题吗?
1.这是我的代码的一部分
training_images = np.expand_dims(training_images, axis = 3)
testing_images = np.expand_dims(testing_images, axis = 3)
train_datagen = ImageDataGenerator(rescale = 1./255,
horizontal_flip = True,
rotation_range = 40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range = 0.2,
fill_mode ='nearest',
zoom_range = 0.2)
validation_datagen = ImageDataGenerator(rescale = 1./255)
model = tf.keras.models.Sequential([tf.keras.layers.Conv2D(64, (3,3), activation='relu',
input_shape=(28,28,1)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(64,(3,3),activation = 'relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation = tf.nn.relu),
tf.keras.layers.Dense(26,activation = tf.nn.softmax)])
model.compile(optimizer=tf.optimizers.Adam(),loss = 'sparse_categorical_crossentropy',
metrics =['accuracy'])
history = model.fit_generator(train_datagen.flow(training_images, training_labels,
batch_size = 32),
steps_per_epoch=len(training_images) / 32, epochs = 15,
validation_data = validation_datagen.flow(testing_images,
testing_labels,batch_size = 32),
validation_steps=len(testing_images) / 32)
model.evaluate(testing_images, testing_labels)
2.这里是我得到的出口
7172/1[=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================] - 2s 218us/sample - loss: 277.3631 - accuracy: 0.4357
解决方案
我在 Google colab 中使用 sign mnist 数据集复制了相同的代码,发现需要替换此代码段:
#training_images = np.expand_dims(training_images, axis = 3)
#testing_images = np.expand_dims(testing_images, axis = 3)
使用下面给出的代码片段成功执行程序。
training_images = training_images.reshape(training_images.shape[0], *(28, 28, 1))
testing_images = testing_images.reshape(testing_images.shape[0], *(28, 28, 1))
运行代码后:
model.evaluate(testing_images, testing_labels) #model ran on 5 epochs
输出:
172/172 [==============================] - 4s 24ms/step - loss: 189.1395 - accuracy: 0.4999
[189.13946533203125, 0.4999089539051056]
model.evaluate()
- 返回模型的损失值和指标值。
请参阅此链接以获取更多详细信息.evaluate()
。
推荐阅读
- python - ValueError:您正在尝试将包含 16 层的权重文件加载到具有 0 层的模型中
- java - 如何加快以下 JDBC 插入/导入过程?
- javascript - TSLint:地图中的阴影名称。这是误报吗?
- javascript - 创建蒙版叠加聚光灯效果以显示图像
- c# - wpf xaml 到 c# 不一样
- python - 熊猫:两列的累积计数
- php - 如何使用php在动态列表中添加静态li?
- android - 控件在 android studio 的 .xml 文件中不可见,尽管添加了它们
- python - 使用 shutil.copyfiles 时获取“PermissionError:[错误 13] 权限被拒绝
- python-3.x - 如何在 Python 中循环读取多个文件并获取匹配单词的计数