Я работаю с сверточными слоями в Керасе и нашел этот блестящий вопрос . Я предполагаю, что следующий код:
model.add(Conv1D(filters=5, kernel_size=4, padding='same', activation='relu'))
создаст 5 фильтров, каждый из которых имеет размер 4. Таким образом, если мой (1-D) ввод будет выглядеть следующим образом:
[x_0,x_1,x_2_x_3,x_4]
, я получу следующий вывод:
[o_{00},o_{01}}
[o_{10},o_{11}}
[o_{20},o_{21}}
[o_{30},o_{31}}
[o_{40},o_{41}}
Здесь [x_0, x_1, x_2_x_3, x_4] представляет мою входную последовательность, а o_ {00} обозначает выход первого окна фильтра первого фильтра, содержащего 4 элемента, а o_ {01} обозначает выходной сигнал второе окно фильтра первого фильтра, содержащее 4 элемента и т.д ...
Я прав до сих пор?
Теперь, если бы все фильтры содержали одинаковые числа, это не имело бы никакого смысла, и поэтому я предполагаю, что все созданные фильтры должны содержать разные числа. Но как создаются эти фильтры? Они просто заполнены случайными числами в Керасе или есть какой-нибудь сложный алгоритм в работе?
Большое спасибо за помощь.