
Tensorly - это библиотека Python, которая нацелена на то, чтобы сделать тензоры простым и доступным. Это позволяет легко выполнять тензорную разложение, тензорное обучение и тензорную алгебру. Его бэкэндская система позволяет плавно выполнять вычисления с помощью методов Numpy, Pytorch, Jax, Tensorflow, Cupy или Paddle, а также запускать методы в масштабе на процессоре или GPU.
Единственное предварительное условие-установить Python 3 . Самый простой способ - это распределение Anaconda.
| С PIP (рекомендуется) | С Conda |
PIP установка -u Tensorly
| Conda install -c Tensorly Tensorly
|
| Развитие (из git) | |
# клонировать репозиторий
git clone https://github.com/tensorly/tensorly
CD Тенсорно
# Установить в редактируемом режиме с `-e` или, эквивалентно,`-Editable '
PIP установка -e.
| |
Примечание. Тензорли зависит от Numpy по умолчанию. Если вы хотите использовать другие бэкэнды, вам нужно будет установить эти пакеты отдельно.
Для получения подробной инструкции см. Документацию.
Создайте небольшой тензор третьего порядка размером 3 x 4 x 2, из массива Numpy и выполните простые операции на нем:
import tensorly as tl
import numpy as np
tensor = tl . tensor ( np . arange ( 24 ). reshape (( 3 , 4 , 2 )), dtype = tl . float64 )
unfolded = tl . unfold ( tensor , mode = 0 )
tl . fold ( unfolded , mode = 0 , shape = tensor . shape )Вы также можете создать случайные тензоры:
from tensorly import random
# A random tensor
tensor = random . random_tensor (( 3 , 4 , 2 ))
# A random CP tensor in factorized form
cp_tensor = random . random_tensor ( shape = ( 3 , 4 , 2 ), rank = 'same' )Вы также можете создавать тензоры в TT-формате, Tucker и т. Д., См. Случайные тензоры.
Вы можете изменить бэкэнд для выполнения вычислений с другой структурой. По умолчанию бэкэнд - Numpy, но вы также можете выполнить вычисление, используя Pytorch, Tensorflow, Jax, Cupy или Paddle (необходимо сначала установить их). Например, после установки бэкэнда для Pytorch все вычисления выполняются Pytorch, и тензоры могут быть созданы на графическом процессоре:
tl . set_backend ( 'pytorch' ) # Or 'numpy', 'tensorflow', 'cupy' or 'jax'
tensor = tl . tensor ( np . arange ( 24 ). reshape (( 3 , 4 , 2 )), device = 'cuda:0' )
type ( tensor ) # torch.Tensor Применение тензора разложения легко:
from tensorly . decomposition import tucker
# Apply Tucker decomposition
tucker_tensor = tucker ( tensor , rank = [ 2 , 2 , 2 ])
# Reconstruct the full tensor from the decomposed form
tl . tucker_to_tensor ( tucker_tensor )У нас есть еще много декомпозиций, не забудьте проверить их!
Это всего лишь очень быстрое введение в некоторые основные особенности Tensorly. Для получения дополнительной информации о начале начала проверки пользователя и для подробной ссылки на функции и их документацию см. В API
Если вы видите ошибку, откройте проблему или, еще лучше, проведенный зал!
Все взносы приветствуются! Так что, если у вас есть прохладный метод тензора, который вы хотите добавить, если вы обнаружите ошибку или даже опечатку или ошибку в документации, сообщите об этом, и даже лучше, откройте запрос на Github.
Прежде чем отправить свои изменения, вы должны убедиться, что ваш код придерживается нашего стиля. Самый простой способ сделать это с черным:
pip install black
black .Тестирование и документация являются неотъемлемой частью этого пакета, и все функции поставляются с Uni-тестами и документацией.
Тесты выполняются с использованием пакета Pytest. Сначала установите Pytest:
PIP установить Pytest
Затем, чтобы запустить тест, просто запустите, в терминале:
Pytest -v Tensorly
В качестве альтернативы, вы можете указать, для какого бэкэнда вы хотите запустить тесты:
Tensorly_backend = 'numpy' pytest -v tensorly
Если вы используете тенденцию в академической статье, пожалуйста, цитируйте [1]:
@Article {Tensorly,
Автор = {Джин Коссафии и Яннис Панагакис и Анима Анандкумар и Майя Пантикат},
title = {Tensorly: Tensor Learning в Python},
Journal = {журнал исследований машинного обучения},
Год = {2019},
том = {20},
number = {26},
pages = {1-6},
url = {http://jmlr.org/papers/v20/18-277.html}
}
| [1] | Жан Коссафи, Яннис Панагакис, Анима Анандкумар и Майя Пантич, Тенсорное: Тенсорное обучение в Python , Журнал исследований машинного обучения (JMLR) , 2019, том 20, номер 26. |