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

时间:2018-01-01 17:16:10

标签: tensorflow neural-network keras conv-neural-network resnet

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

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

我觉得这种方法不准确,因为预训练的重量已经完全训练过其他物体而不是医学数据。

而不是转学习,是否可以从头开始训练resnet? (但训练resnet的可用图像数量约为1500)。是否可以使用普通计算机。

有人可以与我分享您的宝贵意见

1 个答案:

答案 0 :(得分:6)

  

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

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

ImageNet包含14米226x226x3张图片。由于您的数据集小约10000x,因此每个纪元将减少约10000x的运算。最重要的是,如果您传递灰度而不是RGB图像,则第一个卷积将减少3倍的运算。同样,空间图像大小也会影响训练时间。对较小图像进行培训也会增加批量大小,这通常会因向量化而加快速度。

总而言之,我估计拥有单个消费者GPU的机器,如1080或1080ti,可以在一天内训练大约100个ResNet-50型号的时代。显然,在2-GPU机器上进行训练会更快。如果这是普通计算机的意思,答案是肯定的。

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