PaddlePaddle/PaddleHub

在windows图像风格迁移时候最后一步运行style_transfer.py出现报错, UnimplementedError: There are no kernels which are registered in the pad2d operator. [Hint: Expected kernels_iter != all_op_kernels.end(), but received kernels_iter == all_op_kernels.end().] (at ..\paddle\fluid\framework\operator.cc:2273) [operator < pad2d > error]

brant3479 opened this issue · 1 comments

  • 版本、环境信息
    1)PaddleHub和PaddlePaddle版本:我的paddlepaddle版本是2.6.0,paddlehub版本是2.4.0,stylepro_artistic版本是1.0.3,numpy版本是1.24.4
    2)系统环境:请您描述系统类型,例如Linux/Windows/MacOS/,python版本3.8
  • 复现信息:如为报错,请给出复现环境、复现步骤
    复现环境 windows11,集成显卡intel(R)Irs(R)xeGraphics,使用工具conda prompt,style_transfer.py代码为import paddlehub as hub
    import cv2

待转换图片的绝对地址

picture = 'D:\style_transfer\pic.jpg' # 注意代码中此处为双反斜杠

风格图片的绝对地址

style_image = 'D:\style_transfer\fangao.jpg'

创建风格转移网络并加载参数

stylepro_artistic = hub.Module(name="stylepro_artistic")

读入图片并开始风格转换

result = stylepro_artistic.style_transfer(
images=[{'content': cv2.imread(picture),
'styles': [cv2.imread(style_image)]}],
visualization=True
)
复现步骤,当我在conda prompt执行python style_transfer.py时候预期会创建新文件夹transfer_result,并将转换后的文件保存到该目录下,实际上出现问题conda提示pad2d中没有注册内核,运算符pad2d错误。 我的stylepro_artistic已经是最新1.0.3,paddlepaddle,paddlehub也都升级为最新

您好,paddle2.6已经移除了fluid.layers.pad2d的API,需要对paddle进行降级,另外推荐您用linux来使用paddlehub,以下是我的环境:

paddle-bfloat==0.1.7
paddle2onnx==1.1.0
paddleaudio==1.1.0
paddlefsl==1.1.0
paddlehub==2.3.1
paddlenlp==2.5.2
paddlepaddle-gpu==2.5.1.post117
paddlesde==0.2.5
paddleslim==2.6.0

代码为:

import paddlehub as hub
import cv2

# 待转换图片的相对地址
picture = './style_transfer/pic.jpg'
# 风格图片的相对地址
style_image = './style_transfer/fangao.jpg'

# 创建风格转移网络并加载参数
stylepro_artistic = hub.Module(name="stylepro_artistic")

# 读入图片并开始风格转换
result = stylepro_artistic.style_transfer(
                    images=[{'content': cv2.imread(picture),
                                'styles': [cv2.imread(style_image)]}],
                    visualization=True
)