MNIST数据集有所有10个数字进行训练。如果我预测一个9
,模型将给出一个9
作为输出。但是,如果我想预测数字34.542
呢?它会给我一个错误的数字,因为我只从0训练到9。那么,我如何预测> 9
数呢?
这是我的代码,但我认为它不会在这里有用
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(units=128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(units=128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(units=10, activation=tf.nn.softmax))
# Compiling and optimizing model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Training the model
model.fit(X_train, y_train, epochs=3)
正如评论中所说,你不能将你的模型直接应用于大量的图像上。你必须:
- 应用检测(定位)模型找到并分离每个数字。您将为每个数字获得一个边界框。
- 将您的分类模型应用于每个边界框提取的图像上,以获得对分隔数字的预测。
参见本文中的示例。