MATLAB - это воплощение удобства и универсальности. Мне пока не доводилось делать готовые программные продукты в матлабе, но мне часто приходилось тестировать различные алгоритмы, и ML в том числе. При этом, когда дело доходило до обучения нейросетей, мне приходилось сталкиваться и с pytorch. В итоге, за годы своей работы я сделал вывод, о том, что матлаб - это топчек, хотя у него есть определённые минусы.
Во-первых, главное достоинство матлаба - это то, что не надо искать никаких библиотек и париться с их установкой. Голый питон сам по себе может не много, и на каждый чих надо искать какую-то библиотеку. Плюс при работе в питоне возникает адская боль, когда нужно собрать окружение и согласовать все версии библиотек так, чтобы всё заработало. В матлабе такого нет. Там в из коробки есть всё, что нужно, и ты просто берёшь и пользуешься. Во-вторых, код получается более лаконичным за счёт возможностей синтаксиса и бесконечного набора встроенных функций. Практически для любого действия есть готовая функция, надо только в хелпе найти. Кстати, хелп тоже топ. Там и подробное описание, и примеров куча, и описание теории, если надо. В-общем чудо, а не фреймворк.
Теперь, справедливости ради, надо и о недостатках поговорить. Одним из них является меньшее количество возможностей в плане того, что можно делать непосредственно с нейросетями. У того же торча возможностей больше. Буквально недавно столкнулся с тем, что мне нужно было обучить сеть классификации сигналов, но исходный вариант работал с сигналами произвольной длительности, а реализуемая сеть начиналась со свёрточных слоёв. Свёрточному слою в общем-то без разницы, какой там размер у входных данных, и в торче первым указывается просто свёрточный слой, и никаких проблем нет. В матлабе же так не прокатит. Там на входе должен быть специальный входной слой, который что-то там нормирует, и параметры поступающих на его вход данных фиксируются. И без него никак. Это делает невозможным реализацию такого рода сетей в матлабе, что очень печально. Так же нет возможности замораживать какие-то слои и не обучать всю сеть целиком.
Подводя итог, могу написать, что для себя я решил, что любую задачу я буду решать в первую очередь в матлабе, потому что это быстро и удобно, а другими языками программирования буду пользоваться только тогда, когда в матлабе не найдётся чего-то, что нужно для решения задачи.
MATLAB - это воплощение удобства и универсальности. Мне пока не доводилось делать готовые программные продукты в матлабе, но мне часто приходилось тестировать различные алгоритмы, и ML в том числе. При этом, когда дело доходило до обучения нейросетей, мне приходилось сталкиваться и с pytorch. В итоге, за годы своей работы я сделал вывод, о том, что матлаб - это топчек, хотя у него есть определённые минусы.
Во-первых, главное достоинство матлаба - это то, что не надо искать никаких библиотек и париться с их установкой. Голый питон сам по себе может не много, и на каждый чих надо искать какую-то библиотеку. Плюс при работе в питоне возникает адская боль, когда нужно собрать окружение и согласовать все версии библиотек так, чтобы всё заработало. В матлабе такого нет. Там в из коробки есть всё, что нужно, и ты просто берёшь и пользуешься. Во-вторых, код получается более лаконичным за счёт возможностей синтаксиса и бесконечного набора встроенных функций. Практически для любого действия есть готовая функция, надо только в хелпе найти. Кстати, хелп тоже топ. Там и подробное описание, и примеров куча, и описание теории, если надо. В-общем чудо, а не фреймворк.
Теперь, справедливости ради, надо и о недостатках поговорить. Одним из них является меньшее количество возможностей в плане того, что можно делать непосредственно с нейросетями. У того же торча возможностей больше. Буквально недавно столкнулся с тем, что мне нужно было обучить сеть классификации сигналов, но исходный вариант работал с сигналами произвольной длительности, а реализуемая сеть начиналась со свёрточных слоёв. Свёрточному слою в общем-то без разницы, какой там размер у входных данных, и в торче первым указывается просто свёрточный слой, и никаких проблем нет. В матлабе же так не прокатит. Там на входе должен быть специальный входной слой, который что-то там нормирует, и параметры поступающих на его вход данных фиксируются. И без него никак. Это делает невозможным реализацию такого рода сетей в матлабе, что очень печально. Так же нет возможности замораживать какие-то слои и не обучать всю сеть целиком.
Подводя итог, могу написать, что для себя я решил, что любую задачу я буду решать в первую очередь в матлабе, потому что это быстро и удобно, а другими языками программирования буду пользоваться только тогда, когда в матлабе не найдётся чего-то, что нужно для решения задачи.