问题1:
ModuleNotFoundError: No module named ‘tensorflow.compat.v2‘
这个主要是因为你没装keras,或者没有安装正确版本的keras。
输入pip list
看一下有没有keras,如果有的话注意一下版本,去https://docs.floydhub.com/guides/environments/查看一下你的tensorflow对应的keras版本,出现了这个错误就说明它大概率是不对应的,用pip uninstall keras -y
卸载原来的keras,再用pip install keras==version
下载,这里version对应你的版本
比如我的tensorflow是1.13.1,对应2.2.4,所以就是pip install keras==2.2.4
如果pip list
发现没有keras,就直接下载对应版本即可
问题2:
ModuleNotFoundError: No module named 'nets.unet'
这个问题我找了千万遍都没解决,什么缺C++库啊,复制slim下的nets文件夹到项目路径啊……全都没解决,关键是你要看你缺不缺这C++库呐,而且GitHub上面的unet代码项目路径里都有nets文件夹,你的tensorflow底下的slim里的nets文件夹库的那一堆.py
文件对这个项目没用呐,(这里顺便提一下slim文件夹位置,好多人找不着.../anaconda/Lib/site-packages/tensorflow/models/research/slim
)
呐最后自己琢磨了一下,我的问题出现在开始那行,原代码是这样的:
from nets.unet import mobilenet_unet
然后我的项目文件构成是这样的
-Unet_Mobile
predict.py
test.py
train.py
+dataset2
+img
+img_out
+logs
-nets
unet.py
mobilenet.py
可以看懂叭,然后你运行出错的这个train.py
文件和nets文件夹同目录,按理说用原来那个代码,from nets.unet
应该就相当于深入一层路径,到nets
文件夹里从unet.py
里找函数,结果就是没成,我也不知道为啥,可能缺个什么配置吧,但是最简单的解决办法就是,把你需要找的这个.py
文件(比如这里的unet.py
)复制到你运行的这个文件同级目录下(此处是train.py
),然后把from nets.unet
改成from unet
修改之后的项目文件构成:
-Unet_Mobile
predict.py
test.py
train.py
unet.py
+dataset2
+img
+img_out
+logs
+nets
这里你哪个函数导不进去就把哪个函数所在的.py
文件放到项目文件同级目录下
修改之后的代码:
from unet import mobilenet_unet
每天学一点点,就能少菜一点点,加油( •̀ ω •́ )y