Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras:了解可培训LSTM参数的数量_Python_Keras_Deep Learning_Lstm_Recurrent Neural Network - Fatal编程技术网

Python Keras:了解可培训LSTM参数的数量

Python Keras:了解可培训LSTM参数的数量,python,keras,deep-learning,lstm,recurrent-neural-network,Python,Keras,Deep Learning,Lstm,Recurrent Neural Network,我在第166行之后运行了包含以下代码的程序: m = 1 model=Sequential() dim_in = m dim_out = m nb_units = 10 model.add(LSTM(input_shape=(None, dim_in), return_sequences=True, units=nb_units)) model.add(TimeDistributed(Dense(activati

我在第166行之后运行了包含以下代码的程序:

m = 1
model=Sequential()
dim_in = m
dim_out = m
nb_units = 10

model.add(LSTM(input_shape=(None, dim_in),
                    return_sequences=True, 
                    units=nb_units))
model.add(TimeDistributed(Dense(activation='linear', units=dim_out)))
model.compile(loss = 'mse', optimizer = 'rmsprop')
在预结束对model.summary的调用时,我看到以下输出:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_4 (LSTM)                (None, None, 10)          480       
_________________________________________________________________
time_distributed_4 (TimeDist (None, None, 1)           11        
=================================================================
Total params: 491
Trainable params: 491
Non-trainable params: 0
我知道时间分布层的11个参数只是由nb_单位权重加上一个偏差值组成

现在,对于LSTM层: 说:

在我的例子中,如果输入_size=1,输出_size=1,那么对于10个单元中的每个单元,只会产生12个参数,总计120个参数。与报道的480相比,这是4倍。我的错误在哪里?

参数公式适用于整个层,而不是每Keras单位

引述:

[在Keras中],单位是指LSTM中内部单元的尺寸

Keras中的LSTM仅定义一个LSTM区块,其单元为单位长度


直接将output_size=10正确设置为480个参数。

您的错误在于对引用页面上给出的术语的解释,这是公认的误导。因此,参考文献中的n对应于您的nb_单元,这可以通过以下事实来理解:该变量以二次方式进入给定公式,因此对应于循环连接性,该连接性仅在nb_单元和LSTM单元之间发挥作用

因此,在上面的参数公式中设置output_size=n=10将得到所需的480个参数

params = 4 * ((input_size + 1) * output_size + output_size^2)