代码之家  ›  专栏  ›  技术社区  ›  Tyler Mey

训练Tensorflow识别特定图像

  •  3
  • Tyler Mey  · 技术社区  · 7 年前

    我想训练一个tensorflow模型来识别一个非常特定的家电。我熟悉使用Tensorflow做各种事情,但我不确定构建数据集的最佳方法。

    我最初的想法是从多个角度为自己提供100-200个该设备的图像,然后从谷歌搜索中提供1000个左右其他设备的不正确图像。有没有比我计划如何应对更好的方法?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Ekaba Bisong    7 年前

    为了解决这个问题,你应该利用迁移学习。简单地说,转移学习利用已经训练或预训练的分类器,并在输出层上工作,通常称为保留模型以识别自定义图像的瓶颈。这节省了您从头开始构建/训练图像识别分类器的时间和精力。

    Google Inception V3 模型是一个有用的起点。有了这个模型,我们投入了大量的工程和训练时间来创建最先进的图像分类器。该模型是在2012年的ImageNet数据集上训练的。

    TensorFlow for Poets 将指导您完成在预训练的Inception V3模型上进行迁移学习的过程,并让模型识别您的自定义图像。

    首先,图像集的大小并不坏,但是,作为训练机器学习算法的经验法则,更多的数据通常会导致更高的准确性和更好的泛化。这考虑到了与偏差-方差权衡相关的其他问题。

    在我看来,你不需要做任何关于负面例子的训练。我马上建议你用你的 示例数据集,然后设置精度阈值。例如,如果无法以高于60%的准确率识别图像,则将其归类为“非家用电器”。然后,您可以使用负面示例的数据集和正面示例的测试集来检查算法的性能。只需记住为超参数调优保留一个验证集。

        2
  •  1
  •   Sir Tesla    7 年前

    您可以使用imagenet下载整个图像集,因为它将特定图像数据集的集合作为url提供给您,因此您只需编写一个代码来访问url并将图像下载到特定目录。

    我有imagenet的代码可以下载图片,如果你愿意可以分享