Я обучил классификатор, который прогнозирует результат на основе массива из 15 входов, т.е. [[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15 ]]
где:
Значения x являются выходными данными другой модели машинного обучения (регрессора). Другими словами, выходы модели 1 являются входами модели 2. Я написал код для добавления массива 15 раз (по одному для каждого прогноза модели 1), а затем вызвал вторую модель для прогнозирования выходных данных на основе входных данных.
Шаги: -
1- загрузка видео и обнаружение лиц внутри видео
2- Запуск детектора, затем вычисление уравнения на основе детектора
3- сохранение 15 последовательных значений уравнений (15 обнаружений + вычисление уравнения, соответствующего каждому обнаружению)
4-Загрузка 15-го уравнения во вторую модель
value=[]
while True:
ret, frame = cap.read()
frame = imutils.resize(frame, width=500)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
rects = detector(frame, 0)
for rect in rects:
shape = predictor(img, rect)
shape = face_utils.shape_to_np(shape)
equation = shape[0]+shape[1]
value.append(equation)
if len(value==15):
model2.predict(value)
Проблема с ним приводит к массиву вот так
[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15] (1D массив, а не 2D). Есть идеи, как сделать это как матрицу? Спасибо.