mrgloom 242 Жалоба Опубликовано March 9, 2016 Кто нибудь пробовал SegNet? https://habrahabr.ru/company/recognitor/blog/277781/ http://mi.eng.cam.ac.uk/projects/segnet/ http://mi.eng.cam.ac.uk/projects/segnet/tutorial.html https://github.com/alexgkendall/caffe-segnet https://github.com/alexgkendall/SegNet-Tutorial У меня не запускается даже пример: https://github.com/alexgkendall/caffe-segnet/issues/21 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 9, 2016 Сам пока не крутил её, но буквально недавно была статья на хабре: https://habrahabr.ru/company/recognitor/blog/277781/#first_unread Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 10, 2016 первая ссылка на этот пост была) но там без деталей и походу использовались видеокарты с большой памятью. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 10, 2016 3 minutes ago, mrgloom said: первая ссылка на этот пост была) но там без деталей и походу использовались видеокарты с большой памятью. Там говорят, что запускались на Jetson TK1, а это embedded платформа с 1 гигом памяти на всё. Хотя хз сколько они там использовали сверточных слоев. Если там есть простой юзерагайд по сборке/запуску, то могу запустить на чем-нибудь производительном и померять потребление памяти. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 10, 2016 тут готовый тутор, надо только пути поменять. http://mi.eng.cam.ac.uk/projects/segnet/tutorial.html Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 10, 2016 А насколько быстро все это работает ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 10, 2016 3 hours ago, Smorodov said: А насколько быстро все это работает ? Руководствуясь все той-же статьей с хабра, там утверждается, что на TK1 оно работает ~1 секунду на кадр. На хорошей десктопной GPU но в разы быстрее будет...думаю, что ~100ms на кадр. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 10, 2016 8 hours ago, mrgloom said: тут готовый тутор, надо только пути поменять. http://mi.eng.cam.ac.uk/projects/segnet/tutorial.html Что-то там не понятно какой датасет качать. Зашел на их FTP, а там картинок гигабайт 6...О_О Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 11, 2016 https://github.com/alexgkendall/SegNet-Tutorial датасет тут лежит, скачивается со всем остальным. git clone https://github.com/alexgkendall/SegNet-Tutorial.git 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 11, 2016 Тут еще лежат обученные модели http://mi.eng.cam.ac.uk/projects/segnet/models/ https://github.com/alexgkendall/SegNet-Tutorial/blob/master/Example_Models/segnet_model_zoo.md segnet_basic_weights_camvid_inference.caffemodel как раз видимо для CamVid dataset который идёт с тутором. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 11, 2016 В постере они пишут про время и память. Еще тут пишут, что Цитата I believe the data required (410MB) is just for the weights/data. Caffe requires additional memory for the solver and gradient parameters. непонятно как посчитать точно сколько памяти надо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 11, 2016 9 hours ago, mrgloom said: https://github.com/alexgkendall/SegNet-Tutorial датасет тут лежит, скачивается со всем остальным. Сейчас попробую скачать...класть датасеты в разархивированном виде в репозиторий - это конечно гениальное решение :-( 1 hour ago, mrgloom said: непонятно как посчитать точно сколько памяти надо. А что у вас за задача такая, что критично максимальное потребление памяти? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 11, 2016 Тэкс, из первых наблюдений: тренировка сетки из файла segnet_solver.prototxt с размером мини-батча равным одному, отжирает ~5Gb видеопамяти, т.ч. с батчем >1 на моей карточке оно не запускается. При запуске скрипта compute_bn_statistic.py с натренированной сеткой зажирает ~4Gb памяти. Но это судя по всему я гонял максимально возможную сетку, там наверняка можно менять число сверточных/разверточных слоев. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 13, 2016 Попробовал уже обученную модель segnet_basic_camvid.caffemodel , она работает, но запустить получилось только на CPU, из-за большого объема требуемой памяти. Цитата export PATH=$PATH:/home/myuser/Downloads/SegNet/caffe-segnet/build/tools export PYTHONPATH=/home/myuser/Downloads/SegNet/caffe-segnet/python:$PYTHONPATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 python /home/myuser/Downloads/SegNet/SegNet-Tutorial/Scripts/compute_bn_statistics.py /home/myuser/Downloads/SegNet/SegNet-Tutorial/Models/segnet_basic_train.prototxt /home/myuser/Downloads/SegNet/SegNet-Tutorial/Models/Training/segnet_basic_camvid.caffemodel /home/myuser/Downloads/SegNet/Models/Inference/ segnet_basic_train.prototxt batch size 1 Memory required for data: 410930228 ~5000 Mb На что тратится остальная память? как я понимаю 410930228 это ж ~400 Mb? Попробовал менять batch size batch size 4 ~6400 Mb Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 13, 2016 4 minutes ago, mrgloom said: Попробовал менять batch size batch size 4 ~6400 Mb А вот это странно, по идее по батчу требования к памяти должны расти линейно... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 13, 2016 То что выдаёт само caffe да, а то что показывает htop в колонке RES нет(хотя не знаю насчёт того насколько адекватно так мерить). Еще такое ощущение, что после каждой итерации занимается какое доп. место, но это может быть что то в питоновском скрипте висит в памяти ещё. batch_size: 1 Memory required for data: 410930228 htop RES column ~4230Mb batch_size: 2 Memory required for data: 821856308 htop RES column ~4683Mb batch_size: 4 Memory required for data: 1643708468 htop RES column ~5598Mb batch_size: 8 Memory required for data: 3287412788 htop RES column ~6597Mb (after 1st iteration 7261Mb) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано March 14, 2016 23 hours ago, mrgloom said: То что выдаёт само caffe да, а то что показывает htop в колонке RES нет(хотя не знаю насчёт того насколько адекватно так мерить). Еще такое ощущение, что после каждой итерации занимается какое доп. место, но это может быть что то в питоновском скрипте висит в памяти ещё. batch_size: 1 Memory required for data: 410930228 htop RES column ~4230Mb batch_size: 2 Memory required for data: 821856308 htop RES column ~4683Mb batch_size: 4 Memory required for data: 1643708468 htop RES column ~5598Mb batch_size: 8 Memory required for data: 3287412788 htop RES column ~6597Mb (after 1st iteration 7261Mb) Забавно, при тренировке, кстати htop оптимистично показывает, что виртуально он 2 терабайта зарезервировал :-) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 15, 2016 https://github.com/alexgkendall/SegNet-Tutorial/blob/master/Example_Models/segnet_model_zoo.md вообще не очень понятно при размере базовых моделей в ~5Mb на что тратится основная память? Вот еще кстати наткнулся про память https://github.com/fmassa/optimize-net Можете попробовать на CPU запустить обучение? можно не целиком, а только несколько итераций чтобы проверить что оно в целом работает, а то у меня не работает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
maxfashko 5 Жалоба Опубликовано April 14, 2016 В 14.03.2016 at 15:29, mrgloom сказал: https://github.com/alexgkendall/SegNet-Tutorial/blob/master/Example_Models/segnet_model_zoo.md вообще не очень понятно при размере базовых моделей в ~5Mb на что тратится основная память? Вот еще кстати наткнулся про память https://github.com/fmassa/optimize-net Можете попробовать на CPU запустить обучение? можно не целиком, а только несколько итераций чтобы проверить что оно в целом работает, а то у меня не работает. На CPU получилось запустить на обучение segnet_basic_train. На macbook i7 / vmware Ubuntu на 20 итераций тратится около 10 минут. На osx собрать segnet caffe не получилось (вылезла куча ошибок). Так же на Ubuntu не получается запустить пример python /home/myuser/Downloads/SegNet/SegNet-Tutorial/Scripts/compute_bn_statistics.py /home/myuser/Downloads/SegNet/SegNet-Tutorial/Models/segnet_basic_train.prototxt /home/myuser/Downloads/SegNet/SegNet-Tutorial/Models/Training/segnet_basic_camvid.caffemodel /home/myuser/Downloads/SegNet/Models/Inference/ Выводит ошибку F0225 23:41:36.745960 11302 syncedmem.cpp:51] Check failed: error == cudaSuccess (8 vs. 23) Есть у кого мысли в чем может быть причина? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано April 14, 2016 Check failed: error == cudaSuccess (8 vs. 23) Может быть нехватка gpu памяти, поставьте там cpu mode. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
maxfashko 5 Жалоба Опубликовано May 12, 2016 Снова здравствуйте. Насколько сложно изменить структуру той же segnet для того чтобы у меня изображение на выходе (а может и на входе при обучении) было не 360*480 пикселей, а к примеру 1000*1500. Так как с изображением 360*480 невозможно работать, хочу увеличить размерность выходного изображения. Простой ресайз ясное дело никакой пользы не принесет. Как при этом мне необходимо действовать? И нужно ли менять структуру сетки? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 12, 2016 Разбить на плитки, скорее всего это ухудшит точность, но чтобы просто увеличить размер входного изображения нужно: 1) много видеопамяти 2) переучить сеть с нуля. (здесь могу ошибаться, я файнтюнинг мало использовал) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано May 12, 2016 Почему не хотите просто сделать ресайз? из-за появления зубчатой границы? С такими большими изображениями скорее всего никакой памяти не хватит на GPU то точно. https://github.com/alexgkendall/caffe-segnet/issues/35 Цитата As some advice, to reduce memory you can play with things like: input resolution, batch size, network width and depth. Неплохо было бы вывести формулу по которой рассчитывается кол-во памяти нужное для тренировки сети в зависимости от размера изображения, но я пока до конца не понимаю как в caffe юзается память. По поводу изменения размера изображения, просто так не получится надо будет менять upsample_h, upsample_w в .prototxt модели. Пример где я переделал под размер 240 x 180 вроде. https://gist.github.com/mrgloom/f0972272938adfc44163 Пример для 1 слоя https://github.com/mrgloom/Caffe-snippets/blob/master/segnet_simple_train.prototxt Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано May 12, 2016 35 minutes ago, Smorodov said: Разбить на плитки, скорее всего это ухудшит точность, но чтобы просто увеличить размер входного изображения нужно: 1) много видеопамяти 2) переучить сеть с нуля. (здесь могу ошибаться, я файнтюнинг мало использовал) Как вариант, можно еще попробовать туже фишку, что исопльзуется в FCN...там вроде бы в одном из кейсов учат upsample слой на выходе, который картинку скейлит до нужного размера...но в простейшем случае они просто биллинейную интерполяцию делают. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
maxfashko 5 Жалоба Опубликовано May 12, 2016 mrgloom, да, из-за появления зубчатости. То есть как я понимаю, если я не имею под рукой штук 5 tesla k40 я не продвинусь ни на шаг в своей проблеме? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах