PyTorch

PyTorch – це Python бібліотека для глибинного навчання з використанням GPU [PyTorch]. Бібліотека – це інтерфейс Python з тих же оптимізованих бібліотек C, який використовує Torch. Вона була розроблена Адамом Паске, Семом Гроссом, Сумітом Чінтала та Грегорі Шананом (дослідницька група AI у Facebook) з 2016 року.

    PyTorch написана на Python, C та CUDA. Бібліотека підтримує бібліотеки прискорення, такі як Intel MKL та NVIDIA (CuDNN, NCCL). В своїй основі, вона використовує CPU і GPU Tensor та NN-пакети (TH, THC, THNN, THCUNN), записані як незалежні бібліотеки на API C99. PyTorch підтримує тензорні обчислення з сильним прискоренням графічного процесора (забезпечує Tensors, який може працювати або на CPU, або на GPU, прискорюючи обчислення), а також глибинні нейронні мережі, побудовані в системі автоградів на основі стрічки. Вона набула популярності завдяки можливості легко будувати певні складні архітектури [Deeplearning4j, 2018]. Як правило, змінити поведінку мережі означає написати її з нуля. PyTorch використовує техніку, звану автодиференціацією у зворотному режимі, яка дозволяє змінювати спосіб поведінки мережі з прикладанням відносно невеликих зусиль (тобто динамічний обчислювальний граф або DCG). Це здебільшого досягається за домогою автограду [autograd] та шайнеру [chainer]. Бібліотека використовується як науковою, так і виробничою спільнотою. Інженерна команда Uber побудувала Pyro, універсальну ймовірнісну мову програмування, використовуючи PyTorch в якості бекенду. Сайт з глибинного навчання fast.ai оголосив про майбутню міграцію в бік бази PyTorch, а не Keras-TensorFlow [Patel, 2017]. Бібліотека знаходиться у вільному доступі за ліцензією BSD, і її підтримують Facebook, Twitter, NVidia та багато інших організацій.

Сильні сторони:

  • Динамічно обчислювальний граф(автоматична диференціація у зворотному режимі).
  • Підтримується автоматична диференціація для NumPy та SciPy.
  • Елегантне та гнучке програмування Python для розробки [Caffe2vsPyTorch].
  • Підтримує формат Open Neural Network Exchange (ONNX), що дозволить легко переходити між CNTK, Caffe2, PyTorch, MXNet та іншими інструментами DL.

Слабкі сторони:

  • Все ще не має мобільного рішення порівняно з Caffe2.