LINUX.ORG.RU

Вышел PyTorch 1.3.0

 , ,


2

3

PyTorch, популярный открытый фреймворк для машинного обучения, обновился до версии 1.3.0 и продолжает набирать обороты благодаря своей ориентации на удовлетворение потребностей как исследователей, так и прикладных программистов.

Некоторые изменения:

  • экспериментальная поддержка именованных тензоров. Теперь можно обращаться к измерениям тензора по имени, вместо указания абсолютной позиции:
    NCHW = [‘N’, ‘C’, ‘H’, ‘W’]
    images = torch.randn(32, 3, 56, 56, names=NCHW)
    images.sum('C')
    images.select('C', index=0)
    
  • поддержка 8-битного квантования с помощью FBGEMM и QNNPACK, которые интегрированы в PyTorch и используют общий API;
  • работа на мобильных устройствах под управлением iOS и Android;
  • выпуск дополнительных инструментов и библиотек для интерпретации моделей.

Кроме того, опубликована запись докладов с прошедшей конференции Pytorch Developer Conference 2019.

>>> Подробности

★★★★★

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 1)

что torch, что tensorflow заточены на cuda, а не opencl... (( Есть проекты по поддержке opencl, но там не все так просто

cvs-255 ★★★★★
()

ДА НЕ ТОРЧ Я, Я ПРОСТО ДУНУЛ!

anonymous
()

работа на мобильных устройствах под управлением iOS и Android;

Теперь TensorFlow можно окончательно закапывать и бетонировать.

anonymous
()

named tensors нужны для длинных моделей, но такие модели без JIT запускать стрёмно, а JIT не поддерживается.. да и не только JIT, пока, увы.

anonymous
()
Ответ на: комментарий от sekekeke

Там второй вышел уже

Практически сам себе памятник надгробный.

Вместо того, чтоб выпустить «на 150% быстрее, лучше и круче», им пришлось публично признать, что статические графы были так себе идеей, развернуться на 180 и пытаться срочно сделать всё как в торче. Но торч конфетка, а в гугле снова сделали всё через жопу, гугл же. Потому что гугл отягощён быдлокодерами, как микрософт начала двухтысячных. Им бы даже второй Ян Лекун не помог сделать нормально, а у них и первого-то нет. Новые апи ещё неюзабельнее старых, документация ещё нечитаемее, линия партии меняется каждый месяц, народ уже ржот: сначала «юзайте layers», потом «ой нет, закопайте layers и юзайте slim», «ой нет, надо юзать estimators», «всё было неправильно, надо юзать tf.keras»… Классическое гугл-кладбище. Юзеры PyTorch иногда заходят поссать на надгробия.

anonymous
()
Ответ на: комментарий от corvuscor

Ну и ладно, мы всегда успеем воспользоваться arraymancer-ом.

Особенно, когда laser доделают.

shkolnick-kun ★★★★★
()

Ну всё, заживём теперь! Каждой домохозяйке по курсу «стань дата сцаентистом за 3 месяца»

TooPar
()
Ответ на: комментарий от cvs-255

AMD виноваты. Nvidia вкладывается в библиотеки, а AMD нет. Никто им не мешал написать адаптер для OpenCL. Архитектура tensorflow позволяет. Этот адаптер даже кто-то написал в каком-то виде. Вот только Nvidia над своими пайплайнами постоянно работает, в том числе оптимизируя железо под них, а AMD всё пофиг. Какое отношение, такой результат.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)

чё за мышиное обучение? чё оно делает? мышей дрессирует?

buratino ★★★★★
()
Ответ на: комментарий от anonymous

Среди большинства_в_выборке, тупица! Того самого, ага.

anonymous
()
Ответ на: комментарий от anonymous

Могу подтвердить, что Tensorflow - к*кашка неудобная.

Был опыт работы с v1 - API по сравнению с Torch неудобный, доки убогие. При попытке использовать C++ API словили былинный фейл - для части функций в этом API не реализовано вычисление градиентов - просто пипец какой-то. Сложилось ощущение, что Google нормально пилят только C/Python-версии, а на все остальное положили болт.

Torch при этом имеет отличный API как для C++, так и для Python, причём перенос (переписывание) Python-модели в C++ вариант вполне тривиально. Единственной сильной стороной Tensorflow оказалась нативная поддержка комплексных тензоров, чего (пока?) нет в Torch. Но и это обходится написанием несложного кода для «ручной» реализации операций с комплексными величинами. Итоговая скорость работы такого кода при этом оказывается равна «нативному» варианту из Tensorflow.

P.S. Отдельные лучи поноса в сторону Tensorflow/Google посылаются за их Bazel и анально-гландовой интеграции с другими C++ проектами.

htower_ ★★
()
Ответ на: комментарий от htower_

Torch при этом имеет отличный API как для C++, так и для Python, причём перенос (переписывание) Python-модели в C++ вариант вполне тривиально.

На nimtorch вообще ничего не надо никуда переписывать, просто генерирует C++ и всё, но лучше писать на божественном nim все приложение.

anonymous
()
Ответ на: комментарий от anonymous

named tensors нужны для длинных моделей, но такие модели без JIT запускать стрёмно, а JIT не поддерживается.. да и не только JIT, пока, увы.

Можно просто сделать:

N = 0
C = 1
H = 2
W = 3
images = torch.randn(32, 3, 56, 56)
images.sum(C)
images.select(C, index=0)
anonymous
()

Эти нейроподобные сети точно также в природе работают или это человеческая отсебятина?

tnemo
()
Ответ на: комментарий от tnemo

Нейросети начинались как упрощённые модели реальных нейронов, а потом развивались по пути упрощения конструкции и увеличения вычислительной эффективности. Потому что для решения практических задач не обязательно имитировать реальные нейроны со всей их легаси-кривизной. Можно того же результата достичь более простыми средствами.

Для моделирования реальных нейронов есть другой софт, если кому-то надо.

anonymous
()
Ответ на: комментарий от anonymous

лол, прямо в этом «коде» две операции съедают размерность С; имена - это свойства тензоров, а не участка кода. ну если вам конфигуратор между NCHW и NHWC зачем-то нужен - ок, можно такие константы ввести, но это не про named tensor

anonymous
()
Ответ на: комментарий от tnemo

Эти нейронные сети работают точно так же как в природе работает троечник Вася из 8Б - берет книжку ГДЗ, ищет там ответ, а потом от готового ответа пытается изобразить «решение» домашки.

anonymous
()
Ответ на: комментарий от anonymous

А «обучение» нейросети в целом напоминает обучения типичного школьного или платно-универского дауна у репетитора, когда дауну разжевывают на пальцах типовые задачи одну за одной, дабы тот не завалил очередной экзамен или контрольную.

anonymous
()
Ответ на: комментарий от anonymous

При этом из-за критической, неисправимой ошибки в ДНК даун от этих занятий дауном быть не перестает и достаточно немного поменять условия задачи, сделав зазубренный алгоритм не таким тривиальным, как даун тут же теряется и получает очередную парашу себе в дневник/зачетку. Так же и нейросеть.

anonymous
()
Ответ на: комментарий от tnemo

Так что с биологической точки зрения нейросеть - это такой дрессированный дождевой червь (в нейросети какой-нибудь теслы, которая лихо въезжает под фуры и давит людей и нервном ганглии дождевого червя как раз примерно сопоставимое число нейронов). О какой-либо высшей нервной деятельности говорить пока воообще рано, биологическую то высшую нервную деятельность ученые пока еще не изучили, а тут простенькая матмодель.

anonymous
()
Ответ на: комментарий от tnemo

Эти нейроподобные сети точно также в природе работают или это человеческая отсебятина?

Разумеется отсебятина. Пока ещё невозмжно отследить детали электрохимического взаимодействия между отдельными нейронами для их большого количества одновременно.

sena ★★
()
Ответ на: комментарий от anonymous

Эти «просто сделать» константы потеряют смысл после транспонирования, например.

anonymous
()
Ответ на: комментарий от tnemo

Искусственные нейросети это сильно упрощённая модель, но принцип тот же, человек обучается по тем же принципам.

Deleted
()
Ответ на: комментарий от Deleted

человек обучается по тем же принципам

Разве человек просматривает миллион подписанных картинок кошек, чтобы научится их отличать от собак? Человеку достаточно всего лишь раз или два показать кошку или всего лишь картинку кошки.

sena ★★
()
Ответ на: комментарий от sena

всего лишь картинку кошки.

Имелось в виду 'всего лишь рисунок кошки'.

sena ★★
()
Ответ на: комментарий от sena

Как это все работает? Где почитать чтоб на пальцах, без всего суперматана. Чтоб осмысленно в пайторч тыкать и даже объяснить, при необходимости начальству. И даже что то ноаенькое придумать

Laudanum
()
Ответ на: комментарий от sena

Миллион-не миллион, но одной картинки тоже недостаточно, иначе человек будет фейлить на всяких необычных породах кошек

Deleted
()
Ответ на: комментарий от Deleted

Стрекозу никто не учит ловить мошек. Ее нейросеть это out of the box точно также как у миллионов других насекомых.

В природе (если не говорить о высшей нервной деятельности) нет обучения с учителем и натаскивать нейросеть некому.

В этом вся фишка

tnemo
()
Ответ на: комментарий от tnemo

Стрекозу никто не учит ловить мошек

Эээээ нет, стрекозу таки учила эволюция, просто это обучение очень сильно растянуто во времени.

В природе (если не говорить о высшей нервной деятельности) нет обучения с учителем и натаскивать нейросеть некому

По-твоему, знания в природных нейросетях появляются чудесным образом, сами по себе? Это совершенно не так, без обучения знаний не будет, сорян за трюизм

Deleted
()

Машинное обучение - это ж не квантовая механика, там всё просто.

Чем десять страниц нести отвлечённую хуергу, проще один раз прочитать букварь и разобраться, как оно работает.

anonymous
()
Ответ на: комментарий от Deleted

Я-то понимаю, как это работает, в отличие от)

Да вы батенька самонадеянны. Это проясняет ценность ваших предыдущих реплик

tnemo
()
Ответ на: комментарий от tnemo

Хватит вилять вокруг да около, расскажи откуда, по-твоему мнению, берутся знания в природных нейросетях

Deleted
()
Ответ на: комментарий от Deleted

В любом случае принцип обучения другой. И конфигурация «нейронов» автоматическая, а не ручная. Потому что кроме задач распознавния знакомых паттернов наш интеллект автоматически ещё умеет много чего, типа обобщения, абстракции и т.п.

sena ★★
()
Ответ на: комментарий от Deleted

Разжевать и в рот положить?

Нет, дружок, так не пойдет. Читай современные статьи по биологии на языке оригинала и обрящешь.

По моему разумению, если опять таки не брать высшую нервную деятельность (кору головного мозга которая сама является дополнительной надстройкой над нейросетью), то знания на уровне насекомых просто наследуются вместе со структурой сети, которая выполняет заданный функционал.

А вот каким образом наследуется структура, никто не знает (и это не гены). Где записан граф сети - тайна великая сия есть

tnemo
()
Ответ на: комментарий от tnemo

знания на уровне насекомых просто наследуются вместе со структурой сети

А появились они по велению божьему, понимаю

А вот каким образом наследуется структура, никто не знает (и это не гены)

Ясно-понятно, пиши ещё

И вообще - слив защитан

Deleted
()
Ответ на: комментарий от Deleted

А появились они по велению божьему, понимаю

Есть и такая версия. Займись этим )

И вообще - слив защитан

Ты не только самонадеян, но и прост. Простых мне не надобно )

tnemo
()
Ответ на: комментарий от tnemo

Больше смайликов, чтобы умнее выглядеть, ага

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.