kaggle小白必看:小白常见的2个错误解决方案

本文分享下kaggle小白可能经常遇到的两个错误的解决方案。


kaggle小白必看:小白常见的2个错误解决方案_第1张图片

1.提交失败

第一次使用的可能在测试notebook的时候没报错,但是在提交结果的时候报错了,可能为如下:

kaggle小白必看:小白常见的2个错误解决方案_第2张图片

解决方法

这是因为save version的时候notebook是在有网环境下的,而一般的比赛在推理的时候是断网的,所以需要在保存notebook的时候把网络关掉,如下图所示:

kaggle小白必看:小白常见的2个错误解决方案_第3张图片 image

2.找不到segmentation_models_pytorch模块等问题

因为代码中用到了segmentation_models_pytorch,而这个包在kaggle的推理环境中是没有的,所以在保存的时候就报错了:

kaggle小白必看:小白常见的2个错误解决方案_第4张图片

解决方法

解决方法就是在提交的时候离线安装.whl文件,可以有如下3种方式:

1. 自己下载好.whl文件,然后上传到Datasets,然后添加到Input文件夹下,比如:

kaggle小白必看:小白常见的2个错误解决方案_第5张图片

上面的文件夹下就是放的我上传的.whl文件。然后在notebook的第一行用如下代码安装:

!pip install -q ../input/smp-env/segmentation_models_pytorch-0.2.1-py3-none-any.whl

如果不知道路径在哪里的新手,直接点击文件后面的copy file path就可以了:

kaggle小白必看:小白常见的2个错误解决方案_第6张图片 复制文件的路径

从上面也可以看出,kaggle上notebook的工作路径是与input平级的文件夹(在working下)

kaggle小白必看:小白常见的2个错误解决方案_第7张图片 工作路径 kaggle小白必看:小白常见的2个错误解决方案_第8张图片 查看当前路径
  • 上面的安装命令中-q代表的是静默安装,可以不加。
  • 这种方法可能会出现依赖问题;

2. 在kaggle中的notebook在线安装,然后一顿操作再安装,具体的过程可以看参考链接【1】

主要过程如下:

2.1 先给notebook联网,然后用pip安装,记录下安装文件的缓存路径,把缓存copy到working文件夹下:

!pip install segmentation_models_pytorch

查看缓存路径:

kaggle小白必看:小白常见的2个错误解决方案_第9张图片 缓存路径

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
  • **注意要把pretrainedmodels和efficientnet-pytorch需要的whl文件都copy一下; **

2.3 然后用pip下载segmentation_models_pytorch需要的文件以及依赖:

!pip download segmentation_models_pytorch

这些会默认下载到当前路径:

kaggle小白必看:小白常见的2个错误解决方案_第10张图片 image

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 文件就可以:

  • timm
  • efficientnet_pytorch
  • pretrainedmodels
  • segmentation_models_pytorch

所以可以用下面的命令下载我们需要的就行:

!pip download segmentation_models_pytorch efficientnet-pytorch timm pretrainedmodels --no-deps

下载好后其余的操作跟上面一致;

总结

  1. kaggle上提交的时候记得要在 断网环境下提交;
  2. 如果在infer的时候提示缺少某个包,那么就只能采用离线安装的形式,上面给出了两种解决方案,推荐使用第二种,一般不会出现依赖问题,因为还是用的kaggle自己的环境。

比赛是学习非常有效的一种方式,冲!

kaggle小白必看:小白常见的2个错误解决方案_第11张图片

如果觉得有用,点个关注和赞吧!

公众号:GIS与Climate,分享关于Python、GIS和Climate相关的技术与教程。

kaggle小白必看:小白常见的2个错误解决方案_第12张图片

参考

【1】kaggle上离线安装:segmentation_models_pytorchhttps://www.kaggle.com/c/hubmap-kidney-segmentation/discussion/206088

【2】https://cloud.tencent.com/developer/ask/sof/527701

本文由 mdnice 多平台发布

你可能感兴趣的:(深度学习)