Jump to content
Compvision.ru

Recommended Posts

Вот.

Надо использовать 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

В 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
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

По opencv dnn написано ' поддержка основных слоев нейронных сетей ', т.е. как и все прочие 'конвертеры' тут как я предполагаю есть много но.

Share this post


Link to post
Share on other sites

"Список поддерживаемых слоев

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

Тоже интересует эта тема, но для C#, смотрю пока в строну cntk от microsort. Там вроде бы есть  импорт из keras но толком не пробовал еще.

Share this post


Link to post
Share on other sites

Напиши на github в issues. Разработчики откликаются, исправляют/добавляют.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×