af::constant
在 ArrayFire 库中,af::constant
函数用于创建一个所有元素都相同的新数组。函数接口为
template<typename T>
array constant(T val, const dim_t d0, const dim_t d1, const dim_t d2, const dim_t d3, const af_dtype ty=(af_dtype)dtype_traits<T>::ctype);
举例如下
af::array S12 = af::constant(0, 2 , 2 , 2, 1, c32); //2*2的元素全部是0的矩阵, 第3维是2,第四维是1,数据类型为c32
af_print(S12);
af::identity
在 ArrayFire 库中,af::identity
函数用于创建一个单位矩阵,即对角线元素为 1,其他元素为 0 的方阵。函数接口为
AFAPI array identity(const dim_t d0, const dim_t d1, const dim_t d2, const dim_t d3, const dtype ty=f32);
举例如下
af::array i = af::identity(2, 2, c32); //2*2的单位矩阵, 第3维是1,第四维是1,数据类型为c32
af_print(i);
af::array S122 = af::identity(2, 2, 2, 2, c32); //2*2的0矩阵, 第3维是2,第四维是2,数据类型为c32
af_print(S122);
af::randu
在 ArrayFire 库中,af::randu
函数用于生成一个给定维度大小的数组,其元素是从均匀分布中随机抽取的。生成的随机数在 [0, 1)
区间内,这意味着它们可以取到 0 但不包括 1。函数接口为
AFAPI array randu(const dim_t d0, const dim_t d1, const dim_t d2, const dim_t d3, const dtype ty=f32);
举例如下
af::array i1 = af::randu(2, 2, c32); //2*2的随机矩阵, 第3维是1,第四维是1,数据类型为c32
af_print(i1);
如果你想生成可重复的随机数序列,你可以通过设置随机数种子来实现:
// 设置随机数种子
af::setSeed(123);
// 使用相同种子生成随机数组,结果将每次都相同
af::array consistentRandArray = af::randu(5, 3);