У меня есть следующий код, в котором я умножаю тензор X на матрицу C. В зависимости от размера X и от того, подключен ли C к графу вычислений, я получаю разные результаты при сравнении пакетного умножения с циклическим циклом по каждому фрагменту X.import torch
from torch import nn
for X,C in [(torch.rand(8, 50, 32), nn.Parameter(torch.randn(32,32))),
(torch.rand(16, 50, 32), nn.Parameter(torch.randn(32,32))),
(torch.rand(8, 50, 32), nn.Parameter(torch.randn(32,32)).detach())
]:
#multiply each entry
A = torch.empty_like(X)
for t in range(X.shape[1]):
A[:,t,:] = (C @ X[:,t,:].unsqueeze(-1)).squeeze(-1)
#multiply in batch
A1 = (C @ X.unsqueeze(-1)).squeeze(-1)
print('equal:', (A1 == A).all().item(), ', close:', torch.allclose(A1, A))
Возвраты
equal: False , close: False
equal: True , close: True
equal: True , close: True
Что происходит? Я ожидаю, что они будут одинаковыми во всех трех случаях.
Для справки:
import sys, platform
print('OS:', platform.platform())
print('Python:', sys.version)
print('Pytorch:', torch.__version__)
дает:
OS: macOS-14.4.1-arm64-arm-64bit
Python: 3.12.1 | packaged by conda-forge | (main, Dec 23 2023, 08:01:35) [Clang 16.0.6 ]
Pytorch: 2.2.0
Подробнее здесь: https://stackoverflow.com/questions/785 ... ensor-size
Точность умножения матрицы pytorch зависит от размера тензора ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Рассчитайте точность, полноту, точность и сбалансированную точность из матрицы путаницы.
Anonymous » » в форуме Python - 0 Ответы
- 41 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему форма этого тензора внезапно отличается от формы тензора Pytorch в библиотеке NNI?
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему форма этого тензора внезапно отличается от формы тензора Pytorch в библиотеке NNI?
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-