特性分析helps u further~|昇思MindSpore特性FAQ

本文解答了关于MindSpore的一系列常见问题,包括模型格式互换、PyNative与Graph模式的区别、跨平台运行、硬件支持、模型转换及自动并行等。MindSpore支持在Ascend、GPU和CPU上运行,提供统一API,但不直接兼容其他框架的模型文件。MindSpore模型需转换为特定格式才能在不同硬件上运行,如Ascend 310上需转换为OM模型。
摘要由CSDN通过智能技术生成

Q1: 导出MindIR格式的时候,input=np.random.uniform(...)是不是固定格式?

A1: 不是固定格式的,这一步操作是为了创建一个输入,以便于构建网络结构。export里只要传入正确的shape即可,使用np.ones和np.zeros创建都是可以的。

Q2: MindSpore现支持直接读取哪些其他框架的模型和哪些格式呢?比如PyTorch下训练得到的pth模型可以加载到MindSpore框架下使用吗?

A2: MindSpore采用Protobuf存储训练参数,无法直接读取其他框架的模型。对于模型文件本质保存的就是参数和对应的值,可以用其他框架的API将参数读取出来之后,拿到参数的键值对,然后再加载到MindSpore中使用。比如想用其他框架训练好的ckpt文件,可以先把参数读取出来,再调用MindSpore的save_checkpoint接口,就可以保存成MindSpore可以读取的ckpt文件格式了。

Q3: PyNative模式和Graph模式的区别?

A3: 通过下面四个方面进行对比:

1.网络执行:两个模式使用的算子是一致的,因此相同的网络和算子,分别在两个模式下执行时,精度效果是一致的。由于Graph模式运用了图优化、计算图整图下沉等技术,Graph模式执行网络的性能和效率更高;

2.场景使用:Graph模式需要一开始就构建好网络结构,然后框架做整图优化和执行,比较适合网络固定没有变化,且需要高性能的场景;

3.不同硬件(Ascend、GPU和CPU)资源:都支持这两种模式;

4.代码调试:由于PyNative模式是逐行执行算子,用户可以直接调试Python代码,在代码中任意位置打断点查看对应算子的输出或执行结果。而Graph模式由于在构造函数里只是完成网络构造,实际没有执行,因此在construct函数里打断点无法获取对应算子的输出,只能先指定算子进行打印,然后在网络执行完成后查看输出结果。

Q4: 使用MindSpore在GPU上训练的网络脚本可以不做修改直接在Ascend上进行训练

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值