【问题标题】:Image Classification using Tensorflow使用 TensorFlow 进行图像分类
【发布时间】:2018-07-23 11:44:02
【问题描述】:

我正在使用 Tensorflow Inception V3 模型进行迁移学习/再训练。我有 6 个标签。给定的图像只能是一种类型,即不需要多类检测。我有三个疑问:

  1. 哪种激活函数最适合我的情况?目前tensorflow提供的retrain.py文件使用softmax?还有哪些可用的方法? (如 sigmoid 等)

  2. 我应该使用哪个优化器功能? (GradientDescent、Adam.. 等)

  3. 我想识别超出范围的图像,即如果用户输入随机图像,我的算法应该说它不属于所描述的类。目前有 6 个类,它提供了一个类作为确定的输出,但我不希望这样。有什么可能的解决方案?

另外,我们可以在 tensorflow 中调整哪些其他参数。我的基线准确率为 94%,我正在寻找接近 99% 的结果。

【问题讨论】:

    标签: python-3.x tensorflow computer-vision softmax sigmoid


    【解决方案1】:
    1. 由于您正在进行单标签分类,因此 softmax 是最好的损失函数,因为它将您的最终层 logit 值映射到概率分布。多标签分类时使用 Sigmoid。

    2. 与普通梯度下降相比,使用基于动量的优化器总是更好。有很多这样的修改过的优化器,比如 Adam 或 RMSProp。与他们一起试验,看看什么最有效。亚当可能会给你最好的表现。

    3. 您可以添加一个额外的标签no_class,因此您的任务现在将是一个 6+1 标签分类。您可以输入一些带有no_class 作为标签的随机图像。但是,您的随机图像的分布必须与测试图像的分布相匹配,否则它不会一概而论。

    【讨论】:

      猜你喜欢
      • 2016-04-19
      • 2018-03-07
      • 2019-08-07
      • 2020-02-09
      • 2019-04-14
      • 1970-01-01
      • 2016-07-23
      • 2019-08-06
      • 2018-04-07
      相关资源
      最近更新 更多