TF24——TF描述循环计算层


TF24——TF描述循环计算层

TF描述循环计算层

tf.keras.layers.SimpleRNN(记忆体个数,activation='激活函数',return_sequence=是否每个时刻输出ht到下一层)
activation='激活函数'(不写,默认使用tanh)
return_sequence=True 各时间步输出ht
return_sequences=False 仅最后时间步输出ht(默认)

一般,最后一层的循环核用False,仅在最后一个时间步输出ht,中间层循环核用True,每个时间步都把ht输出给下一层

  • 例:SimpleRNN(3,return_sequences=True)

    这句话定义了一个具有三个记忆体的循环核,这个循环核会在每个时间步输出ht

return_sequences =True

循环核各时刻会把ht推送到下一层,循环核在每个时间步输出ht,可以用这张图表示

image-20220321131024312

return_sequences =False

循环核仅在最后一个时刻把ht推送到下一层,从图上可以看到,中间的时间步循环核,没有输出ht,只有最后一个时间步循环核输出ht

image-20220321131445146

注意:API对于送入循环层的数据维度是有要求的,要求送入循环层的数据是三维的

入RNN时,x_train维度:
[送入样本数,循环核时间展开步数,每个时间步输入特征个数]

例:

image-20220321131737520

一共要送入RNN层两组数据,每组数据经过一个时间步就会得到输出结果,每个时间步送入三个数值,输入循环层的数据维度就是[2,1,3]

image-20220321131944416

这个例子中只有一组数据,分四个时间步送入循环层,每个时间步送入两个数值,输入循环层的数据维度就是[1,4,2]