Ошибка возникает при выполнении UNet, когда размер пакета не равен 1 ⇐ Python

Программы на Python
Anonymous
Ошибка возникает при выполнении UNet, когда размер пакета не равен 1

Сообщение Anonymous »

Я пытаюсь запустить модель стабильной диффузии, используя код, представленный в руководстве по инверсии DDIM. Однако, когда для размера входного пакета установлено значение больше 1 (например, 32), я сталкиваюсь со следующей ошибкой:
RuntimeError: размер тензора a (131072) должен соответствовать размер тензора b (4096) в неодноэлементном измерении 1.
Похоже, что 131072 может быть получено из 32 x 4096, что указывает на несоответствие размеров тензора. Конкретная строка, в которой возникает ошибка:

Код: Выделить всё

noisy_residual = self.unet(input, t.to(input.device), **denoise_kwargs).sample
Вот соответствующая часть моего кода для процесса инверсии:

Код: Выделить всё

## Inversion (https://github.com/huggingface/diffusion-models-class/blob/main/unit4/01_ddim_inversion.ipynb)
def invert_process(self, guidance_scale, input, denoise_kwargs):

pred_images = []
pred_latents = []

decode_kwargs = {'vae': self.vae}

# Reversed timesteps 

Подробнее здесь: [url]https://stackoverflow.com/questions/79071235/an-error-occurs-during-the-execution-of-unet-when-the-batch-size-is-not-equal-to[/url]

Вернуться в «Python»