mindspore-使用modelzoo中的yolov4,在运行时报错

1、训练yolov4时,开启了训练时测试,即run_eval=True,在yolo.py的DetectionBlock中的construct中最后一行:

self.concat((box_xy, box_wh, box_confidence, box_probs))

在concat的时候报错数据类型不符:

ValueError: For 'Concat' the `x_type[1]` should be == x_type[0]: Tensor[Float32], but got Tensor[Float16].

2.尝试用cast函数都转换为 Tensor[Float16]后,可以concat,但是在其他的地方又报类型错误

平台信息:UBuntu/GPU

mindspore:1.2.0以及1.3.0

 上面转换Tensor[Float16]后,可以concat,那concat应该是没有问题的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现 YOLOv8 需要以下步骤: 1. 数据准备:首先需要准备用于训练和测试的数据集。数据集应包含用于训练和测试的图像和相应的标签文件。 2. 模型设计:YOLOv8 模型结构包括特征提取网络和检测头。特征提取网络使用 DarkNet53 网络结构,检测头使用多个卷积层和全连接层。 3. 损失函数:YOLOv8 使用交叉熵损失函数和坐标损失函数。 4. 训练模型:使用准备好的数据集对模型进行训练。在此过程,可以使用数据增强技术来增加训练数据集的大小。 5. 测试模型:使用测试数据集对训练好的模型进行测试,并计算模型的性能指标,如精度、召回率和 F1 值等。 6. 部署模型:将训练好的模型部署到实际应用,可以使用 MindSpore 提供的推理引擎进行部署。 以下是一个简单的 YOLOv8 模型实现代码: ``` import mindspore.nn as nn import mindspore.ops as ops class YoloV8(nn.Cell): def __init__(self): super(YoloV8, self).__init__() self.darknet53 = DarkNet53() self.detect_head = DetectHead() def construct(self, x): x = self.darknet53(x) x = self.detect_head(x) return x class DarkNet53(nn.Cell): def __init__(self): super(DarkNet53, self).__init__() self.conv1 = nn.Conv2d(3, 32, 3, pad_mode='same') self.bn1 = nn.BatchNorm2d(32) self.relu1 = nn.ReLU() self.pool1 = nn.MaxPool2d(2) # ... 其他卷积层和池化层 def construct(self, x): x = self.conv1(x) x = self.bn1(x) x = self.relu1(x) x = self.pool1(x) # ... 其他卷积层和池化层 return x class DetectHead(nn.Cell): def __init__(self): super(DetectHead, self).__init__() self.conv1 = nn.Conv2d(1024, 256, 1) self.bn1 = nn.BatchNorm2d(256) self.relu1 = nn.ReLU() self.conv2 = nn.Conv2d(256, 512, 3, pad_mode='same') self.bn2 = nn.BatchNorm2d(512) self.relu2 = nn.ReLU() self.conv3 = nn.Conv2d(512, 255, 1) def construct(self, x): x = self.conv1(x) x = self.bn1(x) x = self.relu1(x) x = self.conv2(x) x = self.bn2(x) x = self.relu2(x) x = self.conv3(x) return x ``` 通过上述代码我们就可以构建一个简单的 YOLOv8 模型了。需要注意的是,上述代码仅仅是一个简单的示例,实际应用还需要根据数据集的实际情况进行相应的调整。同时,为了获得更好的性能,还需要使用 MindSpore 提供的优化器和学习率调整策略进行训练。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值