很抱歉问了这么愚蠢的问题。我曾尝试运行Tensorflow (https://www.tensorflow.org/tutorials/images/classification)的图像分类教程,在对网络进行训练后,我尝试进行预测。
根据在线指南,我发现我必须将最后一层的Dense(1)修改为Dense(1, activation= 'sigmoid'),但结果不是从0到1,而是几千个,有正有负。
我哪里错了?
谢谢。
编辑:这是我正在尝试训练的模型
model = Sequential([
Conv2D(16, 3, padding='same', activation='relu', input_shape=(IMG_HEIGHT, IMG_WIDTH ,3)),
MaxPooling2D(),
Conv2D(32, 3, padding='same', activation='relu'),
MaxPooling2D(),
Conv2D(64, 3, padding='same', activation='relu'),
MaxPooling2D(),
Flatten(),
Dense(512, activation='relu'),
Dense(1, activation = 'sigmoid')
])这是一个预测的结果:
img = Image.open("D:\\Downloads\\mask-datasets-v1\\Mask_Datasets\\Train\\Mask\\1.PNG").convert('RGB').resize(size=(IMG_HEIGHT,IMG_WIDTH))
img_array = (np.expand_dims(img,0))
img_array.shape
model.predict(img_array)array([[-4602.1157]], dtype=float32)发布于 2020-05-01 20:00:11
当运行带有示例图像的代码时,我得到了正确的结果-就像我期望在输出层中有一个sigmoid激活一样。
你忘记编译你的模型了吗?https://keras.io/models/model/#compile
因此,您的模型可能仍在预测您的模型的弃用版本,该模型在其输出层还没有sigmoid激活。
https://stackoverflow.com/questions/61541617
复制相似问题