mrgloom 242 Report post Posted 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 Share this post Link to post Share on other sites
BeS 53 Report post Posted March 9, 2016 Сам пока не крутил её, но буквально недавно была статья на хабре: https://habrahabr.ru/company/recognitor/blog/277781/#first_unread Share this post Link to post Share on other sites
mrgloom 242 Report post Posted March 10, 2016 первая ссылка на этот пост была) но там без деталей и походу использовались видеокарты с большой памятью. Share this post Link to post Share on other sites
BeS 53 Report post Posted March 10, 2016 3 minutes ago, mrgloom said: первая ссылка на этот пост была) но там без деталей и походу использовались видеокарты с большой памятью. Там говорят, что запускались на Jetson TK1, а это embedded платформа с 1 гигом памяти на всё. Хотя хз сколько они там использовали сверточных слоев. Если там есть простой юзерагайд по сборке/запуску, то могу запустить на чем-нибудь производительном и померять потребление памяти. Share this post Link to post Share on other sites
mrgloom 242 Report post Posted March 10, 2016 тут готовый тутор, надо только пути поменять. http://mi.eng.cam.ac.uk/projects/segnet/tutorial.html Share this post Link to post Share on other sites
Smorodov 579 Report post Posted March 10, 2016 А насколько быстро все это работает ? Share this post Link to post Share on other sites
BeS 53 Report post Posted March 10, 2016 3 hours ago, Smorodov said: А насколько быстро все это работает ? Руководствуясь все той-же статьей с хабра, там утверждается, что на TK1 оно работает ~1 секунду на кадр. На хорошей десктопной GPU но в разы быстрее будет...думаю, что ~100ms на кадр. 1 Share this post Link to post Share on other sites
BeS 53 Report post Posted March 10, 2016 8 hours ago, mrgloom said: тут готовый тутор, надо только пути поменять. http://mi.eng.cam.ac.uk/projects/segnet/tutorial.html Что-то там не понятно какой датасет качать. Зашел на их FTP, а там картинок гигабайт 6...О_О Share this post Link to post Share on other sites
mrgloom 242 Report post Posted March 11, 2016 https://github.com/alexgkendall/SegNet-Tutorial датасет тут лежит, скачивается со всем остальным. git clone https://github.com/alexgkendall/SegNet-Tutorial.git 1 Share this post Link to post Share on other sites
mrgloom 242 Report post Posted 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 который идёт с тутором. Share this post Link to post Share on other sites
mrgloom 242 Report post Posted 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. непонятно как посчитать точно сколько памяти надо. Share this post Link to post Share on other sites
BeS 53 Report post Posted March 11, 2016 9 hours ago, mrgloom said: https://github.com/alexgkendall/SegNet-Tutorial датасет тут лежит, скачивается со всем остальным. Сейчас попробую скачать...класть датасеты в разархивированном виде в репозиторий - это конечно гениальное решение :-( 1 hour ago, mrgloom said: непонятно как посчитать точно сколько памяти надо. А что у вас за задача такая, что критично максимальное потребление памяти? Share this post Link to post Share on other sites
BeS 53 Report post Posted March 11, 2016 Тэкс, из первых наблюдений: тренировка сетки из файла segnet_solver.prototxt с размером мини-батча равным одному, отжирает ~5Gb видеопамяти, т.ч. с батчем >1 на моей карточке оно не запускается. При запуске скрипта compute_bn_statistic.py с натренированной сеткой зажирает ~4Gb памяти. Но это судя по всему я гонял максимально возможную сетку, там наверняка можно менять число сверточных/разверточных слоев. Share this post Link to post Share on other sites
mrgloom 242 Report post Posted 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 Share this post Link to post Share on other sites
BeS 53 Report post Posted March 13, 2016 4 minutes ago, mrgloom said: Попробовал менять batch size batch size 4 ~6400 Mb А вот это странно, по идее по батчу требования к памяти должны расти линейно... Share this post Link to post Share on other sites
mrgloom 242 Report post Posted 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) Share this post Link to post Share on other sites
BeS 53 Report post Posted 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 терабайта зарезервировал :-) Share this post Link to post Share on other sites
mrgloom 242 Report post Posted 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 запустить обучение? можно не целиком, а только несколько итераций чтобы проверить что оно в целом работает, а то у меня не работает. Share this post Link to post Share on other sites
maxfashko 5 Report post Posted 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) Есть у кого мысли в чем может быть причина? Share this post Link to post Share on other sites
mrgloom 242 Report post Posted April 14, 2016 Check failed: error == cudaSuccess (8 vs. 23) Может быть нехватка gpu памяти, поставьте там cpu mode. Share this post Link to post Share on other sites
maxfashko 5 Report post Posted May 12, 2016 Снова здравствуйте. Насколько сложно изменить структуру той же segnet для того чтобы у меня изображение на выходе (а может и на входе при обучении) было не 360*480 пикселей, а к примеру 1000*1500. Так как с изображением 360*480 невозможно работать, хочу увеличить размерность выходного изображения. Простой ресайз ясное дело никакой пользы не принесет. Как при этом мне необходимо действовать? И нужно ли менять структуру сетки? Share this post Link to post Share on other sites
Smorodov 579 Report post Posted May 12, 2016 Разбить на плитки, скорее всего это ухудшит точность, но чтобы просто увеличить размер входного изображения нужно: 1) много видеопамяти 2) переучить сеть с нуля. (здесь могу ошибаться, я файнтюнинг мало использовал) Share this post Link to post Share on other sites
mrgloom 242 Report post Posted 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 Share this post Link to post Share on other sites
BeS 53 Report post Posted May 12, 2016 35 minutes ago, Smorodov said: Разбить на плитки, скорее всего это ухудшит точность, но чтобы просто увеличить размер входного изображения нужно: 1) много видеопамяти 2) переучить сеть с нуля. (здесь могу ошибаться, я файнтюнинг мало использовал) Как вариант, можно еще попробовать туже фишку, что исопльзуется в FCN...там вроде бы в одном из кейсов учат upsample слой на выходе, который картинку скейлит до нужного размера...но в простейшем случае они просто биллинейную интерполяцию делают. Share this post Link to post Share on other sites
maxfashko 5 Report post Posted May 12, 2016 mrgloom, да, из-за появления зубчатости. То есть как я понимаю, если я не имею под рукой штук 5 tesla k40 я не продвинусь ни на шаг в своей проблеме? Share this post Link to post Share on other sites