1. 程式人生 > >tf.multinomial()用法解釋

tf.multinomial()用法解釋

tf.multinomial(logits, num_samples, seed=None, name=None)
看一個使用LSTM的程式碼,使用了這個函式,故學習下。
從multinomial分佈中取樣,樣本個數是num_samples,每個樣本被取樣的概率由logits給出

引數:
logits: 2-D Tensor with shape [batch_size, num_classes]. Each slice [i, :] represents the unnormalized log probabilities for all classes.2維量,shape是 [batch_size, num_classes],每一行都是關於種類的未歸一化的對數概率
num_samples

: 0-D. Number of independent samples to draw for each row slice.標量,表示取樣的個數,更重要的是,它限制了返回張量中元素的範圍{:0,1,2,…,num_samples-1 }

返回值:
The drawn samples of shape [batch_size, num_samples],注意元素的取值範圍取決於num_samples

示例:

import tensorflow as tf
samples = tf.multinomial(tf.log([[10., 10., 10.]]), 5)
with tf.Session(
) as sess: sess.run(samples) # 執行結果:array([[2, 1, 2, 2, 0]])

存在一個疑問:使用這個函式會直接跑滿GPU,並且在互動環境下執行完,依舊佔用GPU,退出互動環境後才釋放視訊記憶體