【问题标题】:Using MNIST to print larger numbers使用 MNIST 打印更大的数字
【发布时间】:2021-08-10 23:03:58
【问题描述】:

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)

【问题讨论】:

  • 你不能期望得到一个训练集中不存在的数字的正确预测。
  • 但是34.542 的每个数字都可以分段吗?

标签: python tensorflow keras mnist


【解决方案1】:

正如 cmets 中所说,您不能将模型直接应用于大量图像。 你必须:

  • 应用检测(定位)模型来查找和分离每个数字。您将获得每个数字的边界框。
  • 将您的分类模型应用于每个边界框的提取图像,以获得对分离数字的预测。

例如,请参阅this article

【讨论】:

    猜你喜欢
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2021-08-13
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多