首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除了torch.Generator(),还有其他替代方法来支持MPS设备类型吗?(M1 Mac,PyTorch)

除了torch.Generator(),还有其他替代方法来支持MPS设备类型吗?(M1 Mac,PyTorch)
EN

Stack Overflow用户
提问于 2022-09-29 15:03:06
回答 2查看 282关注 0票数 2

我正在运行python代码,以便在我的m1 mac上实现稳定的扩散,并在我的text2img函数中获得这个错误。我知道Pytorch最近已经开始支持m1 GPU了。我得到了这个错误(RuntimeError: torch.Generator() api.不支持设备类型MPS ),我将代码放在下面,并突出显示给我错误的行。如果能帮到你,我会很感激的,谢谢!

代码语言:javascript
复制
def txt2img(prompt, width, height, guidance_scale, steps, seed): 
  global pipe, pipe_type 

  if pipe_type != 'txt2img': 
    pipe = None 
    clear_memory() 

    pipe_type = 'txt2img' 
    pipe = StableDiffusionPipeline.from_pretrained( 
      "CompVis/stable-diffusion-v1-4", 
      revision="fp16", 
      torch_dtype=torch.float16,
      use_auth_token=YOUR_TOKEN # use huggingface token for private model
    ).to("mps") 

  seed = random.randint(0, 2**32) if seed == -1 else seed 
  generator = torch.Generator(device='mps').manual_seed(int(seed)) 
 
 
  pipe.enable_attention_slicing() 
  with autocast("mps"): 
    image = pipe(prompt=prompt,
                 height=height, width=width,
                 num_inference_steps=steps, guidance_scale=guidance_scale, 
                 generator=generator).images[0] 

  return [[image], seed] 

错误引用的主要代码行如下:generator = torch.Generator(device='mps').manual_seed(int(seed))

EN

回答 2

Stack Overflow用户

发布于 2022-11-06 02:29:37

由于您只需要一个随机数,所以只需在CPU中生成它:

代码语言:javascript
复制
generator = torch.Generator().manual_seed(int(seed))
票数 0
EN

Stack Overflow用户

发布于 2022-10-11 23:08:36

我也发现了这个问题。如果我使用torch.has_mps.manual_seed(SEED),它将显示AttributeError:'bool‘对象没有属性'manual_seed’

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73897738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档