我使用下面的python代码ImageAI来使用DenseNet进行研究。你知道吗
图像集线器:https://github.com/OlafenwaMoses/ImageAI
图像示例:https://towardsdatascience.com/train-image-recognition-ai-with-5-lines-of-code-8ed0bdd8d9ba
我目前正在使用CNN方法(DenseNet)进行与符号识别(2D建筑图形符号)相关的研究。 VAV箱符号的一个示例是:https://ibb.co/cyhwRvf
我尝试对39个类进行分类(对象的数量,在本例中是符号的数量),每个类有2000个图像作为训练数据(2000x39=78000)。对于测试数据,我有1000张图片(1000 x 39=39000)。数据集的总大小是1.82 GB(我认为这是一个相对较小的大小,但如果我错了,请纠正我)。你知道吗
但问题是训练时间太长了。你知道吗
我试过使用GPU(nvidiageforcertx2080ti),当我将epoch(实验次数)设置为200次时,需要3天的时间来训练。你知道吗
我想知道是否有办法减少训练时间。是否有任何参数可以更改或其他选项?你知道吗
或者考虑到我使用的数据集和GPU的大小,这算是正常的消耗时间吗?你知道吗
培训的五行代码如下:
from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsDenseNet()
model_trainer.setDataDirectory("mechsymbol")
model_trainer.trainModel(num_objects=39, num_experiments=200, enhance_data=True, batch_size=32, show_network_summary=True)
我对ImageAI/Tensorflow相当陌生,但仍在学习。你知道吗
关于使用参数获得更快的学习,我认为增强\u数据通过将其设置为False,将使您获得更快的学习。 如果您没有这么大的一组图像要训练(少于1000),那么应该将此参数设置为True。此参数将从现有样本中删除更多样本。你知道吗
另外值得一提的是,如果你没有得到任何更好的结果后,例如50纪元由于过度拟合你的模型,你不必做所有的200代培训。你知道吗
听说过用FP16代替FP32的“混合精度训练”吗?你知道吗
我没有尝试过,因为这将是一个Nvidia GTX1080TI的边际差异,因为它没有张量核心。但你可以在这里读到更多 https://medium.com/tensorflow/automatic-mixed-precision-in-tensorflow-for-faster-ai-training-on-nvidia-gpus-6033234b2540
参考:
当我对一个有62个类(26GB)的图像数据集进行ResNet训练时,有1000到2000个图像用于训练,200个用于验证,每个历元大约需要10分钟。你知道吗
对于一个200代人的培训来说,这大约需要33个小时。你知道吗
这是我的imageAi python代码行
希望能给你一些有用的信息。你知道吗
相关问题 更多 >
编程相关推荐