Closed zyf950120 closed 7 months ago
我根据官网的那个林业虫类识别的案例,将模型动态转为静态后进行部署,在输入都正确的情况下,请求返回的predictions只有[1,36,20,20]一个尺度的输出,正常应该是三个尺度[[1,36,20,20], [1,36,40,40], [1,36,80,80]]。在本地使用paddle.jit.load()加载模型,然后能够正确输出三个尺度,但是部署之后就会出错,只有一个。
后来看了paddleserver中model.py源码,发现默认输出第一个位置self.output_tensor = self.predictor.get_output_handle(output_names[0])
然后我就想着给输出再包一层,但又发现文档里说:“暂不支持依赖 Tensor 的控制流中,使用多层嵌套的 list.append 操作,因为框架底层的 LoDTensorArray = std::vector< LoDTensor > ,不支持两层以上 vector 嵌套”。
虽然能够去改一下model.py源码,但是总不能每启起来一个服务就去手动改一下,而且我也没有root权限还改不了。。
有没有大神能教教什么操作能再给输出包一层。。
Message that will be displayed on users' first issue
我根据官网的那个林业虫类识别的案例,将模型动态转为静态后进行部署,在输入都正确的情况下,请求返回的predictions只有[1,36,20,20]一个尺度的输出,正常应该是三个尺度[[1,36,20,20], [1,36,40,40], [1,36,80,80]]。在本地使用paddle.jit.load()加载模型,然后能够正确输出三个尺度,但是部署之后就会出错,只有一个。
后来看了paddleserver中model.py源码,发现默认输出第一个位置self.output_tensor = self.predictor.get_output_handle(output_names[0])
然后我就想着给输出再包一层,但又发现文档里说:“暂不支持依赖 Tensor 的控制流中,使用多层嵌套的 list.append 操作,因为框架底层的 LoDTensorArray = std::vector< LoDTensor > ,不支持两层以上 vector 嵌套”。
虽然能够去改一下model.py源码,但是总不能每启起来一个服务就去手动改一下,而且我也没有root权限还改不了。。
有没有大神能教教什么操作能再给输出包一层。。