當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。