- Comparación simple entre red neuronal convolucional y red neuronal recurrente
- CNN: después de extraer características con la ayuda de un kernel de convolución (kernel), se envía a una red posterior (como una red Dense completamente conectada) para clasificación, detección de objetivos y otras operaciones. CNN extrae información de dimensiones espaciales con la ayuda de núcleos de convolución , y se comparte el espacio de parámetros del núcleo de convolución.
- RNN: después de extraer las características con la ayuda del núcleo cíclico (célula), se envía a la red posterior (como la red Dense completamente conectada) para la predicción y otras operaciones. RNN extrae información de la dimensión del tiempo con la ayuda de núcleos recurrentes , y los parámetros del núcleo recurrente se comparten en el tiempo.
- TF describe la capa de cálculo cíclico : antes de enviarlo a RNN, la dimensión x_train es [la cantidad de muestras enviadas, la cantidad de pasos de expansión de tiempo del kernel cíclico y la cantidad de características de entrada en cada paso de tiempo]
1, tf.keras.layers.SimpleRNN
tf.keras.layers.SimpleRNN(记忆体个数, activation=‘激活函数’ , return_sequences=是否每个时刻输出ht到下一层)
activación='función de activación' (no escrito, tanh se usa de manera predeterminada) return_sequences=True genera h t
en cada paso de tiempo , return_sequences=False solo genera h t en el último paso de tiempo (predeterminado)
# 举例如下
SimpleRNN(3, return_sequences=True)
2, tf.keras.layers.Incrustación
tf.keras.layers.Embedding: capa de codificación de espacio vectorial de palabra
tf.keras.layers.Embedding(词汇表大小,编码维度)
词汇表大小:编码一共要表示多少个单词;
编码维度:用几个数字表达一个单词;
输入维度:二维张量[送入样本数,循环核时间展开步数]
输出维度:三维张量[送入样本数,循环核时间展开步数,编码维度]
# 举例如下
tf.keras.layers.Embedding(100, 3)
#对数字 1-100 进行编码,词汇表大小就是 100 ;每个自然数用三个数字表示,编码维度就是 3;所以 Embedding层的参数是 100 和 3。
# 比如数字[4] embedding 为 [0.25, 0.1, 0.11]。
en el RNN, podemos escribir
x_train = np.reshape(x_train, (len(x_train), 1))
# 之后送入代码块中,在model=tf.keras.Sequential中,首先写如下代码
Embedding(5, 2) # 表示一共有5个元素,每个元素用2个维度表示
3, tensorflow.keras.layers.LSTM
tensorflow.keras.layers.LSTM(记忆体个数, activation=‘激活函数’ , return_sequences=是否每个时刻输出ht到下一层)
activación='función de activación' (no escrito, tanh se usa de manera predeterminada) return_sequences=True genera h t
en cada paso de tiempo , return_sequences=False solo genera h t en el último paso de tiempo (predeterminado)
# 举例如下
model = tf.keras.Sequential([
LSTM(80, return_sequences=True),
Dropout(0.2),
LSTM(100),
Dropout(0.2),
Dense(1)
])
4, tensorflow.keras.layers.GRU
tensorflow.keras.layers.GRU(记忆体个数, activation=‘激活函数’ , return_sequences=是否每个时刻输出ht到下一层)
activación='función de activación' (no escrito, tanh se usa de manera predeterminada) return_sequences=True genera h t
en cada paso de tiempo , return_sequences=False solo genera h t en el último paso de tiempo (predeterminado)
# 举例如下
model = tf.keras.Sequential([
GRU(80, return_sequences=True),
Dropout(0.2),
GRU(100),
Dropout(0.2),
Dense(1)
])