Błąd z input_shape, jak się oczekuje, będzie mieć 4 pomiary, ale otrzymano tablicę z formą (73257, 32, 32)

0

Pytanie

Mam zdjęcia tej figury w skali szarości: x_train_grey.shape = (73257, 32, 32)

Wskazuję na pierwszą warstwę w następujący sposób:

Flatten(input_shape=(32,32,1)' Bo ja nie przekazuję rozmiar pakietu, a obrazy w odcieniach szarości mają tylko 1 kanał. Ale pojawia się ten błąd:

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

Nie rozumiem, o co chodzi, proszę o pomoc. Rozumiem, że o to pytali wiele razy, ale nie mogę znaleźć rozwiązania.

Hura!

2

Najlepsza odpowiedź

1

Problem prawdopodobnie polega na tym, jak przekazać swoje dane do swojego modelu. Jeśli twoja wejściowa forma (batch_size, 32, 32) spróbuj coś takiego:

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)

Aktualizacja: Oba input_shape=(32,32,1) i input_shape=(32,32) będzie pracować. To zależy od tego, jak użytkownik przekazuje swoje dane do swojego 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

W rzeczywistości, po prostu przechodzi input_shape=(32,32) udało się, dziękuję!
mankojag

Myślę, że mylisz się...Sprawdź mój zaktualizowany odpowiedź.
AloneTogether

Dziękuję, ale nie jestem do końca przekonany, że to prawda. Próbowałem input_shape=(32,32,1) ale to nie działa. Co twoim zdaniem trzeba zrobić, zanim to zamiast wysyłać input_shape=(32,32)? Czy jest jakaś zasada, która głosi (32,32,1) należy używać więcej niż (32,32) czy to nie ma znaczenia, jak mówisz, działają oba warianty?
mankojag

Sprawdź dolną część mojej odpowiedzi. Jak już powiedziałem, oba działają, ale to zależy od tego, jak wyglądają twoje dane
AloneTogether
-1

Ja też wciąż się uczę ten materiał, ale ja bym zasugerował, że "1" ilość rekordów w wymiarze niemożliwe. Nawet jeżeli to możliwe, to dopiero początek. "1" jak rozmiar osi dla mnie nie ma sensu. Czy ktoś jeszcze?

2021-11-24 07:34:08

Naprawdę, dziękuję input_shape=(32,32) wydaje się, wszystko działa normalnie
mankojag

W innych językach

Ta strona jest w innych językach

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