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

Posted

技术标签:

【中文标题】从头开始训练 Resnet 深度神经网络【英文标题】:Training Resnet deep neural network from scratch 【发布时间】:2018-06-11 14:38:45 【问题描述】:

我需要了解一些关于深度神经网络的知识。

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

我觉得这种方法并不准确,因为预训练的权重已经完全训练过其他对象,但没有使用医学数据。

是否可以从头开始训练 resnet,而不是迁移学习? (但可用于训练 resnet 的图像数量约为 1500)。有没有可能用普通电脑做。

有人可以和我分享你的宝贵意见吗

【问题讨论】:

【参考方案1】:

是否可以从头开始训练 resnet?

是的,这是可能的,但是达到良好准确度所需的时间在很大程度上取决于数据。例如,在 NVIDIA M40 GPU 上训练原始 ResNet-50 需要 14 天(10^18 个单精度操作)。 CNN 中最昂贵的操作是早期层的卷积。

ImageNet 包含 14m 226x226x3 图像。由于您的数据集要小约 10000 倍,因此每个 epoch 将减少约 10000 倍的操作。最重要的是,如果你传递灰度而不是 RGB 图像,第一个卷积将减少 3 倍的操作。同样,空间图像大小也会影响训练时间。在较小的图像上进行训练也可以增加批量大小,这通常会由于矢量化而加快速度。

总而言之,我估计一台具有单个消费级 GPU(例如 1080 或 1080ti)的机器一天可以训练约 100 个 ResNet-50 模型的 epoch。显然,在 2-GPU 机器上训练会更快。如果这就是您所说的普通计算机,答案是肯定的。

但由于您的数据集非常小,因此过度拟合的可能性很大。这看起来是您的方法面临的最大问题。

【讨论】:

以上是关于从头开始训练 Resnet 深度神经网络的主要内容,如果未能解决你的问题,请参考以下文章

深度学习100例 -卷积神经网络(ResNet-50)鸟类识别 | 第8天

深度残差网络

可以使用深度学习框架而不是从头开始构建神经网络吗?

详解ResNet 网络,如何让网络变得更“深”了

从头开始的神经网络 - 预测单个示例

深度学习用于计算机视觉