Eroare cu input_shape de așteptat să aibă 4 dimensiuni, dar are matrice cu forma (73257, 32, 32)

0

Problema

Am imaginilor în nuanțe de gri de forma asta: x_train_grey.shape = (73257, 32, 32)

Pentru a specifica primul strat de genul asta:

Flatten(input_shape=(32,32,1)' Pentru că nu trece batch_size și imaginilor în nuanțe de gri au doar 1 canal. Dar primesc eroarea asta:

ValueError: Error when checking input: expected flatten_1_input to have 4 dimensions, but got an array with shape (73257, 32, 32)

Nu înțeleg de ce este greșit, vă rugăm să ajute. Am înțeles acest lucru a fost cerut de mai multe ori, dar eu nu pot găsi o soluție.

Noroc!

2

Cel mai bun răspuns

1

Probabil că problema constă în modul în care se trec datele pentru modelul dumneavoastră. Dacă dvs. de intrare este forma (batch_size, 32, 32) apoi, încercați ceva de genul asta:

import tensorflow as tf

grey_scale_images = tf.random.normal((64, 32, 32))

model = tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(32,32,1)))

print(model(grey_scale_images).shape)
# (64, 1024)

Update: Ambele input_shape=(32,32,1) și input_shape=(32,32) va lucra. Depinde cum sunt hrana de date pentru modelul dvs.:

import tensorflow as tf

grey_scale_images = tf.random.normal((64, 32, 32))
Y = tf.random.normal((64, 1024))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(32, 32, 1)))
model.compile(loss='MSE')
model.fit(grey_scale_images, Y)
2021-11-24 08:40:01

De fapt, pur și simplu trece input_shape=(32,32) a mers, multumesc!
mankojag

Cred că te înșeli...mi Verific actualizat răspuns.
AloneTogether

Mersi, dar eu nu sunt destul de sigur că acest lucru este corect. Am încercat input_shape=(32,32,1) dar nu este de lucru. Ce propui trebuie să fie făcut înainte de a trece că, în loc de input_shape=(32,32)? Există vreo regulă care spune (32,32,1) ar trebui să fie utilizate de-a lungul (32,32) sau nu mai contează, după cum spune atât opțiuni de munca?
mankojag

Verificați partea de jos de răspunsul meu. Cum am spus atât de lucru, dar aceasta depinde de ceea ce datele arata ca
AloneTogether
-1

Eu sunt încă de învățare chestia asta, dar cred că "1" ca dimensiune este numărul de intrări nu este posibil. Chiar dacă este posibil, e un început. "1" ca o dimensiune de o axă nu are sens pentru mine. Oricine altcineva?

2021-11-24 07:34:08

Mulțumesc, într-adevăr input_shape=(32,32) pare a fi de lucru bine
mankojag

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................