zhanghang1989 / PyTorch-Encoding

A CV toolkit for my papers.
https://hangzhang.org/PyTorch-Encoding/
MIT License
2.04k stars 450 forks source link

ImportError: cannot import name 'cpu' #405

Open szy4017 opened 3 years ago

szy4017 commented 3 years ago
Traceback (most recent call last):
File "scripts/prepare_pascal.py", line 6, in
from encoding.utils import download, mkdir
File "/home/szy/PyTorch-Encoding/encoding/init.py", line 13, in
from . import nn, functions, parallel, utils, models, datasets, transforms
File "/home/szy/PyTorch-Encoding/encoding/nn/init.py", line 12, in
from .encoding import *
File "/home/szy/PyTorch-Encoding/encoding/nn/encoding.py", line 18, in
from ..functions import scaled_l2, aggregate, pairwise_cosine
File "/home/szy/PyTorch-Encoding/encoding/functions/init.py", line 2, in
from .encoding import *
File "/home/szy/PyTorch-Encoding/encoding/functions/encoding.py", line 15, in
from encoding import cpu
ImportError: cannot import name 'cpu'

When I run this command 'python scripts/prepare_ade20k.py' for preparing the dataset, I got this error. I can't import cpu.

szy4017 commented 3 years ago

I found one of the reasons for this error is that the compiler can't find the 'cpu.py'. In particular, because the name of package is the same as the name of project file, the compiler is confused.

szy4017 commented 3 years ago

A simple solution is that we can copy the files in packeage enconding to project dir encoding. The comands are as follows.

cp /home/user/.conda/envs/Pytorch-Encoding/lib/python3.6/site-packages/torch_encoding-1.2.2b20210908-py3.6-linux-x86_64.egg/encoding/cpu.py /home/user/PyTorch-Encoding/encoding/
cp /home/user/.conda/envs/Pytorch-Encoding/lib/python3.6/site-packages/torch_encoding-1.2.2b20210908-py3.6-linux-x86_64.egg/encoding/cpu.cpython-36m-x86_64-linux-gnu.so /home/user/PyTorch-Encoding/encoding/
cp /home/user/.conda/envs/Pytorch-Encoding/lib/python3.6/site-packages/torch_encoding-1.2.2b20210908-py3.6-linux-x86_64.egg/encoding/gpu.py /home/user/PyTorch-Encoding/encoding/
cp /home/user/.conda/envs/Pytorch-Encoding/lib/python3.6/site-packages/torch_encoding-1.2.2b20210908-py3.6-linux-x86_64.egg/encoding/gpu.cpython-36m-x86_64-linux-gnu.so /home/user/PyTorch-Encoding/encoding/