首页 > 解决方案 > RuntimeError:张量 (0) 的扩展大小必须与非单维 0 处的现有大小 (5) 匹配

问题描述

在以下函数中:

   def dump_embedding(self, weight):
        with torch.no_grad():
            embeddings = self.forward(self.input_ids+self.id_offset)
        weight[self.id_offset:self.id_offset+self.length,:]=embeddings.detach()

我收到以下错误:

weight[self.id_offset:self.id_offset+self.length,:]=embeddings.detach()
RuntimeError: The expanded size of the tensor (0) must match the existing size (5) at non-singleton dimension 0.  Target sizes: [0, 768].  Tensor sizes: [5, 768]

基于,我似乎应该有其他方法来扩大张量的大小,但我只是不知道如何。

调用函数也是这样的,可能需要更改:

if self.decoder_prompt_encoder:
            if (self.decoder_original_embedding.num_embeddings <
                self.decoder_prompt_encoder.id_offset +
                self.decoder_prompt_encoder.length):
                self.underlying_model.resize_token_embeddings(
                    self.decoder_prompt_encoder.id_offset+
                    self.decoder_prompt_encoder.length
                )
            self.decoder_prompt_encoder.dump_embedding(
                self.decoder_original_embedding.weight)

标签: pythonpytorchtorch

解决方案


推荐阅读