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

Программы на 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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