专栏名称: 大数据文摘
普及数据思维,传播数据文化
目录
相关文章推荐
软件定义世界(SDX)  ·  DeepSeek使用技巧与提示词应用 ·  16 小时前  
数据派THU  ·  【ICML2025】通过多智能体反思强化大语 ... ·  2 天前  
数局  ·  大数跨境:2025烧烤设备出海研究报告 ·  2 天前  
51好读  ›  专栏  ›  大数据文摘

干脆面君,你给我站住!你已经被TensorFlow盯上了

大数据文摘  · 公众号  · 大数据  · 2017-08-18 12:50

正文

请到「今天看啥」查看全文


  • 最终,在标识了这些图片后,我写了一个脚本把XML文件转化成csv格式并建立了TFRecord。我使用160张图片来训练(train.records),40张图片来测试(test.records)。

  • 注意:


    • 我发现另外一个很好用的标注工具叫做FIAT (Fast Image Data Annotation Tool)。以后我可能也会试试它。

    • ImageMagick可以在命令行上进行图片处理,例如图片格式转换。假如你从未使用过,这个软件值得一试。

    • 通常来说,建立数据集是最费事的部分。我用了整整两个小时来分类和标注图片,这还是在我只需要分出一个类的前提下。

    • 确保图片是中型号的(参考google图片来看什么是中型图片)。如果图片太大了,你又没有更改默认的批量大小设置,很可能会在训练时因内存不足而报错。


    训练模型


    在建立好符合要求的API输入文件后,就可以训练模型了。


    在训练中,你需要下述部分:


    • 一个物体识别训练管道 。Tensorflow官网上提供配置文件示例。我在训练过程中使用ssd_mobilenet_v1_pets.config作为基础配置。我需要把num_classed参数调整为1,并且为模型检查点、训练和测试文件、标签映射设置路径(PATH_TO_BE_CONFIGURED)。对于其他的配置,比如学习率、样本量等等,我都使用默认设置。


    注意: 如果你的数据集多样性不足,如比例、姿态等没有太多变化,data_augmentation_option的设置值得选择。完整的选线清单可以在这里找到(参考PREPROCESSING_FUNCTION_MAP)。


    • 数据集(TFRecord文件)和相对应的标签映射。建立标签映射的例子可以在下面看到,因为我只有一个类所以非常简单。



    注意: 所有id编号都要从1开始,这是很重要的。0是一个占位索引。


    • (可选)训练前的模型检查点。推荐使用检查点,因为从零开始训练模型可能需要几天才能得到好结果,所以最好能从之前训练过的模型开始。官网上提供了几个模型检查点。在我的识别器中,我根据ssd_mobilenet_v1_coco模型开始训练,因为模型训练速度对我来说比准确度更重要。


    开始训练!


    • 训练可以在本地或者在云端完成(AWS,Google云等等)。如果你家有GPU(至少大于2GB),那你可以在本地完成工作,否则我建议使用云端。我这次用的是Google云,基本上是按照说明文档一步步完成的。

    • 对于Google云,你需要定义一个YAML配置文件。官网提供有样例文件,而且我基本上使用了默认配置。

    • 我也建议在训练时就开始评估工作。这样可以监控整个流程,并且通过在本地运行TensorBoard来评估你的工作。

    设置TensorBoard路径: tensorboard — logdir=gs://${YOUR_CLOUD_BUCKET}


    下面是我的训练和评估工作结果。总体来说,我以批量大小24运行了一个小时,约22000步。在大概40分钟时我已经得到了很好的结果。


    总误差的进展图







    请到「今天看啥」查看全文