创建nn.SequentialCell时使用OrderDict,其中key为Cell的名称,value为Cell。现在我想通过一个nn.SequentialCell的实例来获取里面的Cell以及它的名称,请问应该使用什么函数? 例如:
import mindspore.nn as nn
from collections import OrderedDict
d = OrderedDict()
d['relu'] = nn.ReLU()
d['conv'] = nn.Conv2d(3, 2, 3, pad_mode='valid', weight_init="ones")
seq = nn.SequentialCell(d)
我应该如何从seq中获得里面的Cell(即nn.ReLU和nn.Conv2d)以及它们的名称(即'relu'和'conv')呢?
****************************************************解答*****************************************************
查阅了官方文档对于nn.Cell的描述,发现其中有个接口应该能满足您的需求:name_cells。
以您给出的代码为基础,demo代码如下:
from mindspore import Tensor
import numpy as np
conv = seq.name_cells()['conv']
input = Tensor(np.random.randn(4, 3, 3, 3).astype(np.float32))
print(conv)
print(conv(input))