项目作者: zhen8838

项目描述 :
利用Google预定义的mobilenet v1网络构建一个花朵分类器(K210预备)
高级语言: Python
项目地址: git://github.com/zhen8838/mobilenet-flowers.git
创建时间: 2019-01-26T10:48:38Z
项目社区:https://github.com/zhen8838/mobilenet-flowers

开源协议:

下载


mobilenet-flowers

利用Google预定义的mobilenet v1网络构建一个花朵分类器(K210预备)

使用

  1. 首先需要安装TensorflowModels/reserach/slim模块
    下载models模块,在bashrc中写入环境变量.

    1. git clone https://github.com/tensorflow/models/
    2. vi ~/.bashrc

    添加如下(需要修改为你所对应的地址):

    1. export PYTHONPATH="~/models/research/slim:$PYTHONPATH"
  2. 下载本项目

    1. git clone git@github.com:zhen8838/mobilenet-flowers.git
  3. 下载数据集以及预处理
    我使用的是slim教程中所用的Flowers数据集.首先下载解压数据集:

    1. wget http://download.tensorflow.org/example_images/flower_photos.tgz
    2. tar -zxvf flower_photos.tgz

    接下来修改代码进行预处理:

    1. cd mobilenet-flowers
    2. vi Globals.py

    修改Globals.py中第4行的DATA_DIR(必须要用绝对路径)
    ```python
    import os

  1. DATA_DIR = '/media/zqh/Datas/DataSet/flower_photos' #修改为你对应的路径
  2. CLASS_NUM = 5
  3. SEED = 3
  4. ```
  5. 保存退出后执行:
  6. ```sh
  7. python3 prepare_data.py
  8. ```
  9. 执行结束后检查目录,出现以下即完成:
  10. ```sh
  11. ls /home/zqh/flower_photos/*.csv
  12. /home/zqh/flower_photos/Label.csv /home/zqh/flower_photos/train.csv
  13. /home/zqh/flower_photos/test.csv
  14. ```
  1. 测试数据集
    执行
    1. python3 tf_test.py
    这时候可能会出现准确率非常低的情况,应该是由于我制作数据集的过程中shuffle的缘故.没有关系,我们可以自己重新训练.
    如果需要加载自行训练的权重,那么需要修改tf_test.py文件第20行RESTORE_CKPT_PATH为新的权重文件夹:
    1. if __name__ == "__main__":
    2. tf.reset_default_graph()
    3. # =========== define the ckpt path===================
    4. # NOTE modfiy to your path
    5. RESTORE_CKPT_PATH = 'log/train/save_18:40:14'
    6. TEST_IMG_NUM = 100
    7. # ===================== end =============================
  1. 训练数据集
    执行:
    1. python3 tf_train.py
    结束后查看保存的模型文件,其中带save的文件为模型文件(save_18:40:14为默认使用权重文件):
    1. ls log/train/
    2. 0.50_18:40:14 0.50_19:14:35 save_18:40:14 save_19:14:35

TODO

  1. 转化模型
  2. 移植到K210