如何将多个向量发送到 SimpleRNN?

How to send multiple vectors to a SimpleRNN?

我有 'n' 没有。每个 'm' 大小的矢量。我需要将它们发送到 keras 的 SimpleRNN。应该发送向量,使得 RNN 的每个神经元都采用一个向量(例如:vector1 到 neuron1,vector2 t neuron2 等)以及先前输入向量的隐藏状态。

我试过将它们连接起来,但这会扭曲输入的性质。

input1 = Dense(20, activation = "relu")(input1)<br> input2 = Dense(20, activation = "relu")(input2)

我需要将这些向量(input1 和 input2)发送到 RNN。

您可以在 Tensorflow 中使用 tf.stack 或在 Keras 中使用 keras.backend.stack。这个运算符:

Stacks a list of rank-R tensors into one rank-(R+1) tensor

根据您的代码,Dense layers 可以按以下方式堆叠:

import tensorflow as tf

inps1 = tf.keras.layers.Input(shape=(30,))
inps2 = tf.keras.layers.Input(shape=(30,))
dense1 = tf.keras.layers.Dense(20, activation='relu')(inps1)
dense2 = tf.keras.layers.Dense(20, activation='relu')(inps2)

dense = tf.keras.layers.Lambda(lambda x: tf.stack([x[0], x[1]], axis=1), output_shape=(None, 2, 20))([dense1, dense2])

rnn = tf.keras.layers.SimpleRNN(100)(dense)