首页 > 解决方案 > Keras Conv1D 层在哪个轴上工作?

问题描述

我正在用 Keras 编写一个模型来进行时间序列分析。我发送到神经网络的信息结构是(samples, timesteps, features)

我的想法是在网络设计上分三个步骤。第一步有一个(或一些)Conv1D 层,然后是 LSTM 的另一个步骤,最后是一些 Dense 层。

对于第一层(Conv1D),如何选择将执行卷积的轴?我正在尝试在时间步长轴上这样做,但我不确定是否有类似的东西

model = Sequential()
model.add(Conv1D(180, 60, padding="same", strides=5, activation="relu"))

将使用时间步长轴,或者使用不同的轴。

标签: pythontensorflowkerasdeep-learningconv-neural-network

解决方案


默认情况下,它应用到具有时间步长的轴。

import tensorflow as tf

timesteps = 7
features = 10

inputs = tf.random.uniform(shape=(100, timesteps, features), maxval=1, dtype=tf.float32)
filters = tf.random.uniform(shape=(3, 1, 1), maxval=1, dtype=tf.float32)

print(tf.keras.layers.Conv1D(filters=5, kernel_size=(3,))(inputs).shape)
(100, 5, 5)

得到的形状是(n_samples, time_steps - (kernel_size - 1), filters)


推荐阅读