2017-08-19 3 views
0

J'ai essayé plusieurs fois et lu la réponse à la question semblable à moi, mais je n'ai toujours pas résolu.Erreur lors de la vérification d'entrée: acc_input attendu pour avoir 4 dimensions, mais a obtenu le tableau avec la forme (200, 3, 1)

Erreur lors du contrôle d'entrée: acc_input devrait avoir 4 dimensions, mais se matrice de forme (200, 3, 1)

model.fit(x=[acc_,gyro_],y=[scaled_labels],batch_size=1,validation_split=0.2, epochs=2,verbose=1,shuffle=False) 

La première couche de mon réseau est la couche d'entrée

acc_input_tensor = Input(shape=(200,3,1),name = 'acc_input') 
gyro_input_tensor = Input(shape=(200,3,1),name= 'gyro_input') 

L'entrée correspond aux données d'accélération et de gyroscope. 200 se rapporte à 200 ensembles de données, 3 se rapporte à l'accélération de la valeur mesurée de x, y, z. Je mets les données d'accélération et les données gyroscopiques remodeler en (200 * 3 * 1)

acc_ = np.reshape(acc,(200,3,1)) 
gyro_ = np.reshape(gyro,(200,3,1)) 

L'entrée sont des données en trois dimensions, l'entrée de données donné est à trois dimensions, pour lesquelles il existe des exigences à quatre dimensions? Comment le modifier?

This is the model I created

Répondre

0

Je ne sais pas quel type de réseau à l'aide de votre, mais input_shape ne comprend pas la longueur des données. il devrait être juste ce

acc_input_tensor = Input(shape=(3,1),name = 'acc_input') 
gyro_input_tensor = Input(shape=(3,1),name= 'gyro_input') 
+0

Merci pour votre réponse! J'utilise les données d'accélération dans un cycle en entrée (200 * 3), acc_input_tensor = entrée (forme = (200,3), name = 'acc_input' gyro_input_tensor = Entrée (shape = (200,3), name = 'gyro_input') C'est encore une erreur à modifier – xianglala

+0

Je parle (200 * 3) de remodeler en (20 * 30 * 1) dans la couche de convolution , Les couches de convolution requièrent des données tridimensionnelles – xianglala

+0

La forme d'entrée de la convolution dépend du type de couche de convolution utilisé, mais dans tous les cas 'shape =()' ne prend pas la taille de la première dimension, seulement la seconde, troisième, quatrième ... et ainsi de suite. – DJK