Lors de l'exécution d'un script de didacticiel sentdex d'un RNN de crypto-monnaie, liez ici
Tutoriel YouTube: modèle RNN de prédiction de crypto-monnaie ,
mais ont rencontré une erreur lors de la tentative de formation du modèle. Ma version tensorflow est 2.0.0 et j'exécute python 3.6. Lorsque j'essaie de former le modèle, je reçois l'erreur suivante:
File "C:\python36-64\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 734, in fit
use_multiprocessing=use_multiprocessing)
File "C:\python36-64\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 224, in fit
distribution_strategy=strategy)
File "C:\python36-64\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 497, in _process_training_inputs
adapter_cls = data_adapter.select_data_adapter(x, y)
File "C:\python36-64\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 628, in select_data_adapter
_type_name(x), _type_name(y)))
ValueError: Failed to find data adapter that can handle input: <class 'numpy.ndarray'>, (<class 'list'> containing values of types {"<class 'numpy.float64'>"})
Tout avis serait grandement apprécié!
Avez-vous vérifié si vos données de formation/test et vos étiquettes de formation/test sont toutes des matrices numpy? Il se peut que vous mélangiez des tableaux numpy avec des listes.
Vous pouvez éviter cette erreur en convertissant vos étiquettes en tableaux avant d'appeler model.fit()
:
train_y = np.asarray(train_y)
validation_y = np.asarray(validation_y)
J'avais un problème similaire. Dans mon cas, c'était un problème que j'utilisais un tf.keras.Sequential
modèle mais un générateur keras
.
Mauvais:
from keras.preprocessing.sequence import TimeseriesGenerator
gen = TimeseriesGenerator(...)
Correct:
gen = tf.keras.preprocessing.sequence.TimeseriesGenerator(...)