16

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

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

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

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

有人可以与我分享您的宝贵想法吗

4

1 回答 1

17

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

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

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

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

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

于 2018-01-02T14:33:39.413 回答