SlideShare a Scribd company logo
1 of 28
Download to read offline
Summer. Sea. JavaScript.
Galushko
Pavlo
Tensorflow.JS
in real life
© Pavlo Galushko
Как мне сделать машинное
обучение на js?
© Pavlo Galushko
Учите Python
© Pavlo Galushko
А как же? Как же?
© Pavlo Galushko
Поехали
© Pavlo Galushko
Кто я:
- Программист всегда
- Много лет в вебе. До этого много лет другого
хардкора
- Писал на JS для сервера ещё до того как это
стало мейнстрим
- Tech lead of ML dev team @ Namecheap
© Pavlo Galushko
Так все таки можно?
© Pavlo Galushko
А как это сделать?
- Пишем математику сами
- Tensorflow.JS
© Pavlo Galushko
Что такое tensorflow.js
Библиотека с открытым исходным кодом,
которую можно использовать для
определения, обучения и запуска моделей
машинного обучения полностью в браузере,
используя Javascript и высокоуровневое API.
© Pavlo Galushko
Disclaimer
Если вы Javascript-разработчик, который
новичок в машинном обучении:
TensorFlow.js  —  плохой способ начать
обучение.
Учите математику
Учите Python
© Pavlo Galushko
Зачем это надо?
- Эти люди хотят странного
- У нас все на js
- Хочу ml в браузере
- Мобильные приложения
© Pavlo Galushko
Кейсы: эти люди хотят
странного.
© Pavlo Galushko
Я просто хочу попробовать ml
Зачем:
Не хочу учить ещё один язык и всю эту вашу
математику
Итог: fail
Подводные камни:
Там очень простые примеры или
специфичные кейсы для которых надо уже
неплохо знать ML.
© Pavlo Galushko
Кейсы: все на js
© Pavlo Galushko
Кейсы: сервис на node.js
Зачем:
У нас уже есть экспертиза в ML и все
приложение на node.js
Итог: Успешный проект
Подводные камни:
• Нужна очень высокая экспертиза
• И все равно, здравствуйте
© Pavlo Galushko
Хочу ML в браузере
© Pavlo Galushko
Кейсы: автокомплит
Зачем:
Хочу очень быстро подсказать слова.
Итог: in-progress
Подводные камни:
• Модель слишком большая
• Модель не такая хорошая как хотелось бы
• Здравствуйте WebAssembly
© Pavlo Galushko
Кейсы: игры
Зачем:
Умный бот в браузере
Итог: разработан, не взлетел.
Подводные камни:
• Модель слишком большая
• Модель не такая хорошая как хотелось бы
• Здравствуйте WebAssembly
© Pavlo Galushko
Кейсы: игры
Зачем:
Генерация левела
Итог: fail
Подводные камни:
• Модель слишком большая
© Pavlo Galushko
Мобильные приложения
© Pavlo Galushko
Кейс: приложение для мобильных
Зачем:
Предсказание покупок
Итог: Условно успешен.
Подводные камни:
• Модель слишком большая
• Слишком сложно.
• Все равно в основном на бекенде. Но
если нет интернета - работает локальная
модель.
© Pavlo Galushko
А почему все вот так не
сладко?
© Pavlo Galushko
•Машинное обучение != Tensorflow
•Модели очень большие
•Подготовка данных для сервиса отличается от
подготовки данных для обучения модели
© Pavlo Galushko
Я таки хочу, что мне делать?
• Учите математику.
• Учите Python
• Учите машинное обучение
• Здравствуйте, assembler
© Pavlo Galushko
Как это происходит в успешных
проектах
• Четко понимаем цель происходящего.
• Строим модель
• Адаптируем модель для tensorflow.js
• Пишем сервис
• Радуемся
© Pavlo Galushko
Что мы можем делать в
tensorflow.js
• Импортировать существующую
предварительно подготовленную модель.
• Повторно обучить импортированную
модель.
• Создать модель прямо в браузере
© Pavlo Galushko
Что посмотреть
• Руководство по TensorFlow.js
https://www.tensorflow.org/js/guide
• Предварительно обученные модели
https://www.tensorflow.org/js/models
• Примеры
https://github.com/tensorflow/tfjs-
examples
© Pavlo Galushko
До новых встреч 😎
• https://www.linkedin.com/in/galushkopavlo/
• https://www.facebook.com/paul.galushko

More Related Content

What's hot

Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...
Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...
Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...Yandex
 
Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?Alexei Barantsev
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...oelifantiev
 
Открыть интернет магазин завтра
Открыть интернет магазин завтраОткрыть интернет магазин завтра
Открыть интернет магазин завтраalexandrefrolov
 
Mihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine LearningMihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine LearningMaria Kuneva
 

What's hot (7)

Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...
Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...
Дмитрий Барановский — Topcoat — открытый проект от Adobe для быстрой и удобно...
 
Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?
 
Видеоурок.
Видеоурок.Видеоурок.
Видеоурок.
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...
 
Открыть интернет магазин завтра
Открыть интернет магазин завтраОткрыть интернет магазин завтра
Открыть интернет магазин завтра
 
На пути к сайту
На пути к сайтуНа пути к сайту
На пути к сайту
 
Mihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine LearningMihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine Learning
 

Similar to 'Tensorflow.js in real life' by Pavlo Galushko at OdessaJS'2020

Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...Denis Safonov
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Serguei Gitinsky
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Alex Chistyakov
 
Python и Django – платформа для фрилансера
Python и Django – платформа для фрилансераPython и Django – платформа для фрилансера
Python и Django – платформа для фрилансераAlexander Koshelev
 
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...Ontico
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakAmasty
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...lshevtsov
 

Similar to 'Tensorflow.js in real life' by Pavlo Galushko at OdessaJS'2020 (9)

Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Joker2014
Joker2014Joker2014
Joker2014
 
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...
WebGL. Что за технология, почему стоит изучать и как начать ей пользоваться, ...
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)
 
Python и Django – платформа для фрилансера
Python и Django – платформа для фрилансераPython и Django – платформа для фрилансера
Python и Django – платформа для фрилансера
 
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy Samilyak
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
 

More from OdessaJS Conf

'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021
'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021
'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021OdessaJS Conf
 
'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021
'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021
'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021OdessaJS Conf
 
"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021
"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021
"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021OdessaJS Conf
 
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...OdessaJS Conf
 
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021OdessaJS Conf
 
Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...
Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...
Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...OdessaJS Conf
 
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...OdessaJS Conf
 
Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021
Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021
Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021OdessaJS Conf
 
"NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні...
"NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні..."NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні...
"NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні...OdessaJS Conf
 
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia NecheporenkoOdessaJS Conf
 
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro GusevOdessaJS Conf
 
'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav Dvorovenko
'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav Dvorovenko'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav Dvorovenko
'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav DvorovenkoOdessaJS Conf
 
'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...
'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...
'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...OdessaJS Conf
 
'MICROFRONTENDS WITH REACT' by Liliia Karpenko
 'MICROFRONTENDS WITH REACT' by Liliia Karpenko 'MICROFRONTENDS WITH REACT' by Liliia Karpenko
'MICROFRONTENDS WITH REACT' by Liliia KarpenkoOdessaJS Conf
 
'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020
'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020
'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020OdessaJS Conf
 
'STORY OF ANOTHER ANIMATION' by YURII ARTYUKH at OdessaJS'2020
'STORY OF ANOTHER ANIMATION' by  YURII ARTYUKH at OdessaJS'2020'STORY OF ANOTHER ANIMATION' by  YURII ARTYUKH at OdessaJS'2020
'STORY OF ANOTHER ANIMATION' by YURII ARTYUKH at OdessaJS'2020OdessaJS Conf
 
'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020
'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020
'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020OdessaJS Conf
 
'Why svelte' by BORYS MOHYLA at OdessaJS'2020
'Why svelte' by BORYS MOHYLA at OdessaJS'2020'Why svelte' by BORYS MOHYLA at OdessaJS'2020
'Why svelte' by BORYS MOHYLA at OdessaJS'2020OdessaJS Conf
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020OdessaJS Conf
 
'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020
'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020
'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020OdessaJS Conf
 

More from OdessaJS Conf (20)

'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021
'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021
'GraphQL Schema Design' by Borys Mohyla. OdessaJS'2021
 
'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021
'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021
'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021
 
"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021
"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021
"Is there life in react without redux" by Babich Sergiy. OdessaJS'2021
 
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...
 
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021
 
Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...
Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...
Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...
 
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...
 
Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021
Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021
Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021
 
"NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні...
"NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні..."NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні...
"NODEJS & GRAPHQL COOKBOOK. LET’S TALK ABOUT MICRO-SERVICES" by Антон Чередні...
 
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
'BUILDING ANGULAR APPS WITH NX' by Anastasia Necheporenko
 
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro Gusev
 
'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav Dvorovenko
'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav Dvorovenko'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav Dvorovenko
'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav Dvorovenko
 
'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...
'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...
'GOLANG USAGE IN DEVELOPMENT OF NODE.JS APPLICATIONS (NODE.JS: IN GO WE TRUST...
 
'MICROFRONTENDS WITH REACT' by Liliia Karpenko
 'MICROFRONTENDS WITH REACT' by Liliia Karpenko 'MICROFRONTENDS WITH REACT' by Liliia Karpenko
'MICROFRONTENDS WITH REACT' by Liliia Karpenko
 
'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020
'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020
'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020
 
'STORY OF ANOTHER ANIMATION' by YURII ARTYUKH at OdessaJS'2020
'STORY OF ANOTHER ANIMATION' by  YURII ARTYUKH at OdessaJS'2020'STORY OF ANOTHER ANIMATION' by  YURII ARTYUKH at OdessaJS'2020
'STORY OF ANOTHER ANIMATION' by YURII ARTYUKH at OdessaJS'2020
 
'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020
'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020
'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020
 
'Why svelte' by BORYS MOHYLA at OdessaJS'2020
'Why svelte' by BORYS MOHYLA at OdessaJS'2020'Why svelte' by BORYS MOHYLA at OdessaJS'2020
'Why svelte' by BORYS MOHYLA at OdessaJS'2020
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
 
'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020
'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020
'React+d3=LOVE' by Illia Olenchenko at OdessaJS'2020
 

'Tensorflow.js in real life' by Pavlo Galushko at OdessaJS'2020

  • 2. © Pavlo Galushko Как мне сделать машинное обучение на js?
  • 4. © Pavlo Galushko А как же? Как же?
  • 6. © Pavlo Galushko Кто я: - Программист всегда - Много лет в вебе. До этого много лет другого хардкора - Писал на JS для сервера ещё до того как это стало мейнстрим - Tech lead of ML dev team @ Namecheap
  • 7. © Pavlo Galushko Так все таки можно?
  • 8. © Pavlo Galushko А как это сделать? - Пишем математику сами - Tensorflow.JS
  • 9. © Pavlo Galushko Что такое tensorflow.js Библиотека с открытым исходным кодом, которую можно использовать для определения, обучения и запуска моделей машинного обучения полностью в браузере, используя Javascript и высокоуровневое API.
  • 10. © Pavlo Galushko Disclaimer Если вы Javascript-разработчик, который новичок в машинном обучении: TensorFlow.js  —  плохой способ начать обучение. Учите математику Учите Python
  • 11. © Pavlo Galushko Зачем это надо? - Эти люди хотят странного - У нас все на js - Хочу ml в браузере - Мобильные приложения
  • 12. © Pavlo Galushko Кейсы: эти люди хотят странного.
  • 13. © Pavlo Galushko Я просто хочу попробовать ml Зачем: Не хочу учить ещё один язык и всю эту вашу математику Итог: fail Подводные камни: Там очень простые примеры или специфичные кейсы для которых надо уже неплохо знать ML.
  • 15. © Pavlo Galushko Кейсы: сервис на node.js Зачем: У нас уже есть экспертиза в ML и все приложение на node.js Итог: Успешный проект Подводные камни: • Нужна очень высокая экспертиза • И все равно, здравствуйте
  • 16. © Pavlo Galushko Хочу ML в браузере
  • 17. © Pavlo Galushko Кейсы: автокомплит Зачем: Хочу очень быстро подсказать слова. Итог: in-progress Подводные камни: • Модель слишком большая • Модель не такая хорошая как хотелось бы • Здравствуйте WebAssembly
  • 18. © Pavlo Galushko Кейсы: игры Зачем: Умный бот в браузере Итог: разработан, не взлетел. Подводные камни: • Модель слишком большая • Модель не такая хорошая как хотелось бы • Здравствуйте WebAssembly
  • 19. © Pavlo Galushko Кейсы: игры Зачем: Генерация левела Итог: fail Подводные камни: • Модель слишком большая
  • 20. © Pavlo Galushko Мобильные приложения
  • 21. © Pavlo Galushko Кейс: приложение для мобильных Зачем: Предсказание покупок Итог: Условно успешен. Подводные камни: • Модель слишком большая • Слишком сложно. • Все равно в основном на бекенде. Но если нет интернета - работает локальная модель.
  • 22. © Pavlo Galushko А почему все вот так не сладко?
  • 23. © Pavlo Galushko •Машинное обучение != Tensorflow •Модели очень большие •Подготовка данных для сервиса отличается от подготовки данных для обучения модели
  • 24. © Pavlo Galushko Я таки хочу, что мне делать? • Учите математику. • Учите Python • Учите машинное обучение • Здравствуйте, assembler
  • 25. © Pavlo Galushko Как это происходит в успешных проектах • Четко понимаем цель происходящего. • Строим модель • Адаптируем модель для tensorflow.js • Пишем сервис • Радуемся
  • 26. © Pavlo Galushko Что мы можем делать в tensorflow.js • Импортировать существующую предварительно подготовленную модель. • Повторно обучить импортированную модель. • Создать модель прямо в браузере
  • 27. © Pavlo Galushko Что посмотреть • Руководство по TensorFlow.js https://www.tensorflow.org/js/guide • Предварительно обученные модели https://www.tensorflow.org/js/models • Примеры https://github.com/tensorflow/tfjs- examples
  • 28. © Pavlo Galushko До новых встреч 😎 • https://www.linkedin.com/in/galushkopavlo/ • https://www.facebook.com/paul.galushko