Merge pull request #132 from VE-FORBRYDERNE/gpt2

Fix an error that occurs when loading GPT-2 models
This commit is contained in:
henk717 2022-05-20 22:24:24 +01:00 committed by GitHub
commit 4482e6db9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 4 deletions

View File

@ -1613,10 +1613,13 @@ if(not vars.use_colab_tpu and vars.model not in ["InferKit", "Colab", "OAI", "Go
model = GPTNeoForCausalLM.from_pretrained("models/{}".format(vars.model.replace('/', '_')), revision=vars.revision, cache_dir="cache", **lowmem) model = GPTNeoForCausalLM.from_pretrained("models/{}".format(vars.model.replace('/', '_')), revision=vars.revision, cache_dir="cache", **lowmem)
else: else:
old_rebuild_tensor = torch._utils._rebuild_tensor old_rebuild_tensor = torch._utils._rebuild_tensor
def new_rebuild_tensor(storage, storage_offset, shape, stride): def new_rebuild_tensor(storage: Union[torch_lazy_loader.LazyTensor, torch.Storage], storage_offset, shape, stride):
dtype = storage.storage_type.dtype if(not isinstance(storage, torch_lazy_loader.LazyTensor)):
if(not isinstance(dtype, torch.dtype)): dtype = storage.dtype
dtype = storage.storage_type(0).dtype else:
dtype = storage.storage_type.dtype
if(not isinstance(dtype, torch.dtype)):
dtype = storage.storage_type(0).dtype
if(dtype is torch.float32 and len(shape) >= 2): if(dtype is torch.float32 and len(shape) >= 2):
vars.fp32_model = True vars.fp32_model = True
return old_rebuild_tensor(storage, storage_offset, shape, stride) return old_rebuild_tensor(storage, storage_offset, shape, stride)