У меня есть вектор объектов длиной 2000 байтов. И вектор признаков формируется путем объединения векторов признаков некоторых основных признаков изображения. Например, в изображении rgb обрабатываются данные цвета r, в результате чего получается векторный 200-байтовый объект. После получения всех векторов базовых признаков формируется конечный вектор признаков путем объединения их вместе, как показано на следующем рисунке.
Модифицированный векторный элемент формирования
Проблема заключается в том, что все векторы объектов уже сохранены в виде простой карты памяти с размерами (2000, 100000). Теперь я построил модель keras с несколькими входами и несколькими общими слоями. Теперь вектор объекта необходимо разделить на 4 500 байтовых векторов, как показано на рисунке.
# imports
import numpy as np
# all input layers take 500 byte vector
model = Model(inputs = [input1, input2, input3, input4], outputs = [output])
x_train = np.memmap("x_train.dat", dtype = "float32", mode = 'r', shape=(2000, 100000))
y_train = np.memmap("y_train.dat", dtype = "float32", mode = 'r', shape=100000)
model.compile() # compiling
# now how can I split x_train into [500,500,500,500] as shown in figure?
model.fit(split(x_train), y_train)
Теперь вопрос в том, как разделить вектор по желанию, как показано на рисунке, без загрузки всех преобразованных векторов объектов в память?
Я могу упустить что-то очень простое. Но я не могу понять это сам.
Спасибо.