tensorflow-workspace/README.md

21 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Tensorflow Workspace for K210
======
## Classifier for ImageNet
1. Download ImageNet dataset, extract it as the instructions to ILSVRC2012\_img\_train, it has 1000 folders, each folder's name represents its class id.
2. The model definition file is `mobilenetv1/models/mobilenet_v1.py`, **ATTENTION**, K210 does not support the method of *SAME PADDING* in tensorflow, so we need to add padding around the image manually before a `stride=2` conv (in this situation, the padding method of conv layer with `stride=2` should be set to *VALID*
3. Modify `mobilenetv1/run_mobilenet_v1.sh` and start your training.
4. Using `freeze_graph.py` to freeze your model from `ckpt` to `pb`, just run `python mobilenetv1/freeze_graph.py model.mobilenet_v1 ckpt_fold pb_file`
5. Test on ImageNet, you need a val dataset of ImageNet, then run `python mobilenetv1/validation_imagenet.py pb_file val_set_fold`
6. Estimate one image, run `python mobilenetv1/predict_one_pic.py pb_file pic`
## ImageNet 分类器示例
1. 下载ImageNet数据集按照说明解压缩训练数据集到文件夹ILSVRC2012\_img\_train内含1000个子文件夹每个子文件夹的命名为其分类代号类似n02484975每个子文件夹内为该分类的训练数据
2. mobilenet v1定义文件mobilenetv1/models/mobilenet\_v1.py需要注意由于K210不支持tensorflow的SAME padding所以在stride=2时先固定padding一圈0然后再进行stride=2的卷积padding=VALID
3. 训练脚本 mobilenetv1/run\_mobilenet\_v1.sh根据需要修改其中的参数然后运行
4. freeze\_graph.py将训练ckpt转成pb文件命令格式如下
python mobilenetv1/freeze\_graph.py model.mobilenet\_v1 ckpt\_fold pb\_file
5. 测试在ImageNet验证集上的性能下载验证集将文件按类别解压好与训练集类似运行 python mobilenetv1/validation\_imagenet.py pb\_fileor ckpt folder val\_set\_fold
6. 预测单张图片python mobilenetv1/predict\_one\_pic.py pb\_fileor ckpt folder pic