MindSpore 设置昇腾Ascend 910显存的默认大小,单卡可执行多任务处理

默认显存占用

最近在使用昇腾Ascend 910和MindSpore进行训练和推理时,遇到了一个非常有趣的现象,就是无论是进行模型的训练还是推理,都会占用大约30GB的显存。即使只是进行一个简单的Tensor加减法的运算,也需要消耗30GB的显存,这看起来很难受。只做一个简单的Tensor逻辑运算,却占用了30GB的显存。最恶心的是,我花了大价钱从xxx地方购买到的国产化AI加速卡,难道只能同时执行一个任务?(小模型)

import mindspore as ms
x = ms.Tensor([10,20])
y = ms.Tensor([40,50])
b = x +y

显存占用情况:
显存占用

解决方法

参考:https://www.mindspore.cn/docs/zh-CN/r2.2/index.html
mindspore的context有个有个参数可以配置显存的默认占用情况:
在这里插入图片描述
max_device_memory, 用于设置显存大小,它的默认值是 30GB
由于30GB的默认值,导致了上面的问题
我们只需要配置这个参数就可以限制当前任务的显存占用:

import mindspore as ms
ms.set_context(max_device_memory="1GB")
x = ms.Tensor([10,20])
y = ms.Tensor([40,50])
b = x +y

结果:
在这里插入图片描述
通过对这个配置进行配置,可以灵活设置任务所需显存的大小,并且可以根据显存消耗情况进行多任务的并行运行。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: YoloV5是一种常用的目标检测算法,而COCO128是一个较小的COCO数据集子集,包含了128个类别。下面是使用YoloV5训练COCO128数据集的基本步骤: 1. 下载COCO128数据集,包括训练集、验证集和测试集。 2. 安装YoloV5,并将其与COCO128数据集集成。 3. 调整YoloV5的超参数,例如学习率、批量大小、训练时长等。 4. 对YoloV5进行训练,可以使用命令行工具或者使用现有的训练脚本。 5. 对训练结果进行评估和调优,查看模型的准确率和损失值,并对模型进行调整。 6. 最后,使用训练好的模型进行目标检测,可以将其集成到自己的应用程序或者服务中。 需要注意的是,训练一个准确率较高的模型需要耗费大量时间和计算资源,并且需要具备一定的编程和机器学习技能。如果您是初学者,可以从学习基础的目标检测算法和数据集开始,逐步提升自己的能力。 ### 回答2: Yolov5是一个非常流行的目标检测算法。它可以检测相对较小的物体,并且在准确率和速度之间取得了一个很好的平衡。COCO(Common Objects in Conex)数据集是一个广泛使用的目标检测数据集,包含了80种对象。在这篇文章中,我们将了解如何使用Yolov5来训练COCO128数据集。 COCO128数据集是COCO数据集的一个子集。它包含了128张图像,每张图像都有5种不同类的已标注目标。我们需要将它们分成训练和测试。我们可以使用提供的脚本将数据集转换为Yolov5所需的格式。 首先,我们需要下载Yolov5,并安装依赖关系。然后,我们可以使用COCO128的文件夹作为我们的数据集目录。我们需要在目录中创建3个txt文件,分别是train.txt,val.txt和test.txt,来存放训练、验证和测试集的文件名。我们可以使用以下命令获得文件名列表: ``` ls **/*.jpg > train.txt ``` 我们还需要创建一个class.names文件来存放数据集中所有类别的名称。在我们的情况下,我们需要将以下内容保存为class.names文件: ``` bird bus car cat dog ``` 然后,我们需要创建一个class_map.json文件,将COCO128数据集中的类别映射到Yolov5中。我们可以使用以下代码作为class_map.json文件的内容: ``` { "bird": 0, "bus": 1, "car": 2, "cat": 3, "dog": 4 } ``` 接下来,我们需要在Yolov5的配置文件中进行一些更改。我们需要将类别数目更改为5,并在训练和测试集中添加一些路径。我们可以使用以下命令修改Yolov5的配置文件: ``` nano yolov5/models/yolov5s.yaml ``` 我们可以在最后一行添加以下内容: ``` nc: 5 train: ../../dataset/coco128/train.txt val: ../../dataset/coco128/val.txt test: ../../dataset/coco128/test.txt ``` 现在我们准备开始训练了。我们可以使用以下命令开始训练: ``` python train.py --batch-size 16 --cfg models/yolov5s.yaml --data ../../dataset/coco128.yaml --weights weights/yolov5s.pt --cache --sync-bn ``` 通过运行上面的命令,我们可以使用大小为16的批处理,同步跨GPU进行训练,并将Yolov5s的预训练权重指定为yolov5s.pt。在训练期间,我们可以使用tensorboard来监视训练进度和模型性能。我们可以使用以下命令启动Tensorboard: ``` tensorboard --logdir runs ``` 最后,我们可以使用以下命令对模型进行测试: ``` python test.py --weights runs/train/exp/weights/best.pt --data ../../dataset/coco128.yaml --img 640 --conf 0.4 --iou 0.5 --task val --batch-size 16 ``` 在这个命令中,我们使用最佳的权重进行测试,并在测试时使用一个图像大小为640,置信度为0.4,重叠度为0.5的IOU阈值。我们还使用大小为16的批次。测试完成后,我们将得到一个JSON格式的输出文件,其中包含测试结果,包括指标和预测结果。 综上所述,这是如何训练COCO128数据集使用Yolov5的步骤。它涵盖了数据集转换,配置文件更改,训练,测试和性能评估。虽然在本文中我们使用的是COCO128数据集,但是如果您有足够的硬件资源,您也可以尝试使用完整的COCO数据集进行训练。 ### 回答3: YOLOv5是近年来应用最为广泛的目标检测算法之一,它是由Ultralytics开发的一种基于深度学习技术的目标检测算法。YOLOv5具有快速、高效、准确等特点,因而得到了广泛的应用。 在训练YOLOv5时,需要准备对应的数据集,其中包括图像及其对应的标注文件。以COCO128数据集为例,该数据集包含128张彩色图像,每张图像中包含一个目标,标注信息保存在JSON文件中。在进行训练之前,需要将COCO128数据集转化为YOLOv5需要的格式,即将标注信息转化为对应的坐标值与目标类别。 具体地,可以使用提供的pycocotools库中的相关函数来完成数据集的转化。然后,使用YOLOv5提供的训练脚本进行训练。在训练之前,可以选择使用预训练模型进行迁移学习,从而提高模型的收敛速度和准确性。此外,还可以根据需要调整模型的相关参数,如学习率、批次大小等。 在模型训练完成后,可以使用训练好的模型对新的图像进行目标检测,即通过给定一张图像,检测其中是否存在目标,并输出目标的类别、坐标等信息。此外,还可以评估模型的性能,如计算准确率、召回率等指标,从而对模型的性能进行评估和优化。 总之,训练YOLOv5模型需要准备对应的数据集和标注文件,进行数据预处理和格式转化,然后使用训练脚本进行模型训练。在训练完成后,可以使用训练好的模型进行目标检测,并对模型的性能进行评估和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值