~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 370C09F442E5769A0810045272B88222__1715610720 ✰
Заголовок документа оригинал.:
✰ Google JAX - Wikipedia ✰
Заголовок документа перевод.:
✰ Google JAX — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Google_JAX ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/37/22/370c09f442e5769a0810045272b88222.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/37/22/370c09f442e5769a0810045272b88222__translat.html ✰
Дата и время сохранения документа:
✰ 09.06.2024 13:24:21 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 May 2024, at 17:32 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Google JAX — Википедия Jump to content

Гугл Джакс

Из Википедии, бесплатной энциклопедии
ДЖАКС
Разработчики) Google
Стабильная версия
0.4.24 [1]  Отредактируйте это в Викиданных/ 6 февраля 2024 г .; 3 месяца назад ( 6 февраля 2024 г. )
Репозиторий github /Google /Джэкс
Написано в Питон , С++
Операционная система Linux , MacOS , Windows
Платформа Питон , NumPy
Размер 9,0 МБ
Тип Машинное обучение
Лицензия Апач 2.0
Веб-сайт Джакс .readthedocs .что /последний /  Edit this on Wikidata

Google JAX — это платформа машинного обучения для преобразования числовых функций, которая будет использоваться в Python . [2] [3] [4] Он описывается как объединение модифицированной версии autograd. [5] (автоматическое получение функции градиента путем дифференцирования функции) и . XLA (ускоренная линейная алгебра) TensorFlow следовать структуре и рабочему процессу NumPy Он разработан так, чтобы максимально точно и работает с различными существующими платформами, такими как TensorFlow и PyTorch . [6] [7] Основными функциями JAX являются: [2]

  1. град: автоматическое дифференцирование
  2. Джит: компиляция
  3. vmap: автоматическая векторизация
  4. pmap: SPMD программирование

выпускник [ править ]

Код ниже демонстрирует grad автоматическое дифференцирование функции.

# импорт 
 из   jax   import   grad 
 import   jax.numpy   as   jnp 

 # определение логистической функции 
 def   logistic  (  x  ):   
     return   jnp  .   exp  (  x  )   /   (  jnp  .  exp  (  x  )   +   1  ) 

 # получаем функцию градиента логистической функции 
 grad_ologies   =   grad  (  logistic  ) 

 # оцениваем градиент логистической функции при x = 1 
 grad_log_out   =   grad_ologies  (  1.0  )    
 print  (  grad_log_out  ) 

Последняя строка должна вывестиː

0.19661194 

джит [ править ]

Код ниже демонстрирует jit оптимизацию функции посредством слияния.

# импорт 
 из   jax   import   jit 
 import   jax.numpy   as   jnp 

 # определение функции куба 
 def   Cube  (  x  ): 
     return   x   *   x   *   x 

 # генерирование данных 
 x   =   jnp  .   ones  ((  10000  ,   10000  )) 

 # создаем jit-версию функции куба 
 jit_cube   =   jit  (  Cube  ) 

 # применяем функции Cube и jit_cube к одним и тем же данным для сравнения скорости 
 Cube  (  x  ) 
 jit_cube  (  x  ) 

Время расчета для jit_cube (строка № 17) должна быть заметно короче, чем для cube(строка № 16). Увеличение значений в строке №. 10, увеличит разницу.

vmap [ править ]

Код ниже демонстрирует vmap векторизация функции.

# импорт 
 из   functools   import   частичный 
 из   jax   import   vmap 
 import   jax.numpy   as   jnp 

 # определение функции 
 def   grads  (  self  ,   inputs  ): 
     in_grad_partial   =   parts  (  self  .  _net_grads  ,   self  .  _net_params  ) 
     grad_vmap   =   vmap  (  in_grad_partial  ) 
     rich_grads   =   grad_vmap  (  inputs)  ) 
     Flat_grads   =   np  .   asarray  (  self  .  _flatten_batch  (  rich_grads  )) 
     утверждает   Flat_grads  .   ndim   ==   2   и   Flat_grads  .   форма  [  0  ]   ==   входные данные  .   форма  [  0  ] 
     вернуть   Flat_grads 

GIF в правой части этого раздела иллюстрирует понятие векторизованного сложения.

Иллюстрационное видео векторизованного сложения

пмап [ править ]

Код ниже демонстрирует pmap распараллеливание функции для умножения матриц.

# импортируем pmap и случайные значения из JAX;   import JAX NumPy 
 из   jax   import   pmap  ,   случайный 
 import   jax.numpy   as   jnp 

 # сгенерируйте 2 случайные матрицы размером 5000 x 6000, по одной на устройство 
 rand_keys   =   random  .   Split  (  random.PRNGKey  ключ  (  (  0  ,   2  ) 
 matrices   =   pmap  (  лямбда-   :  random.normal   (  )  key  без передачи  ,  5000,6000   random_keys  )  CPU   данных  ))(  )  # 

 , параллельно выполнить локальное умножение матриц на каждом  /GPU 
 выходы   =   pmap  (  лямбда   x  :   jnp  .  dot  (  x  ,   x  .  T  ))(  матрицы  ) 

 # без передачи данных, параллельно получить среднее значение для обеих матриц на каждом CPU/GPU отдельно 
 средства   =   pmap  (  jnp  .mean  ,  )(  выводит  ) 
 печать  (  значит  ) 

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

[1.1566595 1.1805978] 

Библиотеки, использующие JAX [ править ]

Некоторые библиотеки Python используют JAX в качестве бэкэнда, в том числе:

Некоторые библиотеки R также используют JAX в качестве бэкэнда, в том числе:

  • fastrerandomize, библиотека, которая использует оптимизированный для линейной алгебры компилятор в JAX для ускорения выбора сбалансированной рандомизации в процедуре планирования экспериментов, известной как рерандомизация. [16]

См. также [ править ]

Внешние ссылки [ править ]

Ссылки [ править ]

  1. ^ Ошибка: невозможно правильно отобразить ссылку. смотрите в документации . Подробности
  2. ^ Перейти обратно: а б Брэдбери, Джеймс; Фростиг, Рой; Хокинс, Питер; Джонсон, Мэтью Джеймс; Лири, Крис; Маклорин, Дугал; Некула, Джордж; Пашке, Адам; Вандерплас, Джейк; Вандерман-Милн, Скай; Чжан, Цяо (18 июня 2022 г.), «JAX: Autograd and XLA» , Библиотека исходного кода астрофизики , Google, Bibcode : 2021ascl.soft11002B , заархивировано из оригинала 18 июня 2022 г. , получено 18 июня 2022 г.
  3. ^ Фростиг, Рой; Джонсон, Мэтью Джеймс; Лири, Крис (2 февраля 2018 г.). «Компиляция программ машинного обучения с помощью высокоуровневой трассировки» (PDF) . МЛсис : 1–3. Архивировано (PDF) из оригинала 21 июня 2022 г.
  4. ^ «Использование JAX для ускорения наших исследований» . www.deepmind.com . 4 декабря 2020 г. Архивировано из оригинала 18 июня 2022 г. Проверено 18 июня 2022 г.
  5. ^ HIPS/autograd , ранее: Гарвардская группа интеллектуальных вероятностных систем, сейчас в Принстоне, 27 марта 2024 г. , получено 28 марта 2024 г.
  6. ^ Линли, Мэтью. «Google потихоньку заменяет основу своей стратегии продуктов искусственного интеллекта после того, как ее последний большой рывок к доминированию был омрачен Meta» . Бизнес-инсайдер . Архивировано из оригинала 21 июня 2022 г. Проверено 21 июня 2022 г.
  7. ^ «Почему JAX от Google так популярен?» . Журнал Analytics India . 25 апреля 2022 г. Архивировано из оригинала 18 июня 2022 г. Проверено 18 июня 2022 г.
  8. ^ Flax: библиотека нейронных сетей и экосистема для JAX, разработанная для обеспечения гибкости , Google, 29 июля 2022 г. , получено 29 июля 2022 г.
  9. ^ Flax: библиотека нейронных сетей и экосистема для JAX, разработанная для обеспечения гибкости , Google, 29 июля 2022 г. , получено 29 июля 2022 г.
  10. ^ Киджер, Патрик (29 июля 2022 г.), Equinox , получено 29 июля 2022 г.
  11. ^ Optax , DeepMind, 28 июля 2022 г. , получено 29 июля 2022 г.
  12. ^ RLax , DeepMind, 29 июля 2022 г. , получено 29 июля 2022 г.
  13. ^ Jraph — библиотека для графовых нейронных сетей в jax. , DeepMind, 8 августа 2023 г. , получено 8 августа 2023 г.
  14. ^ «печать — Поддержка подсказок по типу» . Документация Python . Проверено 8 августа 2023 г.
  15. ^ jaxtyping , Google, 8 августа 2023 г. , получено 8 августа 2023 г.
  16. ^ Джерзак, Коннор (1 октября 2023 г.), fastrerandomize , получено 3 октября 2023 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 370C09F442E5769A0810045272B88222__1715610720
URL1:https://en.wikipedia.org/wiki/Google_JAX
Заголовок, (Title) документа по адресу, URL1:
Google JAX - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)