Как мне получить вероятность/достоверность в качестве вывода для CNN, используя keras в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как мне получить вероятность/достоверность в качестве вывода для CNN, используя keras в Python?

Сообщение Anonymous »


Итак, я новичок в глубоком обучении и начал с набора данных о кошках и собаках для модели CNN с использованием Keras.

В моем коде я не могу получить вероятности в качестве выходных данных ни для classifier.predict, ни для classifier.predict_proba. Я просто получаю результат в виде [[0,1]] или [[1,0]]. Я попробовал несколько изображений.

Но я ищу что-то вроде: [[0.4,0.6]], [[0.89,0.11]]

Я пробовал изменить функцию потерь с binary_crossentropy на categorical_crossentropy.

Я попробовал изменить функцию активации выходного слоя с сигмоида на softmax.

Я также пробовал изменить class_mode в flow_from_directory с binary на categorical.

Я думаю, что я ошибся с типом данных, поскольку тип выходного массива — float32. Но даже если это ошибка, я не знаю, как ее изменить.

Я не могу понять, где я ошибаюсь. Пожалуйста, разъясните/помогите. Спасибо.

Зачем мне нужны вероятности?

В другом моем проекте я разделю изображение на n частей меньшего размера. Затем я воспользуюсь классификатором для n-го количества частей отдельно и найду одну часть с наибольшей вероятностью. Однако для этого я не буду использовать набор данных о кошках и собаках. Это для выбора ячеек, и этот набор данных также будет иметь двоичный вывод как «ДА» или «НЕТ». Любые предложения по этому поводу также приветствуются. Спасибо.

Ссылка на код в Github.
#Создание CNN из keras.models импортировать последовательный из keras.layers импортировать Convolution2D из keras.layers импортировать MaxPooling2D из keras.layers импортировать Flatten из keras.layers импортировать Dense #Инициализация CNN классификатор = Последовательный() #Шаг 1 — Свертка classifier.add(Convolution2D(filters=32,kernel_size=[3,3],input_shape=(64,64,3),activation='relu')) #Шаг 2 – Объединение classifier.add(MaxPooling2D(pool_size=(2,2),шаги=2)) #Добавление еще одного сверточного слоя для большей точности #classifier.add(Convolution2D(filters=32,kernel_size=[3,3],activation='relu')) #classifier.add(MaxPooling2D(pool_size=(2,2),шаги=2)) #Шаг 3 — Сглаживание classifier.add(Сгладить()) #Шаг 4 — Полностью связанные слои classifier.add(Dense(units= 64, active='relu')) classifier.add(Dense(units= 2, active='softmax')) #Составление CNN classifier.compile(optimizer='adam',loss = 'categorical_crossentropy', metrics=['accuracy']) #Часть 2. Подгонка CNN к изображениям из keras.preprocessing.image импортировать ImageDataGenerator train_datagen=ImageDataGenerator( масштабирование = 1./255, диапазон_сдвига=0,2, масштаб_диапазона = 0,2, Horizontal_flip=Истина) test_datagen = ImageDataGenerator (масштабирование = 1./255) Training_set = train_datagen.flow_from_directory('dataset/training_set', целевой_размер=(64,64), размер_пакета = 32, class_mode='категориальный') test_set = test_datagen.flow_from_directory('dataset/test_set', целевой_размер=(64,64), размер_пакета = 32, class_mode='категориальный') classifier.fit_generator(training_set, шаги_за_эпоху = 250, epochs=3, #Просто пока я сохранил очень мало эпох. validation_data=test_set, validation_steps=62) #Делаем новые прогнозы импортировать numpy как np из изображения импорта keras.preprocessing test_image_luna=image.load_img('dataset/single/SkilletLuna.JPG',target_size=(64,64)) test_image2=image.img_to_array(test_image_luna) test_image2 = np.expand_dims (test_image2, ось = 0) luna=classifier.predict_proba(test_image2) В [11]: луна ...: Out[11]: массив([[0., 1.]], dtype=float32)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разница между входной формой для 1D CNN, 2D CNN и 3D CNN
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Модель Keras CNN дает разные прогнозы вывода для одного и того же ввода
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Из keras.models, keras.layers и keras.optimizers импорт не разрешен.
    Anonymous » » в форуме Python
    0 Ответы
    91 Просмотры
    Последнее сообщение Anonymous
  • Подкласс Keras Model HDF5 (.keras). Ошибка сохранения формата при использовании tf.keras.Model.save() — TypeError: непод
    Anonymous » » в форуме Python
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous
  • Объединение 1D-CNN и 2D-CNN
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»