序列数据建模与生成:从RNN到GAN
一、RNN模型的文本生成评估
在完成RNN模型的训练后,我们可以对其进行评估,以给定的短字符串为起点生成新的文本。
1. 概率转换与随机采样
训练好的RNN模型为每个唯一字符返回大小为80的对数几率(logits)。通过softmax函数,这些对数几率可以轻松转换为下一个字符出现的概率。为了预测序列中的下一个字符,我们可以选择对数几率值最大的元素,这等同于选择概率最高的字符。但为了避免模型总是生成相同的文本,我们使用 tf.random.categorical() 函数从输出中随机采样。
以下是一个简单的示例,展示如何从三个类别 [0, 1, 2] 中生成随机样本,输入对数几率为 [1, 1, 1] :
import tensorflow as tf
tf.random.set_seed(1)
logits = [[1.0, 1.0, 1.0]]
print('Probabilities:', tf.math.softmax(logits).numpy()[0])
samples = tf.random.categorical(
logits=logits, num_samples=10)
tf.print(samples.numpy())
输出结果显示,在给定的对数几率下,各个类别具有相同的概率。如果我们改变对数几率为 [1, 1, 3] ,则类别2的出现次数会更多: <
从RNN到GAN的序列建模与生成
超级会员免费看
订阅专栏 解锁全文
997

被折叠的 条评论
为什么被折叠?



