无法从“pytorch_lightning.utilities.distributed”导入名称“rank_zero_only”

问题描述 投票:0回答:6

我正在使用 VQGAN+CLIP_(Zooming)_(z+quantize_method_with_addons).ipynb Google Repository,当我单击单元格“加载库和定义”时

它发送了一个错误:

ImportError                               Traceback (most recent call last)
<ipython-input-6-fe8fafeed45d> in <module>
     24 from omegaconf import OmegaConf
     25 from PIL import Image
---> 26 from taming.models import cond_transformer, vqgan
     27 import torch
     28 from torch import nn, optim

1 frames
/content/taming-transformers/main.py in <module>
     10 from pytorch_lightning.trainer import Trainer
     11 from pytorch_lightning.callbacks import ModelCheckpoint, Callback, LearningRateMonitor
---> 12 from pytorch_lightning.utilities.distributed import rank_zero_only
     13 
     14 from taming.data.utils import custom_collate

ImportError: cannot import name 'rank_zero_only' from 'pytorch_lightning.utilities.distributed' (/usr/local/lib/python3.7/dist-packages/pytorch_lightning/utilities/distributed.py)

我不知道如何解决这个问题。我不知道如何手动安装 Pytorch,因为它说“注意:如果您的导入由于缺少软件包而失败,您可以 使用 !pip 或 !apt 手动安装依赖项。

要查看安装一些常见依赖项的示例,请单击 下面的“打开示例”按钮。”

如果您有解决方案,请提前致谢。

伊内丝

我进行了三合一!pip install,但我可能真的不知道将该单元格/代码行放在哪里

import runtime-error google-colaboratory pytorch-lightning
6个回答
13
投票

pytorch_lightning 最近发布了一个新版本,该版本会抛出此错误(2022 年 11 月 2 日发布的版本 1.8.0.post1)。

https://pypi.org/project/pytorch-lightning/#history

只需安装旧版本的 pytorch_lightning 即可工作。

在我的系统中,我运行了“pip install pytorch-lightning==1.6.5”,更高版本也可能有效,您可以通过单击上面提供的链接然后单击发布历史记录来查看它们。


8
投票

现在rank_zero_only位于/pytorch_lightning/utilities/rank_zero.py

from pytorch_lightning.utilities.rank_zero import rank_zero_only


1
投票

最后,经过长时间的研究,我找到了它的解决方案,尝试运行它,你将面临 CLIP 模块的问题,一旦你解决了 python 问题,所以请遵循第二个代码。

conda install pytorch-lightning -c conda-forge

克隆后,尝试按照以下命令操作

Step:1 cd CLIP 
Step2: python setup.py

之后,

type: cd..

完成此操作后,您将被重定向到名为“VQGAN-CLIP”的上一个目录

最后,运行以下命令:

python generate.py -p "A painting of an apple in a fruit bowl"

一旦完成,然后运行生成的Python文件,它将正常工作。


1
投票

PR11747

 的 pl1.6 里程碑中,
rank_zero_only
功能已从
distributed.py
移至 rank_zero.py。并且您可以在pl版本
distributed
期间通过
1.7.x
导入此功能。

自版本 1.8.0 以来,pytorch-lighting 已删除

pytorch_lightning.utilities.distributed.py
但在变更日志中只字未提。 (您可以从这里获取包裹。)

所以,这里有两种解决方案:

  1. pip install --force --reinstall pytorch-lighting<1.8.0
  2. 如果 pytorch-lighting>=1.8.0
  3. ,则从
    rank_zero
    导入
    from pytorch_lightning.utilities.rank_zero
    相关函数

0
投票
  1. 使用@vishisht-rao解决方案将pytorch-lightning的软件包版本降级至1.7.7;这一步本身并没有解决我的问题。

    pip install pytorch-lightning==1.6.5
    
  2. 运行

    pip list|grep lightning
    来查找已安装的lightning-utilities版本。 我的是闪电实用程序==0.4.2

  3. 将lightning-utilities的软件包版本降级至0.4.0

    pip install lightning-utilities==0.4.0
    

降级

pytorch-lightning
lightning-utilities
的软件包版本解决了我的问题。


0
投票

检查您的 PyTorch Lightning 版本:

import pytorch_lightning as pl
print(pl.__version__)

如果您使用的是旧版本,请尝试更新 PyTorch Lightning:

install --upgrade pytorch_lightning

在较新版本的 PyTorch Lightning 中,一些导入已更改。尝试从 Lightning.pytorch.utilities 导入:

from lightning.pytorch.utilities import rank_zero_only

如果您使用的是最新版本,导入可能会再次发生变化。你可以尝试:

from lightning.fabric.utilities.rank_zero import rank_zero_only
© www.soinside.com 2019 - 2024. All rights reserved.