Sou novato em ML. Estou tentando implementar um modelo do artigo "Reconhecimento de estilo de natação e contagem de voltas usando um smartwatch e aprendizado profundo" ( https://doi.org/10.1145/3341163.3347719 ). A entrada do modelo consiste em 11 canais de dados em janela com tamanho de 180. Mas após a primeira camada conv e pooling máximo eles têm tensor que consiste em 11 camadas e tamanho de janela é igual a 59, mas há também outra dimensão com 64 mapas de recursos. Mas os autores usaram apenas conv1d com tamanho de kernel 3x1.
Não consegui implementar esse kernel usando nn.Conv1d. Como eu posso fazer isso?
Uma convolução com tamanho de kernel
3x1
não é uma conversão 1D, é uma conversão 2D:Veja uma inferência com uma
180x11
entrada de canal único:Isso corresponde ao formato da saída "Conv. Layer 1" mostrada na figura acima.