我打算使用神经网络(CNN,RNN等)以一种句子单位将一种语言翻译成另一种语言。我想知道这个网络是否会在不同的运行时给我们相同的句子。而且在运行时我们可以翻译很多句子吗?
假设我们有以下情况:
Runtime 1: sentence --- a
Runtime 2: sentence --- a
Runtime 3: sentence --- b
Runtime 4: sentence --- a, b, c, etc
NW将为我们提供哪些方案?谢谢!
答案 0 :(得分:1)
如果您有两个相同的神经网络(相同的结构和相同的权重),则推断是确定性的:两个相同的输入将提供相同的输出。如果您在神经网络的体系结构内使用某种随机性,例如,如果您使用Variational Autoencoder (VAE)或Generative Adversarial Network (GAN),那将是不正确的,因为您将学习并采样统计分布
对于第二个问题:神经网络将张量作为输入,并提供张量作为输出。输入可以是一维张量(矢量),二维张量(矩阵),甚至可以是666D张量(尽管不建议这样做)。最后,神经网络的推断只是一系列张量积。
学习线性代数时,您会了解到,在张量积中,始终可以将张量之一与其自身(或具有相同大小的另一个张量)堆叠在一起并带有特定尺寸,并且表达式将保持正确。因此,如果正确堆叠输入张量(我猜是对句子的单次编码),则可以将预测作为批处理运行。在这种情况下,您的输出张量(翻译句子的单次热编码)也将堆叠在一起。但是请注意,(1)这样的批处理应该适合内存,并且(2)批处理越大,将需要更多的计算。
答案 1 :(得分:0)
是的,只要您有2个不同的神经网络。我不是同一时间的专家,因为我只做过一次。