【发布时间】:2023-01-03 19:00:10
【问题描述】:
我正在尝试找到对 RuntimeError 的修复:索引应该在 cpu 上或与索引张量 (cpu) 在同一设备上 所以我可以运行图像扩散模型: https://github.com/kakaobrain/karlo
完整的错误输出在这里: https://github.com/kakaobrain/karlo/issues/12
当我明确设置 gpu 时出现错误
os.environ["CUDA_VISIBLE_DEVICES"]="1"
我已将 cpu 更改为 "cuda" 或 cuda(),其中 "cpu" 或 cpu() 是,但是当我尝试运行模型时仍然会抛出错误
(gradio 开始于python demo/product_demo.py --host 0.0.0.0 --port 8085 --root-dir .)
关于我可以探索哪些内容仍在使用 cpu 进行索引的任何建议? 还是发生了其他事情?
【问题讨论】:
-
似乎
self.timestep_map在 CPU 上,而ts在 GPU 上。尝试使用调试器跟踪执行并确认我所说的是否属实。如果是这样,请找出您的张量中的哪个对应于self.timestep_map并将其移至 GPU。 -
谢谢;我试过
timestep_map_tensor = th.tensor(timestep_map) cuda_device = th.device("cuda") timestep_map_tensor = timestep_map_tensor.to(cuda_device)但是 vram 加载东西用完了(我在一张卡上有 24GB)这可能是一个单独的问题让一切都适合 -
能够使用 set 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512' 将东西加载到 VRAM 中,甚至开始看到图像生成 :) 但在生成时用完了 VRAM;进步 :)
-
降低“最大批量大小”我能够成功运行东西:)在这两个变化之后
-
很高兴你解决了它!考虑将您的 cmets 作为答案发布,然后接受它以将问题标记为已解决。
标签: pytorch