Chyba s input_shape očakáva, že bude mať 4 rozmery, ale dostal pole s tvar (73257, 32, 32)

0

Otázka

Mám odtiene šedej obrazy tento tvar: x_train_grey.shape = (73257, 32, 32)

I zadať prvú vrstvu, ako je tento:

Flatten(input_shape=(32,32,1)' Pretože nemám prejsť batch_size a odtiene šedej obrázky majú iba 1 kanál. Ale ja si túto chybu:

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

Nechápem, čo je zlé, prosím pomôžte. Chápem to požiadal mnoho krát, ale nemôžem nájsť riešenie.

Na zdravie!

2

Najlepšiu odpoveď

1

Problém pravdepodobne spočíva v tom, ako si sa pominú údaje do svojho modelu. Ak váš vstup tvar je (batch_size, 32, 32) skúste niečo ako toto:

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: Tak input_shape=(32,32,1) a input_shape=(32,32) bude fungovať. Záleží, ako ste kŕmenie údaje do svojho modelu:

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

V skutočnosti, jednoducho absolvovanie input_shape=(32,32) pracoval, vďaka!
mankojag

Myslím si, že sa mýli...Skontrolovať môj aktualizované odpoveď.
AloneTogether

Vďaka, ale nie som si celkom istí, že je to správne. Snažil som sa input_shape=(32,32,1) ale to nefunguje. Čo navrhujete je potrebné vykonať pred presunom, že namiesto input_shape=(32,32)? Existuje nejaké pravidlo, ktoré hovorí (32,32,1) mali by byť použité viac (32,32) alebo to nie je záležitosť, ako môžete povedať, obe možnosti práce?
mankojag

Kontrola spodnej časti moja odpoveď. Ako som povedal, obaja pracujú, ale záleží na tom, čo vaše údaje vyzerá ako
AloneTogether
-1

Som stále učia tieto veci príliš, ale ja by som asi, že "1" ako rozmer je počet vstupov nie je možné. Dokonca aj vtedy, ak je to možné, je to začiatok. "1" ako veľkosť osi nemá zmysel ma. Niekto iný?

2021-11-24 07:34:08

Vďaka, naozaj input_shape=(32,32) sa zdá byť v poriadku
mankojag

V iných jazykoch

Táto stránka je v iných jazykoch

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