从零开始训练Resnet深度神经网络

17

我需要学习有关深度神经网络的知识。

对于一个非常深的神经网络'ResNet',我们可以使用迁移学习来训练模型。 但是,Resnet已经在ImageNet数据集上进行了训练。因此,他们的预训练权重可以用于使用另一个数据集训练模型。(例如使用CT肺部图像训练肺癌检测模型)

我认为这种方法可能不够准确,因为预训练权重完全是针对其他对象而不是医学数据进行训练的。

除了迁移学习外,是否可以从头开始训练resnet?(但可用于训练resnet的图像数量大约只有1500张)。这是否是在普通电脑上可以实现的事情。

请有人与我分享您宝贵的想法。

1个回答

18
能否从头开始训练ResNet模型?
可以,但获得高准确度所需时间取决于数据量。例如,在NVIDIA M40 GPU上训练原始的ResNet-50花费了14天(10^18个单精度操作)。在CNN中最昂贵的操作是早期层中的卷积。
ImageNet包含14m的226x226x3图像。由于您的数据集小约10000倍,每个epoch将需要少约10000倍的操作。此外,如果传递的是灰度而不是RGB图像,则第一个卷积将少约3倍的操作。同样,空间图像大小也会影响训练时间。在较小的图像上进行训练还可以增加批处理大小,通常由于矢量化而加快速度。
总体而言,我估计一台配有单个消费者GPU(如1080或1080ti)的机器可以在一天内训练100个epoch的ResNet-50模型。显然,在2-GPU机器上训练会更快。如果这就是你所说的“普通电脑”,那么答案是肯定的。
但由于你的数据集非常小,所以存在过拟合的风险,这似乎是你的方法面临的最大问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接