Python 在Tensorflow中,权重按什么顺序保存在LSTM内核中
我查看了Tensorflow中的Python 在Tensorflow中,权重按什么顺序保存在LSTM内核中,python,tensorflow,lstm,recurrent-neural-network,Python,Tensorflow,Lstm,Recurrent Neural Network,我查看了Tensorflow中的LSTMCell保存的权重。 它有一个大的内核和偏差权重 内核的维度是 (input_size + hidden_size)*(hidden_size*4) 据我所知,这是封装4个输入到隐藏层仿射变换以及4个隐藏到隐藏层变换 所以应该有4个大小的矩阵 input_size*hidden_size 和4号 hidden_size*hidden_size 有人能告诉我或告诉我TF保存这些文件的代码,这样我就可以将内核矩阵分解成更小的矩阵。在tensorflow
LSTMCell
保存的权重。
它有一个大的内核和偏差权重
内核的维度是
(input_size + hidden_size)*(hidden_size*4)
据我所知,这是封装4个输入到隐藏层仿射变换以及4个隐藏到隐藏层变换
所以应该有4个大小的矩阵
input_size*hidden_size
和4号
hidden_size*hidden_size
有人能告诉我或告诉我TF保存这些文件的代码,这样我就可以将内核矩阵分解成更小的矩阵。在tensorflow 1.5中,LSTM变量在
LSTMCell.build
方法中定义。源代码可以在以下位置找到:
self.\u内核=self.add\u变量(
_权重\变量\名称,
形状=[input_depth+h_depth,4*self.\u num\u units],
初始值设定项=self.\u初始值设定项,
分区器=可能的分区器)
self.\u bias=self.add\u变量(
_偏差变量名称,
形状=[4*自身数量单位],
初始值设定项=init_ops.zeros_初始值设定项(dtype=self.dtype))
正如您所看到的,只有一个[输入深度+h深度,4*self.\u num\u单位]
变量,而不是8个不同的矩阵,并且所有这些矩阵在一批中同时相乘
闸门的定义如下:
i、j、f、o=数组操作拆分(值=门输入,数量或大小拆分=4,轴=1)
在tensorflow 1.5中,LSTM变量在LSTMCell.build
方法中定义。源代码可以在以下位置找到:
self.\u内核=self.add\u变量(
_权重\变量\名称,
形状=[input_depth+h_depth,4*self.\u num\u units],
初始值设定项=self.\u初始值设定项,
分区器=可能的分区器)
self.\u bias=self.add\u变量(
_偏差变量名称,
形状=[4*自身数量单位],
初始值设定项=init_ops.zeros_初始值设定项(dtype=self.dtype))
正如您所看到的,只有一个[输入深度+h深度,4*self.\u num\u单位]
变量,而不是8个不同的矩阵,并且所有这些矩阵在一批中同时相乘
闸门的定义如下:
i、j、f、o=数组操作拆分(值=门输入,数量或大小拆分=4,轴=1)
权重的组合如另一个答案中所述,但顺序为:
其中,c
是上下文,h
是历史
input_c, input_h
new_input_c, new_input_h
forget_c, forget_h
output_c, output_h
有关守则如下:
权重的组合如另一个答案中所述,但顺序为: 其中,
c
是上下文,h
是历史
input_c, input_h
new_input_c, new_input_h
forget_c, forget_h
output_c, output_h
有关守则如下:
谢谢,这太完美了。我在这里也找到了同样的订单:谢谢,这太完美了。我在这里也发现了同样的顺序: