如何在 类 中未组织的新数据集上训练预训练的 CNN(无监督)
how to train pre-trained CNN on new dataset which is not organised in classes (Unsupervised)
我有一个在 Imagenet 上训练过的预训练 CNN (Resnet-18),现在我想在我自己的视频帧数据集上扩展它,现在重点是我在 Finetuning 上找到的所有教程都需要组织在 类 喜欢
class1/train/
class1/test/
class2/train/
class2/test/
但我的许多视频只有帧,我将如何在其上训练我的 CNN。
所以任何人都可以指出正确的方向,任何教程或论文等吗?
PS:我的最后一个任务是获取我在测试时提供的所有帧的深层特征
对于训练网络,您应该有一些 'label'(有时称为 y)的输入数据。从那里,网络计算 logit(网络的答案)和给定标签之间的损失。
并且网络将通过反向传播使用该损失值进行自我修正。这个过程就是我们所说的'training'。
因为你只有输入数据,没有标签,所以你只能得到logit。这意味着无法计算损失。
Fine tuning 与 'additional training' 几乎是同一个词,因此您无法在没有标记数据的情况下对预训练网络进行微调。
关于训练集和测试集,这不是现在的问题。
如果您有足够的标记输入数据,您可以按一定比例划分它。
(例如,80% 的数据用于训练,20% 的数据用于测试)
之所以将数据分成这两组,我们是想检查我们训练好的网络的性能更一般的,没见过的情况。
然而,如果你只是将你的数据输入预训练网络(编码器部分),它会给出一个深度特征。它并不完全适合你的任务,但它仍然是一个深度特征。
已添加)
Unsupervised pre-training for convolutional neural network in theano
这是您需要的方法,无监督情况下的深度特征编码器。希望对你有帮助。
我有一个在 Imagenet 上训练过的预训练 CNN (Resnet-18),现在我想在我自己的视频帧数据集上扩展它,现在重点是我在 Finetuning 上找到的所有教程都需要组织在 类 喜欢
class1/train/ class1/test/ class2/train/ class2/test/
但我的许多视频只有帧,我将如何在其上训练我的 CNN。
所以任何人都可以指出正确的方向,任何教程或论文等吗?
PS:我的最后一个任务是获取我在测试时提供的所有帧的深层特征
对于训练网络,您应该有一些 'label'(有时称为 y)的输入数据。从那里,网络计算 logit(网络的答案)和给定标签之间的损失。 并且网络将通过反向传播使用该损失值进行自我修正。这个过程就是我们所说的'training'。 因为你只有输入数据,没有标签,所以你只能得到logit。这意味着无法计算损失。 Fine tuning 与 'additional training' 几乎是同一个词,因此您无法在没有标记数据的情况下对预训练网络进行微调。
关于训练集和测试集,这不是现在的问题。 如果您有足够的标记输入数据,您可以按一定比例划分它。 (例如,80% 的数据用于训练,20% 的数据用于测试) 之所以将数据分成这两组,我们是想检查我们训练好的网络的性能更一般的,没见过的情况。
然而,如果你只是将你的数据输入预训练网络(编码器部分),它会给出一个深度特征。它并不完全适合你的任务,但它仍然是一个深度特征。
已添加)
Unsupervised pre-training for convolutional neural network in theano
这是您需要的方法,无监督情况下的深度特征编码器。希望对你有帮助。