-
## pip安装onnx,解决Could not build wheels for onnx which use PEP 517 and cannot be installed directly  ### 解决办法:经过百度查得:安装onnx需要先安装依赖 ``` pip3 install numpy pip3 install protobuf sudo apt-get install protobuf-compiler libprotoc-dev pip3 install onnx pip3 install skl2onnx ```  
-
【功能模块】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、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
1. 下载安装MindSpore 最新版本。2. 根据快速入门-初学入门--张量操作性能低,求助后通过设置device_target="CPU"规避。详情见问题单:https://gitee.com/mindspore/mindspore/issues/I3P1WI3. 个人邮箱 boychenyikun@163.com
-
在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之前使用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.numpy.tri()函数示例代码在CPU上无法运行【操作步骤&问题现象】1、按照示例代码,出现 AttributeError: module 'mindspore.numpy' has no attribute 'tri' 错误。2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【功能模块】【操作步骤&问题现象】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
-
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
-
需要用ops.Pack来代替,但官方文档中Pack已经弃用
-
【操作步骤&问题现象】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、要实现上述需求应该如何操作?
-
代码地址: 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
-
【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
####【问题描述】 在黑白图片上色python样例上进行修改,推理出的图片如下左图,右图为原图,可见推理结果图片只得到部分的图像。  #### 【问题处理过程】 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()函数进行浅拷贝,解决了以上的问题。  **附录:“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”的方式,是因为重新在内存中排列数据的非常耗时的。
-
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调小一些。
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签