跑yolo遇到的问题
watch -n 0.1 -d nvidia-smi
差不多吃满了
top
进去查看CPU和内存的使用:
如果内存使用较高说明可能是内存不够,此时您可以通过升配GPU(内存大小按GPU数量成比例分配)来排除该问题。
假设您的实例核心数为5,如果CPU占用率接近500%(即5个核心都正在高负载使用)那么可能是CPU数量不够,CPU出现了瓶颈,此时您可以迁移实例到更高CPU数量的主机上去或者升配。如果CPU占用率远没有达到500%的,说明您的代码没有把CPU的算力压榨出来,一般可以通过修改Dataloader中的worker_num提高CPU负载,经验值num_worker=核心数量,最好调参测试性能。(该项一般能解决80%的场景)
cpu利用率不高
dd if=/dev/zero of=/root/autodl-tmp/zero count=100 bs=10M
读1000MB需要2.8秒
forward里的x
x需要是二维的(batchsize,1 * 28 * 28),上面的real写的view(-1,28*28),view(batchsize,-1)也行