• [数据处理] 【MS】【Tensor】MindSpore 的基础尚不完善
    MindSpore 和 Numpy 基础数据类型的对接竟然也会出现问题。```pythonimport numpy as npimport mindspore as msms.Tensor(["想要说爱你不容易"])  # 不成功ms.Tensor(np.array(["想要说爱你不容易"]))  # 成功,但后续训练时会失败```前者表示用户无法创建 String 类型的 Tensor,后者表示通过 np 能创建成功(元素为 String 类型),但后续训练时又一定会进行类型校验,没有办法传入 construct 里面。这种规范不统一的情况很伤脑筋。mindspore 的基础工作仍需要花大力气改进,希望不要再花费大功夫在引入不必要的各种新的边边角角的模型上,把基础体验改进下吧。
  • [安装] ascend910上安装mindspore失败
  • [其他问题] MindSpore如何实现自定义层并训练
    请问MindSpore是否有类似于tensorflow的keras.layers.Layer来继承去自定义Layer?我想实现一个类似于卷积层的Layer,并把它与relu、pooling层等结合构成网络训练
  • [执行问题] Ascend310服务器 使用mindspore出错
    **【功能模块】** mindspore/ccsrc/plugin/device/ascend/hal/device/ascend_memory_adapter.cc:52 **【操作步骤&问题现象】** 1、安装好环境后尝试使用mindspore 2、运行后显示无法获取设备HBM memory **【截图信息】** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20225/3/1651552034216575691.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20225/3/1651552045161177645.png)
  • [应用实践] 【MindSpore易点通】在云上使用MindSpore:云上训练和提交PR
    在云上使用MindSpore1、沙箱实验打开沙箱 链接,即可开始体验。今天咱来得早,名额较为充足。打开实验桌面。我们看到实验桌面有MNIST数据集和实验脚本。创建桶参数如下:①复制桶配置:不选②区域:华北-北京四;③桶名称:ms-lenet-train-0501;④数据冗余存储策略:多AZ存储⑤存储类别:标准存储;⑥桶策略:私有;⑦默认加密:关闭;⑧归档数据直读:关闭;其他参数默认(OBS桶名称需全局唯一,若出现以下提醒,自定义其他桶名称即可。需要记住此步骤中创建的桶名称,以便后续使用。)在创建的桶新建一个文件夹上传test和train修改lenet.py如下,将通道数改为1,然后保存退出修改dataset.py如下然后,将脚本上传,就可以开始实验了,此处不再赘述。2、Ascend910训练和Ascend310推理步骤1:准备训练数据1. 单击样例数据集 链接,跳转至“AI Gallery > 数据 > 四类花卉图像分类小数据集”页面。2. 单击“下载”跳转至下载页面详情页。1. 在下载详情页,填写参数。– 下载方式:选择“对象存储OBS服务”– 目标区域:选择“华北-北京四”– 目标位置:请选择一个空的OBS目录步骤2:订阅算法目前“ResNet50”算法发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后同步至ModelArts中。1. 在这里图像分类 订阅算法,2. 前往控制台,选择北京四步骤3:使用订阅算法创建训练作业(Ascend 910)但是,这个算法居然没有任何的发布版本,在5月1日订阅的根本创建不了训练任务。。。官网的文档又欺骗了我。还好,爷有预备的算法:图像分类-ResNet v1 50 在新版训练作业环境下创建训练作业,参数如下• “算法>我的订阅”:• “数据来源”:选择刚刚的数据集选择一个GPU训练完成步骤4:模型转换使用订阅算法训练所得的模型,需通过转换功能,转成适用于Ascend芯片的格式,即“om”格式。1. 在ModelArts管理控制台,选择“AI应用管理 > 模型转换”。2. 在模型转换作业列表页面,单击“创建任务”。在创建转换任务页面中,参考如下说明填写关键参数。本次使用的算法为ResNetv150算法(图像分类/TensorFlow/Ascend910训练),模型转换任务与ResNet50算法不一样的参数如下所示。“输入框架”:选择“TensorFlow”。“转换输入目录”:请选择训练作业输出路径下的“<输出路径>frozen_gragh”目录。“输出框架”:选择“MindSpore”。“转换输出目录”:请选择训练作业输出路径下的“<输出路径>/om/model”目录。“转换模板”:使用“TF-FrozenGraph-To-Ascend-C32”模板进行模型转换。“输入张量形状”:“images:1,224,224,3”“输入数据格式”:“NHWC”“转换输出节点”:“logits:0”万岁,成功啦~乌拉~步骤5:创建AI应用模型转换为om格式后,可采用“从模板中选择”的方式,创建AI应用。1. 在ModelArts管理控制台,选择“A应用管理 > AI应用 > 我的AI应用”。2. 配置如上步骤6:部署为在线服务(Ascend 310)AI应用创建成功后,可将此服务部署为在线服务,在部署时可使用Ascend 310芯片资源。1. 在“AI应用管理 >AI应用 >我的AI应用”列表中,单击AI应用名称进入详情页,单击右上角的“部署 > 在线服务”>在线服务”**页面单击“创建”,进入部署页面。2. 在“部署”页面,参考如下说明填写关键参数。1. 2. 3. 在线服务部署完成后,您可以单击服务名称进入服务详情页。– 访问服务:了解调用指南,获取API接口地址,可通过postman或使用curl命令发送请求,访问在线服务 。– 预测:单击“预测”页签,上传一个测试图片,进行预测。上传了一张webp,发现失败了。看来不能识别呢。上传了jpg就可以了。(第二个结果有点离谱;但这个不能怪我们的模型,要怪只能说我们的美女长的太像玫瑰了呢)步骤7:清除资源如果不再需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用。• 在“在线服务”页面,“停止”或“删除”刚创建的在线服务。• 在“AI应用”页面,“删除”刚创建的AI应用。• 在“训练作业New”页面,“删除”运行结束的训练作业。• 进入OBS,删除本示例使用的OBS桶及文件夹,以及文件夹的文件。把我们可爱的在线服务停止吧。3、如何参与社区建设?最重要的就是提交PR啦。那怎样提交PR呢?新建一个远程主仓创建一个文件,并用qmckw账号fork到qmckw下clone到本地我们现在想修改一下这个hello.pygit log # 查看目前的commitgit status#查看状态,我们已经修改了hello.pygit remote -v # 查看远程仓是否配置了主仓远程仓库并未配置主仓git remote add upstream https://gitee.com/csckw/remote-main-warehouse.gitgit add .git commit -m "first"这个时候,倘若我们又要修改这个py文件。这个时候,我们可以看到有两个commit,需要合并为一个。使用如下的命令。git rebase -i HEAD~2 将第二行的pick改为小写字母s保存退出后,进入如下界面,不用修改,直接i-esc-:q即可这个时候执行git log,就可以看到我们的commit已经合并为1个了。如果我们觉得可以在修改,比如下面我们再次修改了py文件。这个时候,用如下的命令,可以直接修改这个commit,而不用合并。git add .git commit --amend这个时候,代码已经上传到我们的远程主仓了。现在到我们自己的远程主仓界面,提交PR这个时候,在csckw也就是仓库拥有者的文件下提交审核。这样,这个pr变成了已合并的状态。任务就圆满完成了。同理,你可以去MindSpore的仓库提交PR,这里就不演示啦。CSDN分享:【MindSpore易点通】在云上使用MindSpore:云上训练和提交PR_irrationality的博客-CSDN博客
  • [安装] ascend310服务器安装mindspore出错
    ImportError: /home/HwHiAiUser/.local/lib/python3.7/site-packages/mindspore/lib/libmindspore_backend.so: undefined symbol: rtKernelLaunchWithFlagV2前面的一切工作都准备完成,只差最后一步验证,结果验证的结果是失败了。
  • [API使用] amct_mindspore量化后的air模型转om后推理精度错误
    【功能模块】Ascend910,mindspore1.5【操作步骤&问题现象】1、训练的resnet50模型转air载转om,在910上推理精度正常,有95%2、同样的模型使用amct_mindspore工具转成量化的air模型之后再转om推理就出问题了,精度为10%。问题是出在amct_mindspore转air步骤还是air转Om的步骤呢【截图信息】【日志信息】(可选,上传日志内容或者附件)日志信息是amct转量化air模型的。
  • [热门活动] 易学又易用,就在MindSpore v1.7 !
    经过社区开发者们的辛勤耕耘,我们马不停蹄地给大家递上昇思MindSpore最新的1.7版本。在此版本中我们持续提升框架易用性,简化安装过程,提供更丰富的文档和指导视频,帮助开发者快速上手;同时还提供了易用灵活的numpy模块,进一步提升昇思AI+科学计算的能力;此外,新版本还发布了计算机视觉工具库MindSpore Vision,并已支持一些主流网络,让开发者极速体验基于昇思的应用。详细了解请戳这里《易用灵活新起点,带给开发者新体验》奖品预览抽取30位达标用户!活动时间4月29日——5月22日活动方式本次活动干货分享范围为:1.7版本新特性相关的干货分享。将分享内容发布到MindSpore论坛的“活动体验”分类,并在评论区留下联系邮箱活动结束后获奖名单将在论坛——公告 板块公布。注意事项请勿刷帖,刷帖一律删帖并做无效参与处理。必须保证原创,抄袭按无效参与处理。请勿盗取他人截图或内容,一经发现做无效参与处理。版本相关分享必须与新特性相关,否则算作无效参与。最终解释权归MindSpore团队所有。
  • [其他问题] mindspore,resnet双卡训练报错
    飞腾+300T训练卡,麒麟V10 SP1操作系统mindspore1.6模型:resnet50问题现象:单卡训练没问题,双卡训练报错
  • [API使用] mindspore.ops.operations.math_ops.Square输入参数格式错误
    【功能模块】mindspore 1.5【操作步骤&问题现象】1、自定义损失函数,传入网络的输出和标签进行计算。2、mindspore.ops.operations.math_ops.Square使用时,运行报错如下。【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [热门活动] 我们需要你的参与!昇思MindSpore开发者满意度调查问卷!
    各位小伙伴们,大家好!非常感谢各位开发者持续关注MindSpore。 去年年底我们发起了一次开发者满意度调查问卷,当时很多人参与也提供了很多意见。根据去年满意度调查问卷的反馈,在2022年我们已发布了MindSpore1.6和1.7版本,提供了新特性也优化了部分功能。本次调查问卷主要针对新内容的满意度情况,因此,建议各位小伙伴先体验新版本再进行填写。问卷链接https://wj.qq.com/s2/10028480/5cca/调查时间2022.4.29-2022.5.15问卷大约会占用各位10分钟时间,希望大家能认真填写真实心声!当然为了答谢各位,我们也提供了奖品,参与即有机会获得奖励!奖品预览获奖名单会调查后公布,请关注MindSpore论坛:https://bbs.huaweicloud.com/forum/forum-1076-1.html
  • [数据加载及处理] 【MindSpore易点通】MindSpore加载图数据集
    加载图数据集MindSpore提供的mindspore.dataset模块可以帮助用户构建数据集对象,分批次地读取文本数据。图的概念通常一个图(graph) G是由一系列的节点(vertices) V以及边(eage)E组成的,每条边都连接着图中的两个节点,用公式可表述为:G = F(V, E),简单的图如下所示。图中包含节点V = {a, b, c, d},和边E = {(a, b), (b, c), (c, d), (d, b)},针对图中的连接关系通常需借助数学的方式进行描述,如常用的基于邻接矩阵的方式,用于描述上述图连接关系的矩阵C如下,其中a、 b、c、d对应为第1、2、 3、4个节点。数据集下载和转换(1) 数据集介绍常用的图数据集包含Cora、Citeseer、PubMed等原始数据集可以从ucsc网站进行下载,github提供的预处理后的数据集,GCN等公开使用Cora数据集主体部分(cora.content)2708条样本(节点),每条样本描述1篇科学论文的信息,论文都属于7个类别中的一个。每条样本数据包含三部分,依次为论文编号、论文的词向量(一个1433位的二进制)、论文的类别;引用数据集部分(cora.cites)包含5429行(边),每行包含两个论文编号,表示第二篇论文对第一篇论文进行了引用。数据集下载:下载预处理后的cora数据集目录如下:. └── cora ├── ind.cora.allx ├── ind.cora.ally ├── ind.cora.graph ├── ind.cora.test.index ├── ind.cora.tx ├── ind.cora.ty ├── ind.cora.x ├── ind.cora.y ├── trans.cora.graph ├── trans.cora.tx ├── trans.cora.ty ├── trans.cora.x └── trans.cora.y(2)数据集下载以下示例代码将cora数据集下载并解压到指定位置。!mkdir -p ./cora !git clone https://github.com/kimiyoung/planetoid !cp planetoid/data/*.cora.* ./cora !rm -rf planetoid(3)数据集格式转换数据集格式转换:将数据集转换为MindRecord格式,可借助models仓库提供的转换脚本进行转换,生成的MindRecord文件在./cora_mindrecord路径下。!git clone https://gitee.com/mindspore/models.git SRC_PATH = "./cora" MINDRECORD_PATH = "./cora_mindrecord" !rm -rf $MINDRECORD_PATH !mkdir $MINDRECORD_PATH !python models/utils/graph_to_mindrecord/writer.py --mindrecord_script cora --mindrecord_file "$MINDRECORD_PATH/cora_mr" --mindrecord_partitions 1 --mindrecord_header_size_by_bit 18 --mindrecord_page_size_by_bit 20 --graph_api_args "$SRC_PATH"报错,但命令行可以改: 环境切换 没得搞定啊!source activate py37_ms16 !python models/utils/graph_to_mindrecord/writer.py --mindrecord_script cora --mindrecord_file "$MINDRECORD_PATH/cora_mr" --mindrecord_partitions 1 --mindrecord_header_size_by_bit 18 --mindrecord_page_size_by_bit 20 --graph_api_args "$SRC_PATH"乖乖命令行试试。看来默认环境没有ms不行?source activate py37_ms16 python models/utils/graph_to_mindrecord/writer.py --mindrecord_script cora --mindrecord_file "./cora_mindrecord/cora_mr" --mindrecord_partitions 1 --mindrecord_header_size_by_bit 18 --mindrecord_page_size_by_bit 20 --graph_api_args "./cora"加载数据集MindSpore目前支持加载文本领域常用的经典数据集和多种数据存储格式下的数据集,用户也可以通过构建自定义数据集类实现自定义方式的数据加载。下面演示使用MindSpore.dataset模块中的MindDataset类加载上述已转换成mindrecord格式的cora数据集。(1)配置数据集目录,创建数据集对象。import mindspore.dataset as ds import numpy as np data_file = "./cora_mindrecord/cora_mr" dataset = ds.GraphData(data_file)(2)访问对应的接口,获取图信息及特性、标签内容。# 查看图中结构信息 graph = dataset.graph_info() print("graph info:", graph) # 获取所有的节点信息 nodes = dataset.get_all_nodes(0) nodes_list = nodes.tolist() print("node shape:", len(nodes_list)) # 获取特征和标签信息,总共2708条数据 # 每条数据中特征信息是用于描述论文i,长度为1433的二进制表示,标签信息指的是论文所属的种类 raw_tensor = dataset.get_node_feature(nodes_list, [1, 2]) features, labels = raw_tensor[0], raw_tensor[1] print("features shape:", features.shape) print("labels shape:", labels.shape) print("labels:", labels)数据处理MindSpore目前支持的数据处理算子及其详细使用方法。下面构建pipeline,对节点进行采样等操作。(1)获取节点的邻居节点,构造邻接矩阵。neighbor = dataset.get_all_neighbors(nodes_list, 0) # neighbor的第一列是node_id,第二列到最后一列存储的是第一列的邻居节点,如果不存在这么多,则用-1补齐。 print("neighbor:\n", neighbor)(2)依据节点的邻居节点信息,构造邻接矩阵。nodes_num = labels.shape[0] node_map = {node_id: index for index, node_id in enumerate(nodes_list)} adj = np.zeros([nodes_num, nodes_num], dtype=np.float32) for index, value in np.ndenumerate(neighbor): # neighbor的第一列是node_id,第二列到最后一列存储的是第一列的邻居节点,如果不存在这么多,则用-1补齐。 if value >= 0 and index[1] > 0: adj[node_map[neighbor[index[0], 0]], node_map[value]] = 1 print("adj:\n", adj)(3)节点采样,支持常见的多次跳跃采样与随机游走采样方法等。多跳邻接点采样如(a)图所示,当次采样的节点将作为下次采样的起始点;随机游走方式如(b)图所示,随机选择一条路径依次遍历相邻的节点,对应图中则选择了从Vi到Vj的游走路径。# 基于多次跳跃进行节点采样 neighbor = dataset.get_sampled_neighbors(nodes_list[0:21], [2], [0]) print("neighbor:\n", neighbor)# 基于随机游走进行节点采样 meta_path = [0] walks = dataset.random_walk(nodes_list[0:21], meta_path) print("walks:\n", walks)(4)通过节点获取边/通过边获取节点。# 通过边获取节点 part_edges = dataset.get_all_edges(0)[:10] nodes = dataset.get_nodes_from_edges(part_edges) print("part edges:", part_edges) print("nodes:", nodes) # 通过节点获取边 # nodes_pair_list = [(0, 1), (1, 2), (1, 3), (1, 4)] # edges = dataset.get_edges_from_nodes(nodes_pair_list) # print("edges:", edges)
  • [安装] mindspore源码安装后,import mindspore出错
    自己编译源码,已经能全局编译通过,得到新的.whl 文件,然后设置export SOURCE_CODE_PATH=$PWD #设置源码根目录的绝对路径 export PYTHONPATH=${SOURCE_CODE_PATH}:${PYTHONPATH} 最后运行 python -c "import mindspore; print(mindspore.__version__)" 报错信息:ImportError: myproject/mindspore/build/package/mindspore/lib/libmindspore_backend.so: undefined symbol: _Z4MishIN9mindspore7Float16EEvmPKT_PS2_P11CUstream_st我想知道这是什么情况,如何解决
  • [安装经验] 【MindSpore易点通】源码编译安装常见问题和解决办法
    在浏览论坛的过程中,发现很多用户在尝试源码编译安装的时候,总是遇到很多问题,导致最后的安装失败。仔细看了一下,问题很多都是类似的,为了让用户朋友们少踩坑,于是我根据论坛平时用户提问,整理了这一份源码编译安装常见问题和解决办法,希望可以帮到大家。准备工作 一定要首先确认系统环境信息,当前已发布的版本只确保在我们公布的环境下能正常安装与使用。编译依赖的第三方库默认是从GitHub下载的,国内下载GitHub比较慢,容易下载超时导致mindspore编译失败。Linux下编译的时候可以加上编译选项 -S on,Windows下编译设置环境变量FROM_GITEE=1,可以从国内gitee的镜像下载第三方依赖,可以提高下载以及编译速度。关于电脑上有多个Python版本的,请确认环境变量path配置的为python 3.7.5或我们已经支持的其他版本。 常见问题下载过程 1. 使用git下载不了,包直接用下载工具下载,解压后直接build失败。 A: 因为我们需要用git submodule下载组件,所以没法用下载压缩包的形式build  编译过程 1、源码编译MindSpore过程时间过长,或时常中断该怎么办? A: MindSpore通过submodule机制引入第三方依赖包,其中Protobuf依赖包(v3.13.0)下载速度不稳定,建议您提前进行包缓存。 2、源码编译时,报错MD5 does not match,应该怎么办?A: 这种报错可能是在编译的时候由于网络问题导致一些第三方库下载中断,之后重新编译的时候,该文件已经存在但是不完整,在校验MD5的时候失败。解决方法是: 删除.mslib缓存路径中的相关第三方库,然后重新编译。 3、编译失败后,应该清理哪些路径以确保上次失败的编译结果不会影响到下一次编译? A: 在编译MindSpore时,如果: 第三方组件下载或编译失败,例如icu4c的patch动作失败返回错误信息Cmake Error at cmake/utils.cmake:301 (message): Failed patch:,则进入编译目录下的build/mindspore/.mslib目录,或由MSLIBS_CACHE_PATH环境变量指定的第三方软件安装目录,并删除其中的对应软件。其他阶段编译失败,或打算删除上一次编译结果,完全重新编译时,直接删除build目录即可。 环境依赖 1、如何改变第三方依赖库安装路径? A: 第三方依赖库的包默认安装在build/mindspore/.mslib目录下,可以设置环境变量MSLIBS_CACHE_PATH来改变安装目录,比如 export MSLIBS_CACHE_PATH = ~/.mslib。 2、 MindSpore要求的配套软件版本与Ubuntu默认版本不一致怎么办? A: 当前MindSpore只提供版本配套关系,需要您手动进行配套软件的安装升级。(注明: MindSpore要求Python3.7.5和gcc7.3,Ubuntu 16.04默认为Python3.5和gcc5,Ubuntu 18.04默认自带Python3.7.3和gcc7.4)。 3、环境上安装了Python3.7.5,环境变量设置正确,编译MindSpore时仍然报错Python3 not found,应该怎么办? A: 可能是因为当前环境上的Python未包含动态库。编译MindSpore需要动态链接Python库,因此需要使用开启动态库编译选项的Python3.7.5,即在源码编译Python时使用./configure --enable-shared命令。 4、gcc版本高于7.3.0,但编译mindspore的代码库,会报错出现版本必须高于7.3.0的问题,重新卸载安装gcc问题没有解决。 A: 环境上之前的版本有卸载残留,卸载当前版本,然后全局搜索一下删除相关残留文件。也可以在build/mindspore/CMakeFiles/{cmake_version}/xxx.cmake中看一下是否有如下相关信息,确认路径以及版本号,根据路径删除相关旧版本的残留文件,然后重新安装指定gcc7.3版本后再进行编译。 5、本地确认安装了Python3 但是cmake找不到A: 无法正确找到python3.7.5可能有以下几个原因: 1> 未安装python dev库:在环境上执行python3 -m sysconfig | grep LIBRARY安装正确的情况下应该可以看到如下输出PY3LIBRARY = "libpython3.so"如果没有以上输出则说明该python3环境缺少编译需要的动态库,请安装对应版本的python3-dev库cmake版本与代码版本不正确:python3-dev库安装正确,但结果仍然错误的情况下,查看cmake版本:cmake --version如果cmake版本为3.16,且MindSpore代码来自release分支或超过一个月以前的master分支,请更新cmake到更高版本,或将MindSpore代码更新到最近的master分支,再尝试编译。  经验分享源码编译安装系列(一):在Windows上进行源码编译安装MindSpore源码编译安装系列(二):安装MindSpore CPU版本(含第三方依赖)源码编译安装系列(三):在Linux上体验源码编译安装MindSpore GPU版本MindSpore Windows 编译系列(一):如何在Windows下编译MindSpore CPU版本 mindspore1.3.0的编译环境之GCC7.3.0的安装mindspore 1.3.0版本GPU环境下源码编译的正式工作——完整的编译过程mindspore 1.3.0版本GPU环境下源码编译前的准备工作——依赖环境的安装在Linux上体验源码编译安装MindSpore GPU版本(超详细)问题求助解决路径非注意事项提到的问题可以通过查询论坛 问题求助-安装或官网 FAQ-安装来查询同类问题的解决方式。如果您遇到了问题并成功解决,也可以分享相关经验到论坛 技术干货-安装经验《手把手安装教程》系列视频看这里。如果上述方式都没有解决您的问题,欢迎到论坛问题求助板块发帖求助,我们的技术支撑将在第一时间给您回复。欢迎补充本篇遗漏内容~
  • [活动体验] 使用MindSpore进行数据增强
    安装并import相关库import mindspore.dataset as dsimport osimport requestsimport tarfileimport zipfileimport matplotlib.pyplot as pltfrom mindspore.dataset.vision import Interimport mindspore.dataset.vision.c_transforms as c_vision数据准备使用以下函数下载Cifar10数据集1.  def download_dataset(url, target_path):2.      """download and unzip the data file"""3.      if not os.path.exists(target_path):4.          os.makedirs(target_path)5.      download_file = url.split("/")[-1]6.      if not os.path.exists(download_file):7.          res = requests.get(url, stream=True, verify=False)8.          if download_file.split(".")[-1] not in ["tgz", "zip", "tar", "gz"]:9.              download_file = os.path.join(target_path, download_file)10.         with open(download_file, "wb") as f:11.             for chunk in res.iter_content(chunk_size=512):12.                 if chunk:13.                     f.write(chunk)14.     if download_file.endswith("zip"):15.         z = zipfile.ZipFile(download_file, "r")16.         z.extractall(path=target_path)17.         z.close()18.     if download_file.endswith(".tar.gz") or download_file.endswith(".tar") or download_file.endswith(".tgz"):19.         t = tarfile.open(download_file)20.         names = t.getnames()21.         for name in names:22.             t.extract(name, target_path)23.         t.close()24.     print("The {} file is downloaded and saved in the path {} after processing".format(os.path.basename(url), target_path))下载Cifar10数据集1.  download_dataset("https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/cifar-10-binary.tar.gz", "./datasets")加载Cifar10数据集1.  DATA_DIR = "./datasets/cifar-10-batches-bin"2.   3.   # get 9 samples randomly4.   sampler = ds.SequentialSampler(num_samples=9)5.   mnist_dataset = ds.Cifar10Dataset(DATA_DIR, sampler=sampler)6.   7.   for data in mnist_dataset.create_dict_iterator():8.   print("Image shape: {}".format(data['image'].shape), ", Label: {}".format(label_names[data['label'].asnumpy()]))9.   10.  # show image11.  mnist_it = mnist_dataset.create_dict_iterator()12.  data = next(mnist_it)13.  plt.figure(figsize=(3, 3))14.  plt.imshow(data['image'].asnumpy().squeeze(), cmap=plt.cm.gray)15.  plt.title(label_names[data['label'].asnumpy()], fontsize=20)16.  plt.show()定义算子&图像增强          MindSpore支持多种算子,也有AutoAugment选项。本文使用Resize和RandomCrop        1.   resize_op = c_vision.Resize(size=(200, 200), interpolation=Inter.BILINEAR)        2.  auto_op = c_vision.AutoAugment()        3.  crop_op = c_vision.RandomCrop(100)        4.  transforms_list = [resize_op, crop_op]        5.  mnist_dataset = mnist_dataset.map(operations=transforms_list, input_columns=["image"])邮箱:986405925@qq.com