被export搞了好几天了,求帮助('Symbol' object has no attribute 'shape')

就是这个pspnet不能被hybridize。

那我如何用export导出json和param用于到原生mxnet进行部署呢

要用F.shape_array(x)代替x.shape,hybridize要用symbol有的API。

hybridize要用symbol有的API。
具体是哪个api呢,同时用F.shape_array(x)后,w和h都是没有的

def hybrid_forward(self, F, x):
, , h, w = x.shape

feat1 = self.upsample(F, self.conv1(self.pool(F, x, 1)), h, w)
feat2 = self.upsample(F, self.conv2(self.pool(F, x, 2)), h, w)
feat3 = self.upsample(F, self.conv3(self.pool(F, x, 3)), h, w)
feat4 = self.upsample(F, self.conv4(self.pool(F, x, 4)), h, w)
return F.concat(x, feat1, feat2, feat3, feat4, dim=1)

ndarray的shape_array可以直接获取shape,symbol返回的是计算图不能直接用做参数。
shape = F.shape_array(x)
h = shape.slice_axis(axis=0, begin=2, end=3).prod()
这里h是通过计算图输出的结果是可以用作参数的。

AssertionError: Argument data must have NDArray type, but got

请问如果是fc1层的输出,怎么获取它的shape呢。。。 实际中应该也是一个ndarry,不过定义的时候是一个symbol