Keras AttributeError: 'list' - Objekt hat kein Attribut 'ndim'
Bin ich mit einem Keras neuronalen Netzwerk-Modell in Jupyter Notebook (Python 3.6)
Bekomme ich die folgende Fehlermeldung
AttributeError: 'list' - Objekt hat kein Attribut 'ndim'
nach dem Aufruf der .fit () - Methode von Keras.Modell
model = Sequential()
model.add(Dense(5, input_dim=len(X_data[0]), activation='sigmoid' ))
model.add(Dense(1, activation = 'sigmoid'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['acc'])
model.fit(X_data, y_data, epochs=20, batch_size=10)
Überprüfte ich die requirements.txt Datei Keras (in Anaconda3) und numpy, scipy, und sechs Modul-Versionen sind alle aktuell.
Was erklären kann AttributeError?
Die vollständige Fehlermeldung ist folgende (scheint etwas im Zusammenhang zu Numpy):
--------------------------------------------------------------------------- AttributeError Traceback (most recent call
last) in ()
3 Modell.add(Dichte(1, activation = 'Sigma'))
4 Modell.kompilieren(Verlust='mean_squared_error', optimizer='adam', Metrik=['acc'])
----> 5-Modell.fit(X_data, y_data, Epochen=20, batch_size=10)~\Anaconda3\lib\site-packages\keras\models.py in fit(self, x, y,
batch_size, Epochen, ausführlich, Rückrufe, validation_split,
validation_data, shuffle, class_weight, sample_weight, initial_epoch,
steps_per_epoch, validation_steps, **kwargs)
963 initial_epoch=initial_epoch,
964 steps_per_epoch=steps_per_epoch,
--> 965 validation_steps=validation_steps)
966
967 def auswerten(self, x=Keiner, y=None,~\Anaconda3\lib\site-packages\keras\engine\training.py in fit(self, x,
y, batch_size, Epochen, ausführlich, Rückrufe, validation_split,
validation_data, shuffle, class_weight, sample_weight, initial_epoch,
steps_per_epoch, validation_steps, **kwargs) 1591
class_weight=class_weight, 1592 check_batch_axis=False,
-> 1593 batch_size=batch_size) 1594 # Vorbereitung der Validierung der Daten. 1595 do_validation = False~\Anaconda3\lib\site-packages\keras\engine\training.py in
_standardize_user_data(self, x, y, sample_weight, class_weight, check_batch_axis, batch_size) 1424
selbst._feed_input_shapes, 1425
check_batch_axis=False,
-> 1426 exception_prefix='input') 1427 y = _standardize_input_data(y, self._feed_output_names,
1428 output_shapes,~\Anaconda3\lib\site-packages\keras\engine\training.py in
_standardize_input_data(Daten, Namen, Formen, check_batch_axis, exception_prefix)
68 elif isinstance(Daten, Liste):
69 data = [x.Werte, wenn die x.Klasse.name == 'DataFrame' else x for x in data]
---> 70 data = [np.expand_dims(x, 1) falls x nicht None ist, und x ist.ndim == 1 else x for x in data]
71 anderes:
72 Daten = Daten.Werte, wenn Daten.Klasse.name == 'DataFrame' else Daten~\Anaconda3\lib\site-packages\keras\engine\training.py in
(.0)
68 elif isinstance(Daten, Liste):
69 data = [x.Werte, wenn die x.Klasse.name == 'DataFrame' else x for x in data]
---> 70 data = [np.expand_dims(x, 1) falls x nicht None ist, und x ist.ndim == 1 else x for x in data]
71 anderes:
72 Daten = Daten.Werte, wenn Daten.Klasse.name == 'DataFrame' else DatenAttributeError: 'list' - Objekt hat kein Attribut 'ndim'
InformationsquelleAutor Larry | 2018-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
model.fit
erwartet x und y werden numpy-array. Scheint, wie Sie übergeben eine Liste, die es versucht, in Form von Eingabe durch das Lesenndim
Attribut der numpy-array-und scheiterte.Können Sie ganz einfach verwandeln Sie mit
np.array
:InformationsquelleAutor CtheSky
Wenn Sie importieren, die Sie verwenden sollten
tensorflow.keras
statt nurkeras
wie diese:da gibt es einen bug im Zusammenhang mit der
keras
Modul.Referenz: hier.
InformationsquelleAutor tsveti_iko
Ich weiß nicht, die Form Ihrer Trainingsdaten, aber ich vermute, dass Sie eine Fehlermeldung auf Ihrem
input_dim
. Versuchen Sie es zuinput_dim=len(X_data)
wie diese:InformationsquelleAutor Ioannis Nasios