跑图神经网络时,GPU内存占比接近为0没有运行,CPU基本占满了,咋回事呀
你是不是没有设置在GPU上跑啊
可能你的流程里有一些数据预处理和变换的工作,这些工作并不在GPU上运行。GPU一般在神经网络训练时,对大矩阵运算可以做到很好的加速,你可以试试跑跑别的例子(常规CNN MLP之类的),训练epoch调多点,看看GPU的使用情况。如果确定这种情况下GPU是可以使用的,那就分析一下你的代码中整个流程,有哪些环节,实际训练是否已经开始。
看下你的日志输出,应该是没有跑在GPU上面的。
另外,如果调用的GPU,会在你的GPU1上面,也就是nvidia的显卡,而不会在核显里面(但是你的代码里面GPU ID要设置为0,因为对于框架来说,一般都是cuda,这个是不统计核显的)。所以你这长截图只能看到CPU爆满,但是看不到N卡的显存是否上涨。
一个是查下tf是不是GPU版本,cuda和cudnn是否安装正确,这两个和tf的版本要求是否一致;
代码里面的device是否设置为GPU?模型和训练数据是否有转到gpu里面去等等,这些都得检查过去才能知道是哪里出现问题。
最后还有一些是设置问题,比如你的numwork设置过多,导致内存和cpu满载,而显卡由于内存爆满没有交换数据的空间,所以挂起了;还有一种是网络比较小,显卡计算速度快,所以显卡在等待内存数据,也会显示GPU利用率为0。