如何在新的数据集上训练预先训练的CNN,这些数据集不是在课堂上组织的(无监督)

时间:2017-09-26 05:41:46

标签: deep-learning unsupervised-learning

我有一个在Imagenet上训练的预训练CNN(Resnet-18),现在我想在我自己的视频帧数据集上扩展它,现在重点是我在Finetuning所需的所有教程都需要在像< / p>

 class1/train/
 class1/test/

 class2/train/
 class2/test/

但我在很多视频中只有帧,我将如何训练我的CNN。

那么有人能指出我正确的方向,任何教程或论文等吗?

PS:我的最后一项任务是获得我在测试时提供的所有帧的深层功能

1 个答案:

答案 0 :(得分:0)

对于培训网络,您应该有一些输入数据的“标签”(有时称为y)。从那里,网络计算logit(网络的答案)和给定标签之间的损失。 并且网络将通过反向传播使用该损失值进行自我修改。这个过程就是我们所说的“培训”。 因为您只有输入数据而不是标签,所以您只能获得logit。这意味着无法计算损失。 微调几乎与“附加训练”相同,因此如果没有标记数据,您无法对预先训练好的网络进行微调。

关于火车组&amp;测试集,这不是现在的问题。 如果您有足够的标记输入数据,则可以将其除以某个比例。 (例如,80%的数据用于培训,20%的数据用于测试) 之所以将数据划分为这两组,我们要检查一下我们训练好的网络的表现更为一般,看不见的情况。

但是,如果您只是将数据输入预先训练好的网络(编码器部分),它将提供一个深层功能。它并不完全适合您的任务,但仍然是深层功能。

新增) Unsupervised pre-training for convolutional neural network in theano
这里是您需要的方法,深度特征编码器在无人监督的情况下。我希望它会有所帮助。