Nuzhny 243 Report post Posted July 24, 2017 Вот. Надо использовать LSTM сеть из С++ кода и почти всегда исполняться будет на CPU. Кроссплатформенно, на Windows в том числе. По результатам исследований: 1. Caffe практически перестал развиваться, не перспективно. Что на нём с LSTM непонятно из-за отсутствия примеров и документации. 2. Caffe 2 сырой, стандартный пример с LSTM не работал, потом глюк исправили, но шаг влево, шаг вправо - опять не работает. На issues на Гитхабе не отвечают, площадки для обсуждения нет. 3. TensorFlow официально не поддерживает С++ API под Windows. Собрать самому можно по инструкциям со SO, но не все доступные опции заработали. 4. Тут хавалят MXNet. Стоит ли пробовать? Вроде как на нём можно и обучать и использовать в продакшене. 5. Неожиданно выяснилось, что OpenCV умеет на CPU и быстро использовать сети, обученные в том же TF и Torch. Это было бы удобно. Кто что использует или посоветует для подобных целей? Что лучше выбрать 4 или 5? Share this post Link to post Share on other sites
Smorodov 578 Report post Posted July 24, 2017 Глянь еще эту штуку: https://github.com/Tencent/ncnn 1 Share this post Link to post Share on other sites
mrgloom 242 Report post Posted July 24, 2017 В Caffe LSTM layer есть, но я не пробовал: http://caffe.berkeleyvision.org/tutorial/layers/lstm.html На caffe я бы не ставил. MXNet я не пробовал, но это выглядит более подходящим вариантом, и как бонус там еще есть поддержка Mobile Devices и Distributed Training. Есть еще такой проект, но видимо LSTM/RNN там в зачаточном состоянии. https://github.com/tiny-dnn/tiny-dnn Вообще меня тоже интересует вопрос как например python код из Keras перевести на C++, по идее можно Keras->Tensorflow->Tensorflow C++ (но возможно C++ api не полный?) ? Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted July 24, 2017 10 minutes ago, mrgloom said: В Caffe LSTM layer есть, но я не пробовал: http://caffe.berkeleyvision.org/tutorial/layers/lstm.html На caffe я бы не ставил. Я и не ставлю, caffe уже умер. Достаточно посмотреть историю коммитов на Гитхабе. MXNet я не пробовал, но это выглядит более подходящим вариантом, и как бонус там еще есть поддержка Mobile Devices и Distributed Training. Есть еще такой проект, но видимо LSTM/RNN там в зачаточном состоянии. https://github.com/tiny-dnn/tiny-dnn Вообще меня тоже интересует вопрос как например python код из Keras перевести на C++, по идее можно Keras->Tensorflow->Tensorflow C++ (но возможно C++ api не полный?) ? Tensorflow C++ API не кроссплатформенный, поэтому не очень интересен изначально. Кроме того, Tensorflow ещё и не самый быстрый фрейворк. Мне кажется, что он будет развиваться достаточно узко, больше в направлении внутренних потребностей Гугла, в том числе и под его собственное железо. Пока мне кажется лучшим выходом именно что MXNet. OpenCV тоже хочется посмотреть, а вдруг? Share this post Link to post Share on other sites
mrgloom 242 Report post Posted July 25, 2017 По opencv dnn написано ' поддержка основных слоев нейронных сетей ', т.е. как и все прочие 'конвертеры' тут как я предполагаю есть много но. Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted July 25, 2017 "Список поддерживаемых слоев AbsVal AveragePooling BatchNormalization Concatenation Convolution (with dilation) Crop DetectionOutput Dropout Eltwise Flatten FullConvolution FullyConnected LRN LSTM MaxPooling MaxUnpooling MVN NormalizeBBox Padding Permute Power PReLU PriorBox ReLU RNN Scale Shift Sigmoid Slice Softmax Split TanH" Чего не хватает? Разные "но", разумеется, будут, потому что оригинальные фреймворки развиваются, а тут пытаются их догнать. Но dnn это всё таки больше, чем конвертер, так что не всё так плохо. Ну и опыт работы с caffe и caffe 2 говорит, что в оригинальных фреймворках багов просто завались и ни на что рассчитывать 100% нельзя. С TensorFlow, кстати, та же беда, не получается из С++ выставить batch size > 1. Что за хрень? В случае OpenCV радует тот факт, что вечеринку спонсирует Интел. Share this post Link to post Share on other sites
iskees 32 Report post Posted July 25, 2017 Тоже интересует эта тема, но для C#, смотрю пока в строну cntk от microsort. Там вроде бы есть импорт из keras но толком не пробовал еще. Share this post Link to post Share on other sites
Андрей_Андрей 0 Report post Posted January 28, 2019 В 25.07.2017 at 11:48, Nuzhny сказал: Чего не хватает? GRU не хватает. я так понимаю тема давно поднималась, но не хватает до сих пор... Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted January 30, 2019 Напиши на github в issues. Разработчики откликаются, исправляют/добавляют. Share this post Link to post Share on other sites