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提供的课程,相信在里边会有详细的讲解。:hugs:

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

待完成工作:thinking:

  • [x] 训练模型保存。

  • [ ] 模型结构的设计与改动(尝试了一点但是没有解决bug)。
  • [ ] 训练模型的加载与预测。
  • [ ] 更好的可视化支持。
  • [ ] 更多的分类性能指标。

更多相关文章

  1. 【懒懒的Tensorflow学习笔记三之搭建简单的神经网络模型】
  2. 如何使用python 3检查文件夹是否包含文件
  3. 使用python api递归计算每个Dropbox文件夹大小
  4. Django代理模型返回父模型
  5. Tensorflow:恢复图形和模型,然后在单个图像上运行评估
  6. [caffe(二)]Python加载训练caffe模型并进行测试2
  7. CentOS7.2 通过nfs设置共享文件夹
  8. linux下touch命令也可以一次创建多个文件和mkdir一次创建多个文
  9. 我应该在哪里添加Yocto位烤任务来创建工作文件夹符号链接?

随机推荐

  1. MYSQL从同一个表中选择标记关联的id
  2. 【整理】更改MSSQL默认字符集
  3. MySQL(三)——数据行 操作
  4. 求sql【复制同一表记录,但有两个字段需要
  5. [Python] - No.1 使用python3连接Mysql
  6. 从另一个表中的列更新列值
  7. 减去两个SELECT语句以产生单个结果?
  8. Python: Sqlite3简单封装实例
  9. 使用id替换存储在xml数据中的值
  10. 求助:请大侠帮我把下面的查询语句改写为可