基于fastai的分类网络

classify.fastai

Classifier based on fastai

欢迎访问:https://github.com/pprp/classify.fastai/

字符识别分类器-基于fastai进行构造

以往的fastai教程都是很简单的几行进行一个模型的训练,对初学者来说看起来很简单。但是仅仅训练一个分类的网络是远远不够的,我们还需要各种指标对分类的效果进行评判。

这个库集中了目前比较好的几篇中文博客,并且在此基础上查阅了fastai的API教程(😲但是不得不说 感觉做的没有keras对于tensorflow那样好用,另外用的人感觉不是很多。)进行综合,主要是基于jupyter notebook进行编辑的,py文件也有,但是还不完善,欢迎pull request​ 😄

环境配置

建议使用anaconda3进行环境的配置和管理,目前使用的fastai以及pytorch都是最新版本的。链接

  • pip安装

    •    pip install fastai
         pip install jupyter notebook jupyter_contrib_nbextensions
      
  • conda安装

    •   conda install jupyter notebook
        conda install -c conda-forge jupyter_contrib_nbextensions
      
  • 之后启动命令jupyter notebook 然后在网页中打开并运行即可。

主要功能

  • 提供了数据,在data文件夹下,解压即可使用

    • 如果需要跑自己的分类器,直接替换train,valid等文件夹下的内容即可。
    • 格式为:每个类别一个文件夹,文件夹内放置图片。对命名没有要求。
  • 查找合适的learning rate

    • 该功能主要由fastai提供

    • 这个最低点就是合适的loss取值。(ps:有时候感觉不准)

  • 训练模型只需要通过参数传递即可

    • vgg16_bn,vgg19_bn,alexnet
    • resnet18,resnet34,resnet50,resnet101,resnet152
    • squeezenet1_0,squeezenet1_1
    • densenet121,densenet169,densenet201,densenet161
  • 训练过程中实时画train-valid-loss图(jupyter notebook很强大)

    • 像这种图就属于比较完美的,证明learning rate以及数据集安排都很合适。

    • 此外还会展示实时loss-error_rate-accracy等

  • 完成训练后loss可视化

  • 训练过程learning rate以及momentum可视化

  • 查看主要有哪些图像画错了top error

  • 查看混淆矩阵

  • 查看所有类别

  • 将数据集部分内容可视化

说明😎

其中可能有很多内容无法运行,由于本人也是初学者,仅通过看博客与API进行fastai的学习,朋友们有时间可以看fastai提供的课程,相信在里边会有详细的讲解。🤗

目前主要内容集中于train_notebook.ipynb文件中欢迎大家进行fork,star,pull requests。

待完成工作🤔

  • 训练模型保存。
  • 模型结构的设计与改动(尝试了一点但是没有解决bug)。
  • 训练模型的加载与预测。
  • 更好的可视化支持。
  • 更多的分类性能指标。
posted @ 2019-06-11 22:47  pprp  阅读(1902)  评论(0编辑  收藏  举报