我的keras机器学习模型的预测图像很奇怪

时间:2019-07-23 09:48:31

标签: python-3.x machine-learning keras

我正在测试tensorflow中keras的图像机器学习。

输入图像和答案图像相同。训练完模型后,我想对其进行测试,因此我使用PIL库中的“ Image.fromarray”放置了一些图像并转换为图像(因为模型输出是numpy数组而不是图像)。

但是图像有点奇怪,所以我打印了预测图像的数组。和数组由0到1之间的数字组成(例如0.000025)。据我所知,图像数组由0到255之间的数字组成。

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(128, 128, 3)),
  tf.keras.layers.Dense(64, activation=tf.nn.relu),
  #tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(49152, activation=tf.nn.softmax), 
  tf.keras.layers.Reshape((128, 128, 3)) 
    ])

model.compile(optimizer='adam',
              loss='mean_squared_error',
              metrics=['accuracy'])

这是我的模型代码

    prediction = (prediction.squeeze()*255)

我写了这段代码,因为我必须将其(4d数组)转换为3d数组才能使用“ Image.fromarray”

哦,我知道我必须添加np.uint8才能将“预测”转换为整数,但是在我的代码中,“预测的输出介于0和1之间,所以如果我写了np.uint8,所有数组都将更改为0。

所以问题是预测的数组有问题。我不知道为什么。 请帮我。谢谢您的时间。

0 个答案:

没有答案