Реализация совместного обучения в keras

Я пытаюсь реализовать модель, состоящую из двух слоев, чтобы сегментировать объекты-кандидаты в керасах. Итак, в основном эта модель имеет следующую архитектуру

Изображение (канал, ширина, высота) -> несколько слоев свертки и объединения -> вывод (карты объектов 'n', высота и ширина)

Теперь этот единственный выход используется двумя слоями: 1) свертка (1 * 1) -> плотный слой с m единицами (output = n * 1 * 1) -> классификатор пикселей, использующий полностью связанные слои размерности h * w -> преобразование в (H, N) -> вывод

2) свертка -> maxpooling-> плотный слой -> оценка

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

Теперь у меня есть два вопроса: 1) как реализовать плотное соединение через свернутый вывод в слое 1 для создания классификатора пикселей h * w, как упомянуто выше 2) Как объединить два слоя для вычисления единой функции стоимости, а затем обучить оба слоя вместе, используя обратное распространение

Может ли кто-нибудь сказать мне, как создать модель для вышеупомянутой сетевой архитектуры. Я новичок в глубоком обучении, поэтому, если есть что-то, что я неправильно понял, я буду признателен, если кто-нибудь сможет объяснить мне ошибки в моем понимании Спасибо


person 12max34    schedule 02.03.2016    source источник
comment
Модель, которую я пытаюсь реализовать, аналогична модели, упомянутой в следующем документе, где она обучает два уровня на основе совместной бинарной функции логистической стоимости с использованием альтернативного обратного распространения ошибки между двумя уровнями, как указано в документе - (arxiv.org/ pdf / 1506.06204). Есть ли в keras какая-либо модель, реализация которой близка к этой?   -  person 12max34    schedule 03.03.2016


Ответы (1)


Это проще, когда вы поделитесь кодом, который у вас уже есть.

Для преобразования свертки в плотную необходимо использовать model.add(Flatten()), как в примерах здесь.

К сожалению, я не знаю по второму вопросу, но согласно тому, что я только что прочитал в Keras Models, вы должны использовать модель графа.

person FiReTiTi    schedule 02.03.2016
comment
Модель, которую я пытаюсь реализовать, аналогична модели, упомянутой в следующем документе, где она обучает два уровня на основе совместной бинарной функции логистической стоимости с использованием альтернативного обратного распространения ошибки между двумя уровнями, как указано в документе - (arxiv.org/ pdf / 1506.06204) - person 12max34; 03.03.2016
comment
Похоже, вам нужно использовать графическую модель. - person FiReTiTi; 03.03.2016
comment
Да, я только что прошел и реализовал то же самое, но я застрял в той части, где мне нужно применить альтернативное обратное распространение через каждый из слоев, вы можете объяснить мне, что именно это означает, что я запутался - person 12max34; 03.03.2016
comment
Извините, я недостаточно хорошо это знаю :-( - person FiReTiTi; 03.03.2016
comment
Спасибо за ваши усилия ..:) - person 12max34; 03.03.2016