Pull to refresh

Comments 24

А какой был размер обучающей выборки? Каково время обучения? Работает ли сеть для сегментации объектов у которых изменяется скейл\поворот?

вот можете ознакомится еще с подходами
https://github.com/mrgloom/Semantic-Segmentation-Evaluation
А какой был размер обучающей выборки?

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

Каково время обучения?

На одной тэсле за ночь обучается.

Работает ли сеть для сегментации объектов у которых изменяется скейл\поворот?

Более-менее, но зависит, конечно, от того какая была обучающая выборка. Например с номерами автомобилей почти вся выборка была фронтальной. В результате номера под углом детектируются. Не все, конечно, но результат неплох. Лучше, чем каскад Хаара обученный по той же выборке или HOG.

вот можете ознакомится еще с подходами
github.com/mrgloom/Semantic-Segmentation-Evaluation

Да, мы смотрели некоторые из них. В принципе в своей прошлой статье я частично рассказывал — https://habrahabr.ru/post/277069/
По автомобилям было порядка 1000 размеченных, по лёгким было порядка 500 размеченных. По поездам была сильно больше выборка, думаю в районе 3х тысяч.

В обоих случаях выборки милипизерные по меркам Deep Learning… вы использовали фичи на чем-то типа ImageNet предобученные?
Нет, всё чисто по входным изображениям даже без их модификации дополнительных. Мы тоже были несколько в шоке, когда после обучения по 500 картинкам такую разметку лёгких получили:)
Но, в принципе, авторы SegNet утверждают, что вот это они получили по выборке 5000 размеченных, без дополнительных их изменений:

Хм, если я правильно помню, то там первый кусок сети (тот что сворачивает картинку) — это ошметок от VGG16… или вы и его тоже обучали сами?
Ну, либо я слепой, либо всё же сами. Вот сеть которую использовали при обучении на одном из примеров: https://yadi.sk/d/yTQ6WhRkpPDKi. Никаких загрузок посторонних коэффициентов не вижу.
Вот работа авторов — http://arxiv.org/pdf/1511.00561v2.pdf http://arxiv.org/pdf/1511.02680v1.pdf
Да, первые 13 свёрточных уровней взяты из "VGG-16", но про предзагрузку весов нигде ни слова нет. Обучается всё одновременно.
Они милипизерные если из классифицировать 0 или 1, а здесь классификация пикселей, это увеличение данных для обучения в десятки раз.
В легких было 250 в первой версии и 480 во второй.

Никаких дополнительных коэффициентов, предобработки не делалось. Бралось Caffe, сеть и подготавливалась база для обучения.
Всё равно выглядит довольно удивительно. DeepLab обучают вроде как на большем числе сэмплов, да и переиспользуют часть весов от VGG16. Вообщем надо поковырять эту сетку...
Попробовал запустить код из туториала, но похоже эта сеть требует очень много памяти, вы не смотрели сколько памяти занимает в пике?
отдельно не смотрел, когда сеть конфигурируется, каффе вроде суммарный объем пишет и он был около 4 Гб кажется.
https://github.com/alexgkendall/caffe-segnet/issues/21

Попробовал так же на CPU, тоже зафейлилось, но видимо по какой то другой причине, хотя вроде как все 8Gb памяти сожрало.

Попробовал так же уменьшать размер изображения, но тогда надо подбирать параметры upsample_param, автоматом (как сверточные слои) это не работает.
Если оно запустилось на TK1, то сетка жрет не больше 1Гб памяти, т.к. больше там нету
При распознавании 480 Мб, Можно будет посмотреть сколько при обучении сеть выделяет памяти каким нибудь монитором для GPU.
Так можно тупо nvidia-smi запустить из стандартного пакета от nvidia. Оно показвыает какой процесс сколько памяти GPU потребляет, ну и другую полезную информацию о карточках.
Так интересно сколько в пике, а nvidia-smi даст только для текущего момента, если только дергать её через какие то короткие интервалы и логировать и потом парсить.
По моим наблюдениям, caffe во время тренировки грузит карту стабильно и особых всплесков там не бывает.
Не знаю как это реализованно в caffe, но по логике чтобы прогнать через сетку изображение надо загрузить обученные веса + в каждый момент времени в памяти можно держать данные только для curr и prev слоя, т.е. должно получится сильно меньше чем в тренировочной фазе, еще учитывая то что в блобах в тестовой фазе и градиенты не надо хранить.
Могу ошибаться (но можно уточнить в коде), но вроде бы caffe при загрузке сети аллоцирует памяти столько, сколько требуется и в процессе работы с сеткой, пасмять не освобождает
А откуда брались тестовые выборки?
Я в том плане что была ли разделена тестовая выборка от обучающей или тестовые примеры брались из обучающей выборки?
Конечно различная. Иначе некорректно.
При этом по машинам она была принципиально разная — ту по которой обучались мы собирали руками, а то по чему тестировались — это всё что нам народ наприсылал сюда — https://habrahabr.ru/company/recognitor/blog/222539/
Ну по тексту это неясно, а примеров когда используют подмножество обучающей выборки я, к сожалению, видел не мало
Поэтому хорошо когда явно указывается что было обучающей, а что тестовой выборкой
Бывает, но это скорее ради публикаций, ну или так просто от нечего делать.
Интересно что на легких если подсунуть из обучающей выборки, то края даже получаются ломанные, как я вырезал вручную.
Sign up to leave a comment.