random_choice
random_choice是一种用于从集合中按概率随机选择元素的算法。在计算机科学中,随机选择是一种常见的操作,它可以用于诸如随机采样、随机排列、蒙特卡罗模拟等应用中。
随机选择算法的核心思想是从给定的集合中随机选择一个元素:对于一个和为1的输入,按概率随机选择一个元素,并返回该元素的索引。
接口定义
def random_choice(arr: np.ndarray, seed: int)->List[int]
该函数接收numpy数组和随机数种子,返回random_choice计算的结果。
输入参数
参数 |
类型 |
说明 |
|---|---|---|
arr |
ndarray |
数据类型支持FP32,维度支持1D和2D。维度为2D时,形状需满足(1, N)、(N, 1)。 |
seed |
int |
随机数种子,seed=-1时,随机数种子由系统根据当前时间戳生成;seed!=-1时,随机数种子为传入的值。 |
返回值
类型 |
说明 |
|---|---|
List[int] |
长度为1,如果发生异常,返回[-1]。 |
示例
>>> import numpy as np >>> from libkdnn_ext import random_choice >>> a = np.random.rand(1, 70336).astype(np.float32) >>> a = np.abs(a) >>> t = a.sum(axis=1) >>> a = a / t >>> random_choice(a, -1) array([17630], dtype=int32) >>> random_choice(a, 2) array([49333], dtype=int32)
父主题: 算子定义