【问题标题】:Is it possible to retrain googles inception model with one class?是否可以用一类重新训练谷歌的初始模型?
【发布时间】:2017-05-18 00:50:47
【问题描述】:

我想训练这个漂亮的模型只识别一种类型的图像。最后要明确的是,模型能够判断新图像是否属于该类别。非常感谢您的帮助。

【问题讨论】:

    标签: machine-learning neural-network artificial-intelligence deep-learning


    【解决方案1】:

    您应该记住,例如,当您想识别“狗”时,您还需要知道什么不是“狗”。所以你的分类问题是一个两类问题而不是一类问题。你的两个类将是“我的类型”和“不是我的类型”。

    关于重新训练您的模型,是的,这是可能的。我猜您使用的是在 Imagenet 数据集上预训练的模型。有两种情况:如果分类问题很接近(例如,如果您的“类型”是 Imagenet 中的类),您可以替换最后一层(用 FC 1x2 替换完全连接的 1x1000)并在该层上重新训练。如果问题不一样,您可能需要重新训练更多层。

    这还取决于您用于再培训的样本数量。

    我希望它可以帮助或澄清您的问题。

    【讨论】:

    • 嗨!感谢您的关注。我也以同样的方式思考。我按照本指南 (codelabs.developers.google.com/codelabs/tensorflow-for-poets/#2) 操作,作为类,我有两个文件夹,一个是我想要分类的对象,另一个是其他图片。这种方法的问题是:如何选择“不是我的类型”的图片?提前谢谢你
    • 这取决于您希望网络在训练后遇到的图像类型。举个例子,假设我想要一个分类器来分类细胞图像并告诉我它是癌细胞还是正常细胞。好吧,我不会给它一张猫或狗的图像,因为即使狗不是癌细胞,我也不希望我的网络遇到狗图像(也不是猫)。
    【解决方案2】:

    是否可以用一个类重新训练谷歌的初始模型?

    是的。只需删除最后一层,添加一个具有一个(或两个)节点的新层,然后针对您的新问题进行训练。通过这种方式,您可以保留在(可能更大的)图像网络数据集上学习到的一般特征。

    【讨论】:

    • 非常感谢您的回复。你有一些关于如何做到这一点的提示吗?我正在使用 Ubuntu 17.04。谢谢
    猜你喜欢
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 2021-06-18
    • 2018-10-26
    • 2016-06-29
    相关资源
    最近更新 更多