导入错误:无法从“网络”导入名称“Conv2d”(G:\Saadain\Anaconda\envs\SCALNet\lib\site-packages\network.py)

时间:2021-07-19 11:15:50

标签: python pytorch

我想训练一个模型并按照所有说明进行操作,但是当我运行这段代码来训练模型时,它会引发错误

(SCALNet) C:\Users\Gigabyte pc\Desktop\COUNTING\SCALNet-main>python train.py --model DLANet --
dataset NWPU --batch_size 32 --loss LocLoss --gpus 0 --lr 0.0001 --epochs 20 --save_model_interval 2 --preload --save
    Traceback (most recent call last):
      File "train.py", line 12, in <module>
        from src.crowd_counting import CrowdCounter
      File "C:\Users\Gigabyte pc\Desktop\COUNTING\SCALNet-main\src\crowd_counting.py", line 8, in <module>
        from network import Conv2d, FC, Conv2d_dilated, np_to_variable
    ImportError: cannot import name 'Conv2d' from 'network' (G:\Saadain\Anaconda\envs\SCALNet\lib\site-packages\network.py)

1 个答案:

答案 0 :(得分:0)

此代码来自的存储库 https://github.com/WangyiNTU/SCALNet 明确表示它需要 Python 2.7。我引用了“要求”部分:

<块引用>

Python 2.7

在 Python 2.7 中,导入是相对优先解析的,即当 src/crowd_counting.py 中有 import network 时,在 Python 2 中它的意思是 import src.network as network。在 Python 3 中,这意味着导入绝对名称 network,而这似乎就是这里发生的事情。

您说您已经安装了 network(可能是因为您之前遇到了无法导入的错误,但这是一个红鲱鱼)。

现在在您的 Python 3 环境中发生的情况不是 network(应该是 src.network)的导入错误,而是程序试图从不相关的模块中导入不相关的东西,并且没有不行。

外卖是你需要

  • 为此程序使用 Python 2.7 环境并仅安装其要求,或
  • 将其升级到 Python 3.x 并正确导入 Python 3.x(如上图所示)。