cupy数组赋值

2019-11-26  本文已影响0人  胜负55开

给数组进行初始化时,numpy确实要比cupy好用!因为numpy完全认识python自带的各种数据类型,如列表、元组等等;但是cupy一般只认识自己的数据类型!—— 这就导致二者在"赋值方式"上会有一点儿差别,直接看例子:

import numpy as np
import cupy as cp

# 用numpy可以直接用"加列表"来赋值:
w1 = [1, 2, 3]
w_np = np.zeros( (3,1,3) ) + w1

# 用cupy不能用"列表"来赋值,必须是"同数据类型"的一维数组:
w11 = cp.array([w1])
w_cp = cp.zeros( (3,1,3) ) + w11

即:cupy的赋值必须是用cupy自己的数组来赋值!不能直接用列表!否则会报如下的错误:

TypeError: Unsupported type <class 'list'>

其实,这种赋值要求并无坏处!它会使得你的数据类型从头至尾都是统一的:cupy.core.core.ndarray数据类型,不会在计算过程中的某部出现numpy数据类型与cupy数据类型不相容的情况!—— 我们只需在所有计算完成的最后,用cupy.asnumpy()转换回numpy即可。

上一篇 下一篇

猜你喜欢

热点阅读