Поведение Conv1D в Керасе (размеры тензоров)

1

Мой вопрос касается размеров тензоров, входящих в слой Conv1D в Керасе. Форма ввода должна быть (партия, шаги, каналы). У меня есть, например, данные акселерометра, где я получаю сигнал времени для каждой оси. Я хотел бы сделать вывод для временных окон длиной 50, поэтому один образец для вывода имеет форму (50, 3).

Теперь, если я использую слой Conv1D в качестве первого слоя для этих данных с kernel_size = 10 и filters = 64, результат первого слоя в одном окне данных будет иметь форму (41, 64). Я полностью понимаю, что появляется 41, так как это число выборок, которое возникает в результате свертки сигнала длиной 50 с ядром длины 10. Однако я не совсем уверен, где три оси моего акселерометра находятся в этих данных. Я бы больше ожидал следующего поведения:

input_shape = (пакет, шаги, каналы), output_shape = (пакет, steps_after_conv, каналы, фильтры)

Кто-нибудь может объяснить такое поведение Кераса? Я не совсем понял это из документации.

Теги:
tensorflow
keras

1 ответ

0

Изображение 174551

Как показано на рисунке выше (Изображение предоставлено: http://followtheart.info/kareff-Mon_15_14.html), в операции convolution в CNN каждый фильтр свертывается по всем каналам (три канала в случае RGB-изображения) для расчета выходной стоимости. Таким образом, в вашем случае 64 фильтров каждый фильтр будет принимать значения из всех входных каналов в своем поле восприятия. Следовательно, ваш выход будет иметь выходы из 64 фильтров независимо от количества каналов, которые у вас есть на входе.

Для пакета изображений (batch_size, num_channels, height, width) выходные данные будут иметь форму (batch_size, num_filters, height_after_conv, width_after_conv).

  • 1
    Это интересно ... Это означает, что каждый из фильтров фактически содержит полностью независимый фильтр для каждого канала, результаты этих отдельных фильтров, примененных к их соответствующим каналам, суммируются в конце вычисления, чтобы составить результат для этого конкретный фильтр.
  • 0
    @ Крис, да .. это еще один способ взглянуть на это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню