看了mindspore介绍,应该整体思路是和tensorflow2.0更接近的,或者说是融合了pytorch+tensorflow+numpy,也不能说不好,但是暂时还没看出来有哪些特别的优势。
下面是类似pytorch eager模式的使用例子:
import numpy as np
import mindspore as ms
from mindspore import nn, Tensor
ms.set_context(mode=ms.PYNATIVE_MODE) # 使用set_context进行动态图模式的配置
class Network(nn.Cell):
def __init__(self):
super().__init__()
self.flatten = nn.Flatten()
self.dense_relu_sequential = nn.SequentialCell(
nn.Dense(28*28, 512),
nn.ReLU(),
nn.Dense(512, 512),
nn.ReLU(),
nn.Dense(512, 10)
)
def construct(self, x):
x = self.flatten(x)
logits = self.dense_relu_sequential(x)
return logits
model = Network()
input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))
output = model(input)
print(output)
好奇为什么可以直接进行推理,dense中的w和b都还没有定义呢,查看一下:
import mindspore as ms
from mindspore import nn
# 创建一个Dense层
dense_layer = nn.Dense(28*28, 512)
# 打印初始化的权重和偏置
print("Weights:", dense_layer.weight.asnumpy())
print("Bias:", dense_layer.bias.asnumpy())
结果如下:
看起来是一些随机值。