去雨去雪去雾算法本地实验速度对比

在进行去雨去雪去雾算法的实验过程中,博主使用自己的电脑进行实验,尽管能够成功运行,但速度却属实不尽人意,博主的笔记本显卡是GTX960,显存为4G,在进行实验的过程中,batch-size只能设置为3,好在实验的去噪类型也就只与三种,否则这实验根本无法进行,于是,便萌生了更换笔记本的念头,那么在更换前,就要先做下相关实验,看看性能能够提升多少。

首先记录一下博主在GTX960M上的实验情况:

GTX960M实验情况

去雨去雪去雾算法本地实验速度对比_第1张图片

显存占用

去雨去雪去雾算法本地实验速度对比_第2张图片

实验用时

训练一个epoch的实验用时:

去雨去雪去雾算法本地实验速度对比_第3张图片
可以看到时间大约在15分钟左右。

每训练5个epoch进行一次评估:

去雨去雪去雾算法本地实验速度对比_第4张图片

属实是太慢了,用时31分钟,而且从结果来看,PSNR与SSIM竟然有些许差距,这才是最严重的,当然这并不是最终结果。

RTX3070实验情况

博主的实验配置为GTX3070(笔记本的哈),显存为8G。那么博主的batch-size就可以调大了,先前在GTX960M时的batch-size为3,若是调整为4则会提示算力不足,而在这里可以将其设置的更大,博主设置batch-size=6。

去雨去雪去雾算法本地实验速度对比_第5张图片

显存占用

batch-size=6时的显存占用情况:

去雨去雪去雾算法本地实验速度对比_第6张图片

实验用时

训练一个epoch的实验用时:

去雨去雪去雾算法本地实验速度对比_第7张图片

评估一个epoch的时间:用时不到6分钟,相比GTX960提升简直不要太大。

去雨去雪去雾算法本地实验速度对比_第8张图片

关于num_workers

此外,值得注意的是,这里的num_workers博主设置为0,因为先前在服务器上运行时发现num_workers不为0的话会报错,这是程序的问题了,为了避免意外,还是老老实实的设置为0吧。

  1. GPU是由CPU发送指令和数据来执行计算任务的。在GPU中,线程是由CPU分配的,并且从CPU获取它们需要处理的数据。GPU本身没有能力添加线程或获取数据,它只能按照CPU给定的指令和数据执行计算任务。因此,送数据是由CPU的主线程负责送的。
    2.num_workers=0,CPU不分配额外线程,只有一个主线程,负责将数据送到RAM后再将数据送到GPU.
    3.num_works=1时,CPU分配一个单独线程专门负责将数据送到RAM,主线程专门负责将数据送到GPU

尽管将其设置的大一些可以提高,但按理说这种情况是不该出现的,这本身就是数据集加载时的问题,因此为了实验严谨,博主在3070的那台电脑上进行了实验,博主首先将num_workers设置为1。

你可能感兴趣的:(图像去噪,人工智能)