9、词嵌入、循环神经网络与序列到序列学习
2026/7/10 14:24:08 网站建设 项目流程

词嵌入、循环神经网络与序列到序列学习

1. 循环神经网络(RNN)输出处理

在处理RNN输出时,我们可以使用以下代码对输出进行形状调整:

output2 = tf.reshape(output,[batchSz*windowSz, rnnSz]) logits = matmul(output2,W)

这里的W是一个线性层(Wo),它将RNN的输出转换为图4.5中的对数概率(logits)。接着,我们可以将其传递给tf.nn.sparse_softmax_cross_entropy_with_logits,该函数会返回一个损失值的列向量,通过tf.reduce_mean可以将其缩减为一个单一的值。对这个最终值取指数,就能得到困惑度(perplexity)。

改变RNN输出的形状,一方面是为了便于教学,因为这样可以复用tf.matmul;另一方面是出于计算的考虑,它能使数据符合稀疏softmax所需的形状。不过,在其他情况下,下游计算可能需要原始形状,这时我们可以使用TensorFlow中处理多维张量的函数,例如:

tf.tensordot(outputs, W, [[2], [0]])

这段代码会在outputs的第二个分量(从0开始计数)和W </

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询