Керас Плотный Выход не от 0 до 1 - PullRequest
0 голосов
/ 01 мая 2020

Извините за тупой вопрос. Я попытался запустить Учебник по классификации изображений из 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)

1 Ответ

2 голосов
/ 01 мая 2020

При выполнении кода с примерами изображений я получаю правильные результаты - так же, как и следовало ожидать от активации сигмовидной кишки в выходном слое.

Вы забыли собрать свою модель? https://keras.io/models/model/#compile

Таким образом, ваша модель, вероятно, все еще прогнозирует устаревшую версию вашей модели, у которой пока нет сигмовидной активации в выходном слое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...