Comments 23
Я с сентября контрибьютурствую туда потихоньку. Сейчас работаем над поддержкой GPU. Если у кого есть вопросы или предложения, можете задавать.
Сделайте поддержку AMD GPU и к вам потянуться те кто на нем.
TensofFlow — только NVIDIA/
TensofFlow — только NVIDIA/
О, какой удачный случай. Что-набудь скажете про пример с XOR, выглядит сносно? Имеет смысл в примеры библиотеки заливать?
Небольшое уточнение по вступрительному параграфу:
Пока TensorFlow активно завоевывает мир, воюет за аудиторию с такими крупными игроками рынка машинного обучения и глубоких нейронных сетей как Keras, Theano и CaffeTensorFlow не «воюет» с Keras, а является одним из его backend'ов (наряду с Theano). Другими словами, Keras работает на TensofFlow.
Это как посмотреть. Не уверен, что авторы TensorFlow будут рады тому, что на слуху будет Keras, а не TF, даже если первый работает поверх второго. Все же за популярность и применение в качестве стандарта де-факто по-моему борьба есть.
А, нет, будут :)
Google chooses Keras
Google chooses Keras
А какие у этой библиотеки способы использования?
Я вот ищу что нибудь чтобы для фиксированной базы из тысяч цветных иллюстраций очень быстро определять соответвие по изображению с камеры (или узнать что совпадений нет).
Для этих целей подойдет?
Я вот ищу что нибудь чтобы для фиксированной базы из тысяч цветных иллюстраций очень быстро определять соответвие по изображению с камеры (или узнать что совпадений нет).
Для этих целей подойдет?
Краткий ответ: да, при правильном использовании.
Длинный ответ: эта библиотека лишь одна из многих. Для проверки Вашей гипотезы я бы лично порекомендовал воспользоваться более простыми фреймворками (притом не обязательно сразу используя глубинное обучение, зависит от данных), например sklearn. Если взлетит и Вы сами найдете для себя решение, то уже тогда только стоит начинать думать о том, как же внедрить решение в условиях ваших ограничений по ресурсам, железу, фреймворку, языку. Но для проведения такой проверки Вам понадобится «понять» данные, продумать их представление и т.д., вполне себе стандартная работа специалиста по ML. Вызвать одну функцию и получить профит как например с QR-кодами вряд ли получится.
Длинный ответ: эта библиотека лишь одна из многих. Для проверки Вашей гипотезы я бы лично порекомендовал воспользоваться более простыми фреймворками (притом не обязательно сразу используя глубинное обучение, зависит от данных), например sklearn. Если взлетит и Вы сами найдете для себя решение, то уже тогда только стоит начинать думать о том, как же внедрить решение в условиях ваших ограничений по ресурсам, железу, фреймворку, языку. Но для проведения такой проверки Вам понадобится «понять» данные, продумать их представление и т.д., вполне себе стандартная работа специалиста по ML. Вызвать одну функцию и получить профит как например с QR-кодами вряд ли получится.
Начал использовать tiny_dnn, когда он еще назывался tiny_ cnn. Повелся на простоту интеграции в проект. На редкость тормознутое творение. Стал разбираться в причинах — авторы так увлеклись распараллеливанием алгоритмов и асинхронным их исполнением, что дошли до маразма. Апофеозом было копирование 10 чисел, путем распараллеливания на 8 потоков! Естественно, что из-за потерь на синхронизацию производительность была ниже плинтуса. Убрал лишнее распараллеливание, добавил где надо SIMD оптимизации — вроде стало работать более менее быстро. Только по итогу от исходного проекта практически ничего не осталось. В итоге в конце концов свой велосипед написал. В последней версии они переписали очень многое — стало гораздо лучше в плане производительности, но все равно свой велосипед в разы опережает.
А почему бы не открыть PR или хотя бы issue по тормозящим моментам?
Тут есть ряд моментов. Сам мой велосипед Само мое решение находится в открытом доступе:
https://github.com/ermig1979/Simd/blob/master/src/Simd/SimdNeural.hpp
Стоит отметить, что решение менее универсально, чем оригинальный tiny_cnn и тем более tiny_dnn. Кроме того оно завязано на библиотеку Simd. А это противоречит основной концепции tiny_dnn — все в заголовочных файлах и желательно без сторонних зависимостей. Потому просто сделать pull request будет довольно затруднительно.
Хотя я наверное был бы рад помочь.
https://github.com/ermig1979/Simd/blob/master/src/Simd/SimdNeural.hpp
Стоит отметить, что решение менее универсально, чем оригинальный tiny_cnn и тем более tiny_dnn. Кроме того оно завязано на библиотеку Simd. А это противоречит основной концепции tiny_dnn — все в заголовочных файлах и желательно без сторонних зависимостей. Потому просто сделать pull request будет довольно затруднительно.
Хотя я наверное был бы рад помочь.
Интересно! Спасибо за статью. С такой простотой использования, ещё и на С++, мне захотелось всё-таки разобраться, как этими сетями польоваться на практике :)
Caffe еще проще, и деплоить можно в C++ код.
Правда за счет im2col, без напильника в embedded особо не влезешь.
Embedded мне не интересно, только десктоп. Библиотека, которая просто подключается и работает без возни со сборкой и т. д. — это огромный плюс.
Увы, не для текста. Рекуррентных сетей вообще нет (и похоже не предвидится).
На текст специализируются похоже только https://github.com/clab/dynet да https://github.com/pfnet/chainer
На текст специализируются похоже только https://github.com/clab/dynet да https://github.com/pfnet/chainer
Sign up to leave a comment.
tiny-dnn — анонс библиотеки