Всё что нужно знать про torch.sparse
Разработчики PyTorch предоставили модуль torch.sparse для работы с разреженными тензорами, где большинство элементов – нули. Зачем это нужно? Представьте матрицу смежности графа, сильно обрезанную сеть или облако точек – хранить такие данные плотным массивом без надобности расточительно. Разрежённая структура сохраняет только ненулевые элементы и их индексы, что сильно экономит память и ускоряет вычисления. Например, матрица размером 10,000 на 10,000 с 100 000 ненулевых float-значений в разрежённом COO-формате займёт не 400 МБ, а около 2 МБ.
Несмотря на перспективы, API разрежённых тензоров в PyTorch пока в бете и может менять крошечные детали. Будьте к этому готовы: часть операций поддерживается, часть – нет, и некоторые автоград-ячейки пока работают только для COO, а для CSR, например, градиент не считается. Но обо всём по порядку. Читать далее
#ml #data_science #разрежённые_тензоры #pytorch #оптимизация_памяти #torch_sparse #матричное_умножение | @habr_ai
Разработчики PyTorch предоставили модуль torch.sparse для работы с разреженными тензорами, где большинство элементов – нули. Зачем это нужно? Представьте матрицу смежности графа, сильно обрезанную сеть или облако точек – хранить такие данные плотным массивом без надобности расточительно. Разрежённая структура сохраняет только ненулевые элементы и их индексы, что сильно экономит память и ускоряет вычисления. Например, матрица размером 10,000 на 10,000 с 100 000 ненулевых float-значений в разрежённом COO-формате займёт не 400 МБ, а около 2 МБ.
Несмотря на перспективы, API разрежённых тензоров в PyTorch пока в бете и может менять крошечные детали. Будьте к этому готовы: часть операций поддерживается, часть – нет, и некоторые автоград-ячейки пока работают только для COO, а для CSR, например, градиент не считается. Но обо всём по порядку. Читать далее
#ml #data_science #разрежённые_тензоры #pytorch #оптимизация_памяти #torch_sparse #матричное_умножение | @habr_ai
Хабр
Всё что нужно знать про torch.sparse
Разработчики PyTorch предоставили модуль torch.sparse для работы с разреженными тензорами , где большинство элементов – нули. Зачем это нужно? Представьте матрицу смежности графа, сильно обрезанную...