一、引言
记录运行UIU-Net时遇到的一些问题,已经配好环境
环境:win11+CUDA11.1+python3.7
二、问题
1. 问题1
bash
E:\Anaconda3\anaconda3\shell\condabin\conda-hook.ps1 : 无法加载文件 E:\Anaconda3\anaconda3\shell\condabin\conda-hook.ps1,因为在此系统上
禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 2
+ (E:\Anaconda3\anaconda3\shell\condabin\conda-hook.ps1) ; (conda activ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
参考链接:link1
解决方案:
在 vscode 中按CTRL+,,打开设置,搜索terminal.integrated.defaultProfile.windows ,在下拉菜单中选择Command Prompt,重启终端。
2. 问题2
bash
ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' (E:\Anaconda3\anaconda3\envs\python37\lib\site-packages\numpy\lib\arraypad.py)
问题原因就是 numpy 版本与 skimage 版本不匹配。这里源代码中要求安装 numpy1.15,我最开始安装了这个版本,但是后面安装 paddelhub 库的时候由于不知道 paddlehub 库应该安装什么版本,当时随便安装了一个版本后 numpy 自动升级为 1.21 版本了,应该是这个原因。但是重新安装旧版本的 numpy 太麻烦了,而且那样又有许多库要重新安装。所有我才用是上面参考链接中的方法。
解决方案:
按照 ImportError 前面最后一个路径打开文件E:\Anaconda3\anaconda3\envs\python37\lib\site-packages\skimage\util\arraycrop.py,
将前面的:
bash
import numpy as np
from numpy.lib.arraypad import _validate_lengths
修改为:
bash
import numpy as np
from distutils.version import LooseVersion as Version
old_numpy = Version(np.__version__) < Version('1.16')
if old_numpy:
from numpy.lib.arraypad import _validate_lengths
else:
from numpy.lib.arraypad import _as_pairs
3. 问题3
bash
ImportError: DLL load failed: 找不到指定的模块。
问题原因应该跟问题2是一样的,最开始我安装了低版本的 numpy,许多库是与低版本 numpy 适配的,后面突然 numpy 自己升级了,导致先前的许多库不匹配了。这里我看了下 traceback,似乎是 scipy 有问题,所有我卸载了 scipy,重新安装了一次,然后成功了。
解决方案:
bash
pip uninstall scipy
pip install scipy