从头开始训练 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 深度神经网络的主要内容,如果未能解决你的问题,请参考以下文章