小编Jon*_*Jon的帖子

如何将视频功能从CNN传递到LSTM?

通过convnet传递视频帧并获得输出要素图后,如何将该数据传递到LSTM?另外,如何通过CNN将多个帧传递给LSTM?
在其他作品中,我想用CNN处理视频帧以获得空间特征.然后我想将这些特征传递给LSTM以对空间特征进行时间处理.如何将LSTM连接到视频功能?例如,如果输入视频是56x56,然后当通过所有CNN层时,请说它是20:5x5.它们如何逐帧连接到LSTM?他们首先要通过一个完全连接的层吗?谢谢,乔恩

video lstm tensorflow

8
推荐指数
2
解决办法
2135
查看次数

如何为binary_crossentropy、activation=sigmoid和activation=softmax指定model.compile?

我正在尝试找出如何匹配activation=sigmoid正确activation=softmaxmodel.compile()损失参数。特别是那些与binary_crossentropy.

我研究了相关主题并阅读了文档。我还建立了一个模型并让它与 一起工作,sigmoid但没有softmax。我无法让它与“ from_logits”参数正常工作。

具体来说,这里说:

参数:
  • from_logits:是否output预期为 Logits 张量。默认情况下,我们认为output编码了概率分布。

这对我来说,如果你使用sigmoid激活,你想要“ from_logits=True”。对于softmax激活,默认情况下您需要“ from_logits=False”。这里我假设sigmoid提供logitssoftmax提供概率分布。

接下来是一些代码:

model = Sequential()
model.add(LSTM(units=128,
               input_shape=(n_timesteps, n_features), 
               return_sequences=True))
model.add(Dropout(0.3))
model.add(LSTM(units=64, return_sequences=True))
model.add(Dropout(0.3))
model.add(LSTM(units=32))
model.add(Dropout(0.3))
model.add(Dense(16, activation='relu'))
model.add(Dropout(0.3))
model.add(Dense(1, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)

请注意,最后一行正在使用sigmoid激活。然后:

model.compile(optimizer=optimizer,
              loss='binary_crossentropy',  
              metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它使用默认的“from_logits=False”,它期望概率分布。

如果我执行以下操作,则会失败:

model.compile(optimizer=optimizer,
              loss='binary_crossentropy',  
              metrics=['accuracy'],
              from_logits=True) # For 'sigmoid' in above …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow activation-function loss-function

5
推荐指数
1
解决办法
6207
查看次数