Где ошибка при обучении нейросети для различия изображений?
Во-первых, многослойный перцептрон - неподходящая архитектура, посмотрите в сторону сверточных сетей.
Во-вторых, 100 фоток может оказаться недостаточно для обучения с нуля, особенно без аугментации.
В-третьих, сигмоида - плохой выбор функции активации.
ab-log.ru/smart-house/video_camera_security/face-d...
1. Сначала нужно научиться определять зону (crop-zone), где возможна язва и приводить все изображения к единому унифицированному виду (нужно для снижения возможных ошибок НС на след. пункте).
2. На основе значений весов НС, посчитанных на основе отображаемых пикселей для каждой фотографии, нужно КЛАССИФИЦИРОВАТЬ множества на 2 класса (как я понял, что Вам так необходимо): "с язвой" и "без язвы".
Представленный Вами код - это частный случай для подготовленных изображений (т.е., начиная с п.2). Также, необходимо увеличить кол-во скрытых слоёв для достижения более детальной и точной кластеризации.
PS: Да, и ещё...  Если Вы хотите, чтобы Вам написали здесь готовый рабочий код - Вы ошиблись: это на фриланс.