Я использую библиотеку NNI для обрезки нейронной сети.
При сжатии она использует функцию. _metric_fuse. В этой функции происходит ошибка. Ошибка:
RuntimeError: выходные данные с формой [12, 1] не соответствуют широковещательной форме [12, 12]
Функция выглядит вот так:
def _metric_fuse(metrics: _METRICS) -> torch.Tensor:
# mean all metric value
fused_metric = None
count = 0
for _, module_metrics in metrics.items():
for _, target_metric in module_metrics.items():
print("-----------------------------------------------------------")
print(fused_metric)
print(target_metric)
if fused_metric is not None:
fused_metric += target_metric
else:
fused_metric = target_metric.clone()
count += 1
assert fused_metric is not None
return fused_metric / count
Ошибка возникает в Fused_metric += target_metric. Напечатанные тензоры выглядят так:
Я использую библиотеку NNI для обрезки нейронной сети. При сжатии она использует функцию. _metric_fuse. В этой функции происходит ошибка. Ошибка: RuntimeError: выходные данные с формой [12, 1] не соответствуют широковещательной форме [12, 12] Функция выглядит вот так: [code]def _metric_fuse(metrics: _METRICS) -> torch.Tensor: # mean all metric value fused_metric = None count = 0 for _, module_metrics in metrics.items(): for _, target_metric in module_metrics.items(): print("-----------------------------------------------------------") print(fused_metric) print(target_metric) if fused_metric is not None: fused_metric += target_metric else: fused_metric = target_metric.clone() count += 1 assert fused_metric is not None return fused_metric / count [/code] Ошибка возникает в Fused_metric += target_metric. Напечатанные тензоры выглядят так: [code]None
tensor([[4.2203e-06, 2.2458e-06, 5.0584e-06, 5.3744e-06, 5.3401e-05, 5.1009e-06, 4.3903e-06, 4.8045e-06, 2.6889e-06, 7.0391e-06, 3.9046e-06, 1.3097e-06]], device='cuda:0') [/code] [code]nni==3.0rc1 torch==2.0.1 torchaudio==2.0.2 torchvision==0.15.2 transformers==4.33.1 python = 3.10.15 [/code] По какой-то причине оно меняется с [12,1] на [12,12], что меня смущает. Кто-нибудь знает, в чем может быть проблема?
Я использую библиотеку NNI для сокращения нейронной сети.
При сжатии она использует функцию _metric_fuse. В этой функции происходит ошибка. Ошибка:
RuntimeError: output with shape doesn't match the broadcast shape
Я хочу разрезать 3D-тензор в PyTorch. Форма 3D-тензора src_tensor равна (batch, max_len, Hidden_dim), и у меня есть индексные векторные индексы 1D с формой (batch,). Я хочу разрезать второе измерение src_tensor. Я могу добиться этой функциональности...
Я просматривал в качестве упражнения, но забыл изменить форму тензоров. в этих строках
y_train = torch.tensor(y_train).float().reshape(-1,1) # column vector
y_test = torch.tensor(y_test).float().reshape(-1,1)
Я просматривал в качестве упражнения, но забыл изменить форму тензоров. в этих строках
y_train = torch.tensor(y_train).float().reshape(-1,1) # column vector
y_test = torch.tensor(y_test).float().reshape(-1,1)