我想训练一个模型,并遵循了所有指令,但当我运行这段代码来训练模型时,它会抛出一个错误
(SCALNet) C:UsersGigabyte pcDesktopCOUNTINGSCALNet-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:UsersGigabyte pcDesktopCOUNTINGSCALNet-mainsrccrowd_counting.py", line 8, in <module>
from network import Conv2d, FC, Conv2d_dilated, np_to_variable
ImportError: cannot import name 'Conv2d' from 'network' (G:SaadainAnacondaenvsSCALNetlibsite-packagesnetwork.py)
存储库,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
。在Python3中,这意味着导入绝对名称network
,这似乎就是这里发生的事情。
你说你已经安装了network
(可能是因为你之前遇到了一个不可导入的错误,但那只是转移注意力(。
现在在Python3环境中发生的情况是,该程序试图从一个不相关的模块导入不相关的东西,而不是network
(应该是src.network
(的导入错误,但没有工作。
得出的结论是,你需要要么
- 对此程序使用Python 2.7环境,并且只安装其要求,或者
- 将其升级到Python 3.x和正确的Python 3.x导入(如上所示(