如何为Keras中的每个时间步应用不同的致密层

如何为Keras中的每个时间步应用不同的致密层,keras,neural-network,recurrent-neural-network,keras-layer,gated-recurrent-unit,Keras,Neural Network,Recurrent Neural Network,Keras Layer,Gated Recurrent Unit,我知道应用时间分布(稠密)在所有时间步上应用相同的稠密层,但我想知道如何为每个时间步应用不同的稠密层。时间步数不是可变的 注:我已经看到了,似乎找不到答案您可以使用本地连接层 本地连接层字作为一个密集层连接到每个内核大小时间步(本例中为1) 根据摘要,LocallyConnected层使用的变量数为 (输出尺寸*(输入尺寸+偏差))*时间步长或(8*(4+1))*10=400 换一种说法:上面的局部连接层表现为10个不同的密集层,每个层连接到其时间步长(因为我们选择kernel_size为1)。

我知道应用时间分布(稠密)在所有时间步上应用相同的稠密层,但我想知道如何为每个时间步应用不同的稠密层。时间步数不是可变的


注:我已经看到了,似乎找不到答案

您可以使用本地连接层

本地连接层字作为一个密集层连接到每个
内核大小
时间步(本例中为1)

根据摘要,LocallyConnected层使用的变量数为
(输出尺寸*(输入尺寸+偏差))*时间步长
或(8*(4+1))*10=400

换一种说法:上面的局部连接层表现为10个不同的密集层,每个层连接到其时间步长(因为我们选择kernel_size为1)。这些50个变量的块中的每一个都是一个形状权重矩阵(输入尺寸、输出尺寸)加上一个大小偏差向量(输出尺寸)

还请注意,给定(序列长度,n特征)的输入形状,
densite(输出尺寸)
Conv1D(输出尺寸,1,1)
是等效的

i、 e.这种模式:

def make_model():
  inp = Input((sequence_length, n_features))
  h1 = Conv1D(8, 1, 1)(inp)
  out = Flatten()(h1)
  model = Model(inp, out)
def make_model():
  inp = Input((sequence_length, n_features))
  h1 = Dense(8)(inp)
  out = Flatten()(h1)
  model = Model(inp, out)
这个模型:

def make_model():
  inp = Input((sequence_length, n_features))
  h1 = Conv1D(8, 1, 1)(inp)
  out = Flatten()(h1)
  model = Model(inp, out)
def make_model():
  inp = Input((sequence_length, n_features))
  h1 = Dense(8)(inp)
  out = Flatten()(h1)
  model = Model(inp, out)

都一样。

谢谢您的澄清!