Я новичок в нейронной сети. У меня есть набор данных о 3D-положениях суставов (6400 * 23 * 3) и ориентациях в кватернионах (6400 * 23 * 4), и я хочу предсказать углы суставов для всех 22 суставов и 3 плоскостей движения (6400 * 22 * 3). Я попытался создать модель, однако она не будет работать, поскольку входные данные не соответствуют выходной форме, и я не могу понять, как ее изменить.
мой код
import scipy
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv1D, MaxPooling2D, Dense, Flatten
from tensorflow.keras.utils import to_categorical
Jaload = scipy.io.loadmat('JointAnglesXsens11MovementsIforlængelse.mat')
Orload = scipy.io.loadmat('OrientationXsens11MovementsIforlængelse.mat')
Or = np.array((Orload['OR'][:,:]), dtype='float')
Ja = np.array((Jaload['JA'][:,:]), dtype='float')
Jalabel = np.array(Ja)
a = 0.6108652382
Jalabel[Jalabel<a] = 0
Jalabel[Jalabel>a] = 1
Ja3d = np.array(Jalabel.reshape(6814,22,3)) # der er 22 ledvinkler
Or3d = np.array(Or.reshape(6814,23,4)) # der er 23 segmenter
X_train = np.array(Or3d)
Y_train = np.array(Ja3d)
model = Sequential([
Dense(64, activation='relu', input_shape=(23,4)),
Dense(64, activation='relu'),
Dense(3, activation='softmax'),])
model.summary()
model.compile(loss='categorical_crossentropy', optimizer='adam') # works
model.fit(
X_train,
to_categorical(Y_train),
epochs=3,)
Запуск model.fit возвращается с: ValueError: Целевой массив с формой (6814, 22, 3, 2) был передан для вывода формы (Нет, 3) при использовании в качестве убытка categorical_crossentropy
. Эта потеря предполагает, что цели будут иметь ту же форму, что и выходные данные.