#tensorflow #keras #deep-learning
Вопрос:
Это мои сигнальные данные
Длина каждого образца данных равна = 64. Сумма данных о поездах составляет =49572
length=len(x_train)
model = tf.keras.models.Sequential([
tf.keras.layers.Conv1D(32, 3, activation='relu', input_shape=(length,64)),
tf.keras.layers.MaxPooling1D(3),
tf.keras.layers.Conv1D(64, 3, activation='relu'),
tf.keras.layers.MaxPooling1D(3),
tf.keras.layers.Conv1D(128, 3, activation='relu'),
tf.keras.layers.MaxPooling1D(3),
tf.keras.layers.Conv1D(128, 3, activation='relu'),
tf.keras.layers.MaxPooling1D(3),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(29, activation='softmax')
])
Я хочу создать модель CNN для данных сигналов. Итак, я использую Conv1d
.
Как узнать input_shape из моих данных?
Ответ №1:
Из Conv1D
документации keras:
При использовании этого слоя в качестве первого слоя в модели укажите аргумент input_shape (кортеж целых чисел или нет, например (10, 128) для последовательностей из 10 векторов 128-мерных векторов или (Нет, 128) для последовательностей переменной длины 128-мерных векторов.
Судя по вашему изображению, похоже, что ваши данные являются простыми 1-мерными, значит length
1
, в вашем случае они должны быть равны.
Подумайте об length
измерении как о цветовом канале изображения в случае 2D свертки. Таким образом, черно-белые изображения имеют только одно цветовое измерение , width x height x 1
в то время как изображения RGB имеют 3 цветовых канала, следовательно width x height x 3
.
Аналогично, если вы работаете с временными рядами и 1D свертками, у вас может быть более одного сигнала, например, температура атмосферное давление влажность, измеряемые в течение дня в течение каждой минуты. Тогда ваш сигнал будет иметь форму 1440 x 3