Я использую язык программирования R и использую Keras API для создания функционала 1D CNN.
У меня есть матрица моего набора данных со следующими строками * объектов (6000 * 1024).
Входной слой устанавливается с использованием следующего кода:
input_layer = layer_input(shape = 1024, batch_shape = c(nrow(train_matrix),1024), dtype = 'float64')
и затем я создаю 1-й слой конвона следующим образом:
conv1 = input_layer %>% layer_conv_1d(filters = 32, kernel_size = 50, strides = 10, input_shape = 1024, batch_input_shape = list(NULL, 1024) ,dtype = 'float64', activation = 'relu' )
Но я получаю следующую ошибку:
Ошибка в py_call_impl (вызываемый, точки $ args, точки $ ключевые слова):
ValueError: вход 0 несовместим со слоем conv1d: ожидаемый ndim = 3, найденный ndim = 2
Я полагаю, это связано с тем, что слой 1D cnn ожидает ввода в следующем виде
Форма ввода: трехмерный тензор с формой: (batch_size, steps, input_dim)
Я понимаю, что мне нужно изменить свои данные как (NULL, nrow(train_matrix), 1
; поскольку это было предложено в различных ответах на одну и ту же проблему, возникающую для керас при использовании в Python.
Если я прав,
- какие значения я должен предоставить входному слою
- как мне изменить свои тренировочные данные?
- означает ли это, что мне также необходимо изменить данные теста?
также, если мое понимание неверно, что следует делать иначе?