在建立RNN模型时,发现GRU层的参数个数和理论值不相符。
按照公式计算,GRU层的参数应该是 (32✖(32+1)+32✖32)✖3=6240,但是我的模型运行出来是6336,这是为什么呢?
求指点~~
from keras.models import Sequential
from keras import layers
from keras.optimizers import RMSprop
model = Sequential()
model.add(layers.Conv1D(32,5,activation ='relu',
input_shape=(None,float_data.shape[-1])))
model.add(layers.MaxPooling1D(3))
model.add(layers.Conv1D(32,5,activation='relu'))
model.add(layers.GRU(32,dropout=0.1,recurrent_dropout=0.5))
model.add(layers.Dense(1))
model.summary()
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1d (Conv1D) (None, None, 32) 2272
_________________________________________________________________
max_pooling1d (MaxPooling1D) (None, None, 32) 0
_________________________________________________________________
conv1d_1 (Conv1D) (None, None, 32) 5152
_________________________________________________________________
gru (GRU) (None, 32) 6336
_________________________________________________________________
dense (Dense) (None, 1) 33
=================================================================
Total params: 13,793
Trainable params: 13,793
Non-trainable params: 0
_________________________________________________________________
正确的计算方法是3*(32*(32+32+1)+32)=6336,你可能是忘了算偏置项