Python 将mxnet转换为符号模型时出错

Python 将mxnet转换为符号模型时出错,python,deep-learning,mxnet,Python,Deep Learning,Mxnet,我在网络中使用卷积而不是洗牌运算 class ShuffleChannel(HybridBlock): 定义初始化(自我,组): 超级(ShuffleChannel,self)。\uuuuuu init\uuuuuuuuu() self.groups=组 def混合动力车前进(自身、F、x): #洗牌 #重塑((0,-4,self.groups,-1,-2)).swapax(1,2)。重塑((0,-3,-2)) #返回x #米努普 N、 C,H,W=x形状 通道每组=C//self.groups

我在网络中使用卷积而不是洗牌运算

class ShuffleChannel(HybridBlock):
定义初始化(自我,组):
超级(ShuffleChannel,self)。\uuuuuu init\uuuuuuuuu()
self.groups=组
def混合动力车前进(自身、F、x):
#洗牌
#重塑((0,-4,self.groups,-1,-2)).swapax(1,2)。重塑((0,-3,-2))
#返回x
#米努普
N、 C,H,W=x形状
通道每组=C//self.groups
conv_kernel=nd.zeros((C,C,1,1))
对于范围(C)中的k:
索引=(k%self.groups)*每个组的通道数+k//self.groups
conv_内核[k,索引,0,0]=1
返回nd.卷积(x,conv_kernel,no_bias=True,kernel=(1,1),num_filter=C)
在培训过程中,它工作得很好,我想将模型转换为符号格式。但我遇到了错误:

......
  File "E:\AntiSpoofing\shuffleNetv2-mxnet\shufflenetv2.py", line 27, in hybrid_forward
    N, C, H, W = x.shape
AttributeError: 'Symbol' object has no attribute 'shape'

我是否可以将输入“x”指定为ndarray格式或更改func代码?

您在hybrid_forward()中的代码不是“hybridizable”,即无法转换为符号图。符号不具有形状属性,但稍后将构造卷积滤波器。我不确定您希望实现什么,但是如果您知道apriori的形状,您可以在init中初始化过滤器,并在hybrid_-forward()中使用
如何调用hybrid_-forward