【发布时间】:2020-01-21 11:33:07
【问题描述】:
美好的一天!
我有一个名人数据集,我想在其上微调 keras 内置模型。到目前为止,我已经探索和完成了,我们删除了原始模型的顶层(或者最好传递 include_top=False)并添加我们自己的层,然后训练我们新添加的层,同时保持之前的层冻结。整个过程非常直观。
现在我需要的是,我的模型学会识别名人面孔,同时还能够检测它之前训练过的所有其他对象。最初,在 imagenet 上训练的模型带有 1000 个神经元的输出层,每个神经元代表一个单独的类。我对它应该如何检测新类感到困惑?所有的迁移学习和微调文章和博客都告诉我们用不同的 N 神经元层(N=新类数)替换原来的 1000 个神经元输出层。在我的例子中,我有两个名人,所以如果我有一个包含 2 个神经元的新层,我不知道模型将如何对原始的 1000 个 imagenet 对象进行分类。
我需要一个关于整个事情的指针,我如何才能让一个预训练模型教两个新的名人面孔,同时还能保持其识别所有 1000 个 imagenet 对象的能力。
谢谢!
【问题讨论】:
标签: python tensorflow keras deep-learning classification