DANet代码复现
说明:目前问题仍未解决。不知是环境配置的问题,还是操作的问题
DANet:dual attention network for scene segmentation
GitHub address: https://github.com/junfu1115/DANet
环境配置
DANet master分支
win10 x64;
python 3.6.12
pytorch 1.4 CPU only; torchvision 0.5.0; torch-encoding 1.2.2
scipy1.5.4……
操作
- 下载 pytorch 和 torchvision
- cd DANet 并执行命令
python setup.py install
执行上述命令后,报错UnicodeDecodeError,根据报错信息对setup.py line58修改如下:
将long_description=open('README.md').read(),
改为long_description=open('README.md', encoding='utf-8').read(),
- put data
Cityscapes
into./datasets
and putDANet101
in folder./experiments/segmentation/models/
- run the file
train.py
in.\DANet-master\experiments\segmentation
尝试
尝试以下文章的解决方案,没有效果:
Pytorch-DANet编译历程
Win10+Pytorch1.0编译并训练语义分割网络DANet(双注意力机制)
原因:DANet项目的作者多次修改项目;博客安装的python及其扩展库的版本不同
报错信息
Error message will be reported after the code is running (running.)\ train.py ):
D:\DevelopmentTool\Anaconda3\envs\py36\python.exe E:/DANet-master/experiments/segmentation/train.py
��Ϣ: ���ṩ��ģʽ���ҵ��ļ���
D:\DevelopmentTool\Anaconda3\envs\py36\lib\site-packages\torch\utils\cpp_extension.py:209: UserWarning: Error checking compiler version for cl: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
Traceback (most recent call last):
File "D:\DevelopmentTool\Anaconda3\envs\py36\lib\site-packages\torch\utils\cpp_extension.py", line 1066, in _build_extension_module
check=True)
File "D:\DevelopmentTool\Anaconda3\envs\py36\lib\subprocess.py", line 438, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:/DANet-master/experiments/segmentation/train.py", line 18, in <module>
import encoding.utils as utils
File "E:\DANet-master\encoding\__init__.py", line 13, in <module>
from . import nn, functions, parallel, utils, models, datasets, transforms
File "E:\DANet-master\encoding\nn\__init__.py", line 12, in <module>
from .encoding import *
File "E:\DANet-master\encoding\nn\encoding.py", line 18, in <module>
from ..functions import scaled_l2, aggregate, pairwise_cosine
File "E:\DANet-master\encoding\functions\__init__.py", line 2, in <module>
from .encoding import *
File "E:\DANet-master\encoding\functions\encoding.py", line 14, in <module>
from .. import lib
File "E:\DANet-master\encoding\lib\__init__.py", line 16, in <module>
], build_directory=cpu_path, verbose=False)
File "D:\DevelopmentTool\Anaconda3\envs\py36\lib\site-packages\torch\utils\cpp_extension.py", line 680, in load
is_python_module)
File "D:\DevelopmentTool\Anaconda3\envs\py36\lib\site-packages\torch\utils\cpp_extension.py", line 866, in _jit_compile
with_cuda=with_cuda)
File "D:\DevelopmentTool\Anaconda3\envs\py36\lib\site-packages\torch\utils\cpp_extension.py", line 919, in _write_ninja_file_and_build
_build_extension_module(name, build_directory, verbose)
File "D:\DevelopmentTool\Anaconda3\envs\py36\lib\site-packages\torch\utils\cpp_extension.py", line 1078, in _build_extension_module
message += ": {}".format(error.output.decode())
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 1148: invalid continuation byte
Process finished with exit code 1
若有读者成功复现此项目代码,烦请提供一些建议,谢谢