MindSpore数据增强-【TypeError: Invalid with type】错误

用户在数据增强时会定义Python function来实现自定义的数据增强,其中在操作输入数据时必须要了解输入数据的类型才能实现正确的数据增强。

用户尝试定义Python function实现裁剪图片四个角和中间,脚本如下:

在py_transform基本上再调用自定义的数据增强,脚本如下:

报错如下:

原因分析:

实际上报错信息中可以一步步定位出具体错误所在位置:

1. 错误发生位置在Map操作时传入的pyFunc,即自定义的Python数据增强函数。

2. 查看Python的函数调用栈,错误发生在corp_4_corner_1_center 函数调用的np.concatenate函数中。

3. 查看numpy.concatenate函数的API,如下:

numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")

其中a1, a2均为numpy.array,除了在axis指示的维度,其他维度的shape必须一致。

可以得出报错原因为函数的函数为PIL.Image对象,与期望的Numpy array不符合。

解决方法:

在np.concatenate函数前,将PIL.Image对象转为Numpy array。

总结:

1. 遇到报错时,阅读报错日志以及错误堆栈信息可以帮忙定位问题。

2. 调用第3方函数时,需要了解期望的入参的数据类型,不符合时需要做合适的转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值