python - 用cupy(python)计算矩阵的行列式
问题描述
我目前正在编辑代码以在 python 中与 Cupy 一起使用以进行 GPU 加速。大多数编辑都需要从 numpy 到 cupy 的直接交换(例如 cp.array 而不是 np.array),但有一些小例外。但是,我在使用这部分代码时遇到了问题,它可以与 numpy 一起使用,我不确定为什么我突然收到此错误。我有以下代码
ab = (b - a)
ac = (c - a)
ap1 = (p1 - a)
ap2 = (p2 - a)
其中 a,b,c,p1 和 p2 都是一维 Cupy 数组
从这里我想使用以下来计算行列式。
testP1 = 1 if cp.linalg.det([ab,ac,ap1]) >0 else 0
testP2 = 1 if cp.linalg.det([ab,ac,ap2]) >0 else 0
这在 numpy 中工作正常(输入是 numpy 而不是 cupy 数组),但是,我现在收到以下错误
AttributeError:“列表”对象没有属性“ndim”
解决方案
正如 g2i 所评论的,cupy 不会隐式转换为数组,而 numpy 会,因此必须显式转换为cupy数组
推荐阅读
- node.js - 如何更改 package.json 中的入口点?
- javascript - 从存储在 React 数据库中的字符串渲染 HTML
- python - 为什么 pip 声称安装的版本与我要求的不同?
- c++ - 知道模板参数在编译时是否为 const char*?
- python - pyspark:获取列表值的不同元素
- sql - 从选择创建表 - 任何刷新或自动更新的选项?
- list - 如何通过使用某种带有谓词的过滤器来创建对象列表
- php - Laravel 6:注册时如何将复选框值传递到数据库用户表中
- python - 对 pyinstaller 使用 --onefile 不会创建单个可执行文件,而是会不断创建目录
- r - 将列表列表转换为数据框