GIS与Climate

V1

2022/08/07阅读:24主题:默认主题

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

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


1.提交失败

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

解决方法

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

image
image

2.找不到segmentation_models_pytorch模块等问题

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

解决方法

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

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

上面的文件夹下就是放的我上传的.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下)

工作路径
工作路径
查看当前路径
查看当前路径
  • 上面的安装命令中-q代表的是静默安装,可以不加。
  • 这种方法可能会出现依赖问题;

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

主要过程如下:

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

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

!pip download segmentation_models_pytorch

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

image
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自己的环境。

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

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

公众号: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

分类:

人工智能

标签:

深度学习

作者介绍

GIS与Climate
V1

公众号:GIS与Climate,欢迎关注