You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CuPy数组填充报错TypeError:不允许隐式转换为NumPy数组

解决CuPy中cp.pad()的TypeError问题

问题原因

CuPy的cp.pad()函数的pad_width参数要求传入Python原生的嵌套序列类型(如列表、元组),不支持直接传入CuPy数组。哪怕你的CuPy数组b内容格式完全符合要求,函数内部会尝试隐式转换为NumPy数组,触发了CuPy禁止隐式转换的规则,从而抛出错误。

解决方案

将CuPy数组b转换为Python原生嵌套列表即可,使用.tolist()方法(比.get()更直接,无需转成NumPy数组):

import cupy as cp
a = cp.random.rand(294, 302, 372)
b = cp.asarray([[5, 5], [5, 5], [2, 2]])
# 将b转换为Python列表
cp.pad(a, b.tolist(), 'symmetric')

说明

  • .tolist()会把CuPy数组直接转换成对应的Python嵌套列表,完全满足pad_width参数的格式要求。
  • 不需要使用.get()(它会把CuPy数组转成NumPy数组),因为我们只需要Python序列,不需要中间的NumPy数组对象。

内容的提问来源于stack exchange,提问作者Laurids

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 14:37:03