如何在kaggle上使用fastai v1.0(上)

如何在kaggle上使用fastai v1.0(上)_第1张图片

这篇文章会教大家在kaggle上使用fastai v1.0来进行图片分类。

kaggle是一个在数据挖掘领域非常著名的网站,数据研究人员可以在这个数据平台上,操练和竞赛各种算法。个人感觉其中传统机器学习以特征工程为主,深度学习则是以各种模型的组合之间的较量。总之,kaggle是一个十分不错的技术交流平台:)

kaggle有很多功能,其中也内置了notebook,我们来看看界面


如何在kaggle上使用fastai v1.0(上)_第2张图片

ok有了之前的colab的notebook,这里改成kaggle notebook就十分简单啦。
看看怎么做吧~

1.变更配置

如何在kaggle上使用fastai v1.0(上)_第3张图片

位于界面的最右下角,我们可以看到setting面板。

  • 改变language属性,设置为python
  • 改变GPU属性,打开GPU
  • 改变internet属性,允许下载一些互联网资源

2.增加数据集(可选)

如何在kaggle上使用fastai v1.0(上)_第4张图片

位于界面的右边中间,可以看到Draft Environment面板。
点击Add Data,我们可以搜索找到Dog Breed Identification数据集,直接添加数据集就可以得到如图所示的目录结构。注意这个input目录是一个只读的目录。

如果你是从外部导入数据集的话,这里就可以跳过啦。

3.设置matplotlib内联(也就是不弹出对话框显示)

%reload_ext autoreload
%autoreload 2
%matplotlib inline

这样做是为了和notebook兼容

4.导入fastai包

from fastai import *
from fastai.vision import *

5.检测GPU环境

print(torch.cuda.is_available(), torch.backends.cudnn.enabled)

返回

6.设置目录

path_model='/kaggle/working/'
path_input="/kaggle/input/"
label_df = pd.read_csv(f"{path_input}labels.csv")
label_df.head()

返回
如何在kaggle上使用fastai v1.0(上)_第5张图片

7.从csv导入数据

data = ImageDataBunch.from_csv(
                      path_out,
                      folder='train',
                      valid_pct=0.2,
                      ds_tfms=get_transforms(flip_vert=True,max_rotate=10., max_zoom=1.1),
                      size=224,
                      test='/kaggle/input/test/test',
                      suffix='.jpg',
                      bs=64,
                      num_workers=0).normalize(imagenet_stats)

这里需要注意的是最后一个参数num_workers=0不能缺少,不然kaggle notebook就会报错,博主在这里被坑了很久~

8.测试一下导入的数据

data.show_batch(rows=3, figsize=(7,6))
如何在kaggle上使用fastai v1.0(上)_第6张图片

能看到图就说明一切正常。

9.创建神经网络

learner = cnn_learner(data,models.resnet50,metrics=[accuracy],model_dir=f'{path_model}')

返回

另外kaggle notebook还提供了一个console窗口,可以看到一些更加实时的反馈信息


如何在kaggle上使用fastai v1.0(上)_第7张图片

10.微调网络

learner.fit_one_cycle(3)
如何在kaggle上使用fastai v1.0(上)_第8张图片

这里选取了3个epoch
可以看到最后accuracy为84%

嘿嘿。好啦,到这里差不多可以休息一下,是不是也很简单:)

之后就是预测和提交成果物,上榜咯。

如果有问题,欢迎来评论区留言讨论^^

相关链接
使用fastai进行图像分类之120种小狗
120-dogbreeds-fast-ai-v1-0-x
如何在kaggle上使用fastai v1.0(下)

你可能感兴趣的:(如何在kaggle上使用fastai v1.0(上))