本文分享下kaggle小白可能经常遇到的两个错误的解决方案。
第一次使用的可能在测试notebook的时候没报错,但是在提交结果的时候报错了,可能为如下:
这是因为save version的时候notebook是在有网环境下的,而一般的比赛在推理的时候是断网的,所以需要在保存notebook的时候把网络关掉,如下图所示:
因为代码中用到了segmentation_models_pytorch,而这个包在kaggle的推理环境中是没有的,所以在保存的时候就报错了:
解决方法就是在提交的时候离线安装.whl文件,可以有如下3种方式:
上面的文件夹下就是放的我上传的.whl文件。然后在notebook的第一行用如下代码安装:
!pip install -q ../input/smp-env/segmentation_models_pytorch-0.2.1-py3-none-any.whl
如果不知道路径在哪里的新手,直接点击文件后面的copy file path就可以了:
从上面也可以看出,kaggle上notebook的工作路径是与input平级的文件夹(在working下):
主要过程如下:
2.1 先给notebook联网,然后用pip安装,记录下安装文件的缓存路径,把缓存copy到working文件夹下:
!pip install segmentation_models_pytorch
查看缓存路径:
2.2 把缓存的文件copy到自己的working文件夹下:
!cp /root/.cache/pip/wheels/ed/27/e8/9543d42de2740d3544db96aefef63bda3f2c1761b3334f4873/* /kaggle/working/wheels
!cp /root/.cache/pip/wheels/0e/cc/b2/49e74588263573ff778da58cc99b9c6349b496636a7e165be6/* /kaggle/working/wheels
2.3 然后用pip下载segmentation_models_pytorch需要的文件以及依赖:
!pip download segmentation_models_pytorch
这些会默认下载到当前路径:
2.4 把上面的所有.whl文件下载下来,然后上传到kaggle中自己的Datasets中; 2.5 在notebook环境添加自己上传的whl文件; 2.6 在notebook中用pip安装whl文件(放在notebook第一个cell)
!pip install -q ../input/wheels/wheels/timm-0.4.12-py3-none-any.whl
!pip install -q ../input/wheels/wheels/efficientnet_pytorch-0.7.1-py3-none-any.whl
!pip install -q ../input/wheels/wheels/pretrainedmodels-0.7.4-py3-none-any.whl
!pip install -q ../input/wheels/wheels/segmentation_models_pytorch-0.3.0-py3-none-any.whl
这次提交就不会报错了。
上面用!pip download segmentation_models_pytorch
命令会把所有的依赖都下载下来,但是很多都是在infer环境中本来就有的,实际上segmentation_models_pytorch只需要安装如下四个whl 文件就可以:
所以可以用下面的命令下载我们需要的就行:
!pip download segmentation_models_pytorch efficientnet-pytorch timm pretrainedmodels --no-deps
下载好后其余的操作跟上面一致;
比赛是学习非常有效的一种方式,冲!
如果觉得有用,点个关注和赞吧!
公众号:GIS与Climate,分享关于Python、GIS和Climate相关的技术与教程。
【1】kaggle上离线安装:segmentation_models_pytorchhttps://www.kaggle.com/c/hubmap-kidney-segmentation/discussion/206088
【2】https://cloud.tencent.com/developer/ask/sof/527701
本文由 mdnice 多平台发布