简述:
fastai是一个高度封装的深度学习工具包,可以用来快速建立一些标准模型,比如NLP中的文本生成模型和文本分类模型,只需要提供一个csv文件,再加上二十行以内的代码就可以把模型搭建起来。
但是关于fastai的自定义功能(特别是自定义数据加载),建议大家不要碰。
最近半年都在尝试使用fastai解决一个序列预测问题。
最初选择fastai看中的是fastai中实现的各种调参技巧,也许可以省去模型调参的工作,加快实验进度。
最初的实验进行得还听顺利,毕竟fastai提供的训练功能还是蛮好用的。
可是事情的发展却超出了最初的计划。。。
为了提升模型效果,我们需要加入更多的输入数据并且要使用自定义的采样方式,这样就需要修改dataset、sampler和collate_fn等模块。
修改前,我们花了很大力气去研究fastai的数据加载模块DataBunch,为了修改这个数据加载方式,我们大概继承并修改了二十多个fastai中的类。
做完这些工作大约耗时两个礼拜,我们的模型终于可以顺利运行了。
可是模型的效果还是不够理想,为了提升模型效果,我们想进一步修改模型结构,然后又修改了好几个类,修改之后的模型才跑起来。
如果真的有同学需要自定义fastai模块的话,可以参考https://docs.fast.ai/tutorial.itemlist.html中的示例进行编写。碰到坑的话,可以加群747537854一起讨论。