【问题标题】:Misclassification using VGG16 Net使用 VGG16 网络进行错误分类
【发布时间】:2019-01-16 02:36:27
【问题描述】:

【问题讨论】:

  • 因为所有的形状都相同,这会使您的模型感到困惑。但是你可以通过收集一些数据来给这个项目一个微调的机会。
  • @AnkishBansal 你能解释一下如何微调,以便我有一些线索。我现在正在做的是创建两个单独的组来训练两个不同的模型。但我更喜欢使用单一模型。如果没有选择,我必须走那条路。任何解释如何微调?

标签: tensorflow deep-learning conv-neural-network caffe


【解决方案1】:

微调是一种使用特征的方法,在一些大数据集上学习,在我们的问题中,这意味着我们不是再次训练完整的网络,而是freeze 输出较低层的权重网络并根据需要在网络末端添加几层。现在我们再次在我们的数据集上训练它。所以这里的优势是,我们不需要训练all-millions的参数,但只需要很少。另一个是我们不需要large-dataset 来微调。

更多您可以找到here。这是another-useful 资源,作者对此进行了更详细的解释(附代码)。

注意:这也称为transfer-learning

【讨论】:

  • 我的训练使用了 VGG16 的预训练模型。预训练模型是用大数据集训练的,在这种情况下,我可以按照你提到的进行调整。是吗?我不需要训练整个网络,只需对网络的后期部分进行微调即可。
  • 是的,你没看错。您可以为 VGG 使用预训练的权重,您可以在 tensorflow 或 keras 中轻松找到它,它是在 Imagenet 数据集上训练的,它有数百万张图像和 1000 个类别。另外VGG有billions的参数,自己训练的成本很高。所以微调有很大帮助。
猜你喜欢
  • 2020-05-16
  • 2014-05-20
  • 2018-07-26
  • 2017-08-31
  • 2014-07-16
  • 2017-12-11
  • 2018-10-15
  • 2019-10-27
  • 2020-10-10
相关资源
最近更新 更多