• [技术干货] pip3.7.5安装环境依赖onnxruntime、onnx、numpy、skl2onnx
    ## pip安装onnx,解决Could not build wheels for onnx which use PEP 517 and cannot be installed directly ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/07/105951xn0cx8hnnffahlcs.png) ### 解决办法:经过百度查得:安装onnx需要先安装依赖 ``` pip3 install numpy pip3 install protobuf sudo apt-get install protobuf-compiler libprotoc-dev pip3 install onnx pip3 install skl2onnx ``` ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/07/110212tzaryo8tsfew7uim.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/07/110307yirtiktytpun2mcp.png)
  • [算子编译] torch.from_numpy算子有没有对应迁移
    【功能模块】pytorch版本如下,不知道如标题所例算子有没有对应迁移video_sequence = np.array([self.transform(Image.open(frame)).numpy() for frame in clip])video_sequence = video_sequence.transpose(1, 0, 2, 3) video_sequence = torch.from_numpy(video_sequence)【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [活动体验] 新教程纠错-快速入门-初学入门-张量,按照教程步骤操作性能远低于numpy,通过求助后规避性能问题。
    1. 下载安装MindSpore 最新版本。2. 根据快速入门-初学入门--张量操作性能低,求助后通过设置device_target="CPU"规避。详情见问题单:https://gitee.com/mindspore/mindspore/issues/I3P1WI3. 个人邮箱 boychenyikun@163.com
  • [安装] mindspore跟numpy的版本配套
    在ubuntu 18.04 arm 昇腾310 Python3.7.5环境上安装mindspore,发现它会卸载numpy1.20.2版本,并去安装numpy1.17.5;MindSpore对numpy的版本要求必须是1.17.5吗?何时会支持高版本的numpy
  • [问题求助] 【PyACL】函数ptr_to_numpy应用时传参的ptr应该如何传入?
    【功能模块】PyACL【操作步骤&问题现象】在调用ptr_to_numpy之前使用dvpp对单张jpg图片进行resize得到一个256*256的AclImage对象frame,现在想要将这个frame转换为numpy数组,参考开发者文档之后欲使用ptr_to_numpy函数实现该步骤,于是写了语句fr=acl.util.ptr_to_numpy(id(frame),(256,256,3),2)但是经过测试只要对该fr中的值进行赋值修改操作就会报“段错误(核心已转储)”,没有其他报错,查阅后怀疑是指针操作引起的错误,于是对fr进行打印调试,结果发现每次运行fr的结果都在变化,但是最初的输入图像是不变的,转换后的fr不应该变化,怀疑id(frame)传入的并不是文档中要求传入的数据首地址。那么ptr_to_numpy函数应该如何传入需要的数据首地址,或者说这个函数应该如何正确使用?
  • [执行问题] mindspore mindspore.numpy.tri()在CPU上无法运行
    【功能模块】mindspore.numpy.tri()函数示例代码在CPU上无法运行【操作步骤&问题现象】1、按照示例代码,出现  AttributeError: module 'mindspore.numpy' has no attribute 'tri' 错误。2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【200DK产品】【TBE功能】跑ADD 的UT测试,报numpy错误
    【功能模块】【操作步骤&问题现象】1、Mindstudio 2.3.3自带的 custom 工程,运行里面的tbe2、测试add算子的UT3、 Run Unittests in add,报错我的环境变量:export install_path=$HOME/Ascend/ascend-toolkit/20.0.RC1/x86_64-linux_gcc7.3.0export PATH=/usr/local/python3.7.5/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$PATHexport PYTHONPATH=${install_path}/atc/python/site-packages/te:${install_path}/atc/python/site-packages/topi:$PYTHONPATHexport LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATHexport ASCEND_OPP_PATH=${install_path}/oppexport DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux_gcc7.3.0export NPU_HOST_LIB=$HOME/Ascend/ascend-toolkit/latest/arm64-linux_gcc7.3.0/acllib/lib64/stub我看了我的Ubuntu环境,Python安装的是3.7.5, 默认,我也用pip3安装了numpy因此,我添加了系统的环境变量:export PYTHONPATH=${install_path}/atc/python/site-packages/te:${install_path}/atc/python/site-packages/topi:/usr/local/python3.7.5/lib/python3.7/site-packages:$PYTHONPATH不过还是不行【截图信息】【日志信息】(可选,上传日志内容或者附件)Testing started at 上午11:31 .../home/gongjia/AscendProjects/demo_projects/custom/venv/bin/python /home/gongjia/MindStudio-ubuntu/plugins/python-ce/helpers/pycharm/_jb_unittest_runner.py --path /home/gongjia/AscendProjects/demo_projects/custom/tbe/testcases/ut/addLaunching unittests with arguments python -m unittest discover -s /home/gongjia/AscendProjects/demo_projects/custom/tbe/testcases/ut/add -t /home/gongjia/AscendProjects/demo_projects/custom/tbe/testcases/ut/add in /home/gongjia/AscendProjects/demo_projects/custom/tbe/testcases/ut/addRan 1 test in 0.015sFAILED (errors=1)ErrorTraceback (most recent call last):  File "/usr/lib/python3.7/unittest/case.py", line 59, in testPartExecutor    yield  File "/usr/lib/python3.7/unittest/case.py", line 628, in run    testMethod()  File "/usr/lib/python3.7/unittest/loader.py", line 34, in testFailure    raise self._exceptionImportError: Failed to import test module: test_addTraceback (most recent call last):  File "/usr/lib/python3.7/unittest/loader.py", line 436, in _find_test_path    module = self._get_module_from_name(name)  File "/usr/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name    __import__(name)  File "/home/gongjia/AscendProjects/demo_projects/custom/tbe/testcases/ut/add/test_add.py", line 20, in    from impl.add import add as add  File "/home/gongjia/AscendProjects/demo_projects/custom/tbe/impl/add.py", line 20, in    import te.lang.cce  File "/home/gongjia/Ascend/ascend-toolkit/20.0.RC1/atc/python/site-packages/te/te/__init__.py", line 47, in    import tvm  File "/home/gongjia/Ascend/ascend-toolkit/20.0.RC1/x86_64-linux_gcc7.3.0/atc/python/site-packages/te/te/tvm/__init__.py", line 27, in    from . import tensor  File "/home/gongjia/Ascend/ascend-toolkit/20.0.RC1/x86_64-linux_gcc7.3.0/atc/python/site-packages/te/te/tvm/tensor.py", line 20, in    from ._ffi.node import NodeBase, NodeGeneric, register_node, convert_to_node  File "/home/gongjia/Ascend/ascend-toolkit/20.0.RC1/x86_64-linux_gcc7.3.0/atc/python/site-packages/te/te/tvm/_ffi/node.py", line 24, in    from . import Object, register_, _set_class_node  File "/home/gongjia/Ascend/ascend-toolkit/20.0.RC1/x86_64-linux_gcc7.3.0/atc/python/site-packages/te/te/tvm/_ffi/.py", line 23, in    from .base import _FFI_MODE, _RUNTIME_ONLY, check_call, _LIB, c_str  File "/home/gongjia/Ascend/ascend-toolkit/20.0.RC1/x86_64-linux_gcc7.3.0/atc/python/site-packages/te/te/tvm/_ffi/base.py", line 25, in    import numpy as npModuleNotFoundError: No module named 'numpy'Process finished with exit code 1Assertion failedAssertion failedAssertion failedAssertion failed
  • [技术干货] SDC如何使用自己的算法,没有使用任何框架,只是用了opencv numpy库
    我使用的是传统的算法,没有使用caffe框架,没有使用深度学习,如何安装自己的算法呢 是不是直接通过Rusy studio直接转化呢求助
  • [技术干货] python利用numpy存取文件
    NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件tofile()和fromfile()tofile()将数组中的数据以二进制格式写进文件tofile()输出的数据不保存数组形状和元素类型等信息fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改import numpy as np   # 随机生成12个数字并将其有一维转换成3*4的矩阵形式 a = np.arange(12) print("一维数组:",a) a.shape = 3,4 print("3*4的矩阵:",a)   # 将数组中的数据以二进制格式写入到文件 a.tofile('a.bin') # fromfile在读取numpy文件时需要自己指定数据格式,并且原格式并为保存 b1 = np.fromfile('a.bin', dtype=np.float) # 按照float读取数据 b2 = np.fromfile('a.bin', dtype=np.int) # 按照int读取数据 b3 = np.fromfile('a.bin', dtype=np.int32) # 按照int32读取数据 print('float格式b1:{},\nint格式b2:{},\nint32格式b3:{}'.format(b1,b2,b3))   b3.shape = 3,4 print('b3:',b3)2. save() 和 load(),savez()NumPy专用的二进制格式保存数据,它们会自动处理元素类型和形状等信息如果想将多个数组保存到一个文件中,可以使用savez()savez()的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起名非关键字参数传递的数组会自动起名为arr_0、arr_1、...。savez()输出的是一个扩展名为npz的压缩文件,其中每个文件都是一个save()保存的npy文件,文件名和数组名相同load()自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为键获取数组的内容import numpy as np   a = np.arange(12) a.shape = 3,4# 将数据存储为npy/npznp.save('a.npy', a) np.save('a.npz', a) c = np.load('a.npy')print('save-load:',c)  # 存储多个数组b1 = np.array([[6, 66, 666],[888, 88,8]]) b2 = np.arange(0, 1.0, 0.1) c2 = np.sin(b2) np.savez('result.npz', b1,b2,sin_arry = c) c3 = np.load('result.npz') # npz文件时一个压缩文件print(c3)print("数组b1:{}\n数组b2:{}\n数组sin_arry:{}".format(c3['arr_0'],c3['arr_1'],c3['sin_arry']))原文链接:https://blog.csdn.net/weixin_39121325/article/details/85781878
  • [API使用] 官方1.1.0-ubuntu-GPU镜像中mindspore.numpy.stack和mindspore.ops.Stack方法
    需要用ops.Pack来代替,但官方文档中Pack已经弃用
  • [数据处理] 【MindSpore产品】【FileWriter功能】FileWriter如何写入numpy.ndarray
    【操作步骤&问题现象】1、Ubuntu 18.04 + MindSpore-gpu 1.0.12、希望使用:mindspore.mindrecord.FileWriter 生成.mindrecord文件时写入numpy.ndarray数据3、查看源码发现,add_schema() 仅支持数据类型:mindspore.mindrecord.shardutils.VALID_ATTRIBUTES = ["int32", "int64", "float32", "float64", "string", "bytes"]4、要实现上述需求应该如何操作?
  • [数据处理] 【mindspore】【自定义数据集】TypeError: args should be NumPy ndarray.
    代码地址: https://gitee.com/leidaowaijiao/cycle-gan运行src/dataset.pygetitem函数返回四个值,datasetGenerator里定义的也是4个column。(在horse2zebra里的trainA和trainB各放一点图片,我这里传不上去)错误记录:[WARNING] ME(134108:138412,MainProcess):2021-03-01-15:32:02.911.533 [mindspore\ops\operations\array_ops.py:2302] WARN_DEPRECATED: The usage of Pack is deprecated. Please use Stack. [ERROR] ME(134108:138412,MainProcess):2021-03-01-15:32:03.283.508 [mindspore\dataset\engine\iterators.py:172] Got runtime err: Thread ID 2 Exception thrown from PyFunc. TypeError: args should be NumPy ndarray. Got <class 'tuple'>. At:   D:\anaconda3\lib\site-packages\mindspore\dataset\transforms\py_transforms_util.py(53): compose   D:\anaconda3\lib\site-packages\mindspore\dataset\transforms\py_transforms.py(135): __call__   D:\anaconda3\lib\site-packages\mindspore\dataset\transforms\validators.py(259): new_method   D:/cyclegan/src/dataset.py(63): __getitem__   D:\anaconda3\lib\site-packages\mindspore\dataset\engine\datasets.py(3418): _cpp_sampler_fn Line of code : 213 File         : D:\jenkins\agent-working-dir\workspace\Compile_CPU_Windows\mindspore\mindspore\ccsrc\minddata\dataset\engine\datasetops\source\generator_op.cc . Traceback (most recent call last):   File "D:/cyclegan/src/dataset.py", line 84, in <module>     for data in dataset.create_dict_iterator():   File "D:\anaconda3\lib\site-packages\mindspore\dataset\engine\iterators.py", line 125, in __next__     data = self._get_next()   File "D:\anaconda3\lib\site-packages\mindspore\dataset\engine\iterators.py", line 177, in _get_next     raise err   File "D:\anaconda3\lib\site-packages\mindspore\dataset\engine\iterators.py", line 169, in _get_next     return {k: self._transform_tensor(t) for k, t in self._iterator.GetNextAsMap().items()} RuntimeError: Thread ID 2 Exception thrown from PyFunc. TypeError: args should be NumPy ndarray. Got <class 'tuple'>. At:   D:\anaconda3\lib\site-packages\mindspore\dataset\transforms\py_transforms_util.py(53): compose   D:\anaconda3\lib\site-packages\mindspore\dataset\transforms\py_transforms.py(135): __call__   D:\anaconda3\lib\site-packages\mindspore\dataset\transforms\validators.py(259): new_method   D:/cyclegan/src/dataset.py(63): __getitem__   D:\anaconda3\lib\site-packages\mindspore\dataset\engine\datasets.py(3418): _cpp_sampler_fn Line of code : 213 File         : D:\jenkins\agent-working-dir\workspace\Compile_CPU_Windows\mindspore\mindspore\ccsrc\minddata\dataset\engine\datasetops\source\generator_op.cc
  • [问题求助] 在Atlas200DK上安装numpy出现问题
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [交流分享] 应用开发过程中numpy copy()的那些“坑”
    ####【问题描述】 在黑白图片上色python样例上进行修改,推理出的图片如下左图,右图为原图,可见推理结果图片只得到部分的图像。 ![1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202101/08/174810h2vsjnmfbcn4xe7j.png) #### 【问题处理过程】 1、经初步排查代码问题后,暂未发现代码的错误,为了排除模型推理结果不正确的问题,这时我们通过使用msame工具进行辅助定位问题。具体步骤如下: - 使用img2bin工具( https://gitee.com/ascend/tools/tree/master/img2bin )生成模型推理所需的输入数据,以.bin格式保存。 - 使用msame工具( https://gitee.com/ascend/tools/tree/master/msame )加载上一步的bin文件为输入数据,进行推理并将推理结果以.bin格式保存。 - 使用以下命令加载推理结果进行后处理 ``` result = np.fromfile('xxx/20201225_181703_0/xingkong1_output_0.bin', dtype=np.float32) ``` 2、经过以上工具的实现,发现最后保存的结果是正确的。 3、这里我们可以再具体某一步来进行比较,即预处理保存为bin文件,推理结果保存为bin文件,后处理结果保存为bin文件,通过和msame工具的对应的三个文件进行比较,我们可以分析出问题出现的步骤。 ####【问题解决】 1、经过预处理的bin文件进行比对,发现了预处理这里出现了问题。这里要注意,img2bin工具的resize使用的是等比缩放 ``` def resize_img(args, input_img): old_size = input_img.shape[0:2] target_size = [args.height, args.width] ratio = min(float(target_size<i>)/(old_size<i>) for i in range(len(old_size))) new_size = tuple([int(i*ratio) for i in old_size]) img_new = cv.resize(input_img,(new_size[1], new_size[0])) pad_w = target_size[1] - new_size[1] pad_h = target_size[0] - new_size[0] top,bottom = pad_h//2, pad_h-(pad_h//2) left,right = pad_w//2, pad_w -(pad_w//2) resized_img = cv.copyMakeBorder(img_new, top, bottom, left, right, cv.BORDER_CONSTANT, None,(0, 0, 0)) #resized_img = cv.resize(input_img, (args.width, args.height)) return resized_img ``` 我们要改成一样的处理方式,这样比对才有意义。 2、排查预处理代码,发现代码中使用了transpose()函数,问题出在了这个函数上。使用transpose().copy()函数进行浅拷贝,解决了以上的问题。 ![2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202101/08/174835lzbit7n2brdme1d8.png) **附录:“lazy”的 transpose() 转置** 参考文章:https://zhuanlan.zhihu.com/p/101864303 **numpy中的转置transpose()是非常“lazy”的,即不对内存中的数据进行重排,仅仅改变读取方式。** ``` a.shape = [1,2,3] transpose_scheme = [2,1,0] # 维度0与2交换位置 b = np.transpose(a, axes=transpose_scheme) # 此时 b.shape 虽然变成了 [3,2,1] # 但是 b 与 a 在内存的排布是一样的 ``` transpose()等效于:在读取/写入函数函数外,包了一个能改变维度顺序的函数装饰器。 之所以采用这种“lazy”的方式,是因为重新在内存中排列数据的非常耗时的。
  • [教程] ModelArts JupyterLab常见问题解决办法
    kernel Restarting:可能是因为内存占满而导致Kernel重启,可以尝试切换更高版本内存的硬件规格。如果切换到高硬件规格仍然出现该错误,请参考下一条问题的解决办法。报错内存已满或者“CUDA error: out of memory”:这类内存满了或显存满了的错误原因是正在运行中的案例脚本太多了,关掉一些正在运行的脚本即可释放内存或显存,操作方法如下:进入到如下页面,检查后台正在运行的脚本,点击SHUT DOWN关闭不需要运行的脚本kernel died:可以参考使用Jupyter Notebook为什么会kernel died?无法修改numpy版本:预置环境可能有多个numpy版本,需要卸载多次,直到将所有的numpy版本卸载干净才能安装新的numpy。卸载命令:pip uninstall numpy -y安装命令:pip install numpy==1.15.4训练时报错cuda已满:可以将batch_size调小一些。