Комментарии 11
«Гидхаб», лол.
Автор статьи проконсультировался со своим адвокатом?))))
Все тоже самое кроме функции активации, теперь она не softmax а sigmoid, и функция потерь
И оптимизатор) короче вообще все другое, кроме "архитектуры") ой, в архитектуре тоже лишний Dense слой появился)
Чем был обеспечен выбор используемых оптимизаторов наверное нет смысла спрашивать?) Используй базовый SGD, он сильно быстрее и экономнее по памяти, ему нужно меньше параметров для подсчета градиентов.
И какова же точность распознавания? Хотя это не так важно. Лучше бы научил свою сеть определять симпатичных девушек и сразу определять их телефончики (по фото).
Автор научил не мужчин от женщин отличать, а сгенерированных мужчин от сгенерированных женщин. При работе на реальных фото неизвестно как измениться качество, возможно сильно просядет
В конце статьи предлагается новая архитектура нейронной сети и на этом внезапный конец. Какая из двух архитектура показала себя лучше в данной задаче?
Ох, в некоторых странах подобные исследования опасно делать, так как там полов больше 2, а если это отвергать, то есть риск быть отмененным.
В следующий раз лучше используйте датасет с котанами и собакенами. Их ещё и любят больше, чем человеков!
import os as s
Эмм... Я понимаю когда например import operating_system_manager as osm
Или всеми принятое numpy as np
Но os-то зачем сокращать?
и гарантированно получаем 2к картинок
Нет.
Это отличный базовый пример по работе со сверточными сетями, наравне с уже ставшим хрестоматийным примером с цифрами MNIST.
И это была бы отличная статья, если б она имела посыл не "сделай вот так и все заработает", а "можно сделать вот так, и вот почему".
Мануалов такого пошиба - дофига, а вот объяснялок - мало.
Конкретно что стоило бы разъяснить: приведены якобы две архитектуры , но по факту это одно и тоже, отличающиеся только выходом из сети - в одном случае под вектор [male, female] и соответственно функция softmax делает нормализацию чтоб не оказалось что индивидум на изображении одновременно самец и самка(хотя в этом нет противоречий с точки зрения распознавания). В другом случае выход - 0/1 - и для этого достаточно softmax функции. Стоит все это обьяснять. Также пару слов сказать про оптимизаторы.
Также можно не прыгать с /255.0 у сэмплов, и более того даже не ресайзить их заранее - соответствующие слои есть у кераса - это ресайз и рескейл слой. Хотя с ресайзом к одному размеру - понятно что так удобнее составить бач.
Да и по хорошему - чтоб не хранить свалку из изображений в памяти - можно написать sequence или генератор для открытия нужных фоток из папки, конкатенации их в бач.
Есть ощущение что не требуется аж три плотных слоя на выходе из сверточных - но это вполне поле для "домашней работы", поудалять плотные слои и посмотреть как изменится точность сети.
Но, повторюсь, как пример работы сверточных сетей - это весьма годно.
Мужчина OR Женщина (python/keras)