当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.symbol.contrib.rand_zipfian用法及代码示例


用法:

mxnet.symbol.contrib.rand_zipfian(true_classes, num_sampled, range_max)

参数

  • true_classes(Symbol) - 一维中的目标类。
  • num_sampled(int) - 随机抽样的类数。
  • range_max(int) - 可能的类数。

返回

  • samples(Symbol) - 采样的一维候选类int64类型。
  • expected_count_true(Symbol) - 一维真实类的预期计数float64类型。
  • expected_count_sample(Symbol) - 在一维中采样候选的预期计数float64类型。

从大约 log-uniform 或 Zipfian 分布中抽取随机样本。

此操作随机抽样num_sampled 候选整数范围[0,range_max)。 sampled_candidates 的元素是从基本分布中替换绘制的。

该算子的基本分布近似为 log-uniform 或 Zipfian 分布:

P(class) = (log(class + 2) - log(class + 1)) /log(range_max + 1)

当真实类大致遵循这样的分布时,此采样器很有用。例如,如果类表示按频率降序排序的词典中的单词。如果您的课程没有按频率递减排序,请不要使用此操作。

此外,它还返回每个真实类和采样类预计会出现的次数。

例子

>>> true_cls = mx.sym.Variable('true_cls')
>>> samples, exp_count_true, exp_count_sample = mx.sym.contrib.rand_zipfian(true_cls, 4, 5)
>>> samples.eval(true_cls=mx.nd.array([3]))[0].asnumpy()
array([1, 3, 3, 3])
>>> exp_count_true.eval(true_cls=mx.nd.array([3]))[0].asnumpy()
array([0.12453879])
>>> exp_count_sample.eval(true_cls=mx.nd.array([3]))[0].asnumpy()
array([0.22629439, 0.12453879, 0.12453879, 0.12453879])

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.symbol.contrib.rand_zipfian。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。