问题描述
假设您有一个具有 n_classes
个可能类别的时间序列分类任务,并且您希望输出每个时间步长(如 seq2seq)的每个类别的概率。我们如何使用 Conv1D 网络实现多步多类分类?
如果使用 RNN,它将类似于:
# input shape (n_samples,n_timesteps,n_features)
layer = LSTM(n_neurons,return_sequences=True,input_shape=(n_timesteps n_features))
layer = Dense(n_classes,activation="softmax")(layer)
# objective output shape (n_samples,n_classes)
keras 会知道,由于 LSTM 层正在输出序列,因此它应该将 Dense
层包裹在 Timedistributed
层周围。
我们如何实现相同的但使用 Conv1D 层?我想我们需要手动将最后一个Dense层用时间分布包裹起来,但是我不知道之前如何构建网络以输出序列
# input shape (n_samples,n_features)
layer = Conv1D(n_neurons,3,input_shape=(n_timesteps n_features))
# ... ?
# can we use a Flatten layer in this case?
layer = Timedistributed(Dense(n_classes,activation="softmax"))(layer)
# objective output shape (n_samples,n_classes)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)