Перейти к содержимому
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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Глянь еще эту штуку: https://github.com/Tencent/ncnn

 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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 не полный?) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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 тоже хочется посмотреть, а вдруг?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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 радует тот факт, что вечеринку спонсирует Интел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 25.07.2017 at 11:48, Nuzhny сказал:

Чего не хватает?

GRU не хватает. я так понимаю тема давно поднималась, но не хватает до сих пор...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×