web-dev-qa-db-ja.com

Tensorflowデータアダプターエラー:ValueError:入力を処理できるデータアダプターが見つかりませんでした

暗号通貨RNNのsentdexチュートリアルスクリプトを実行している間、ここにリンクしてください

YouTubeチュートリアル:暗号通貨予測RNNモデル

モデルをトレーニングしようとしたときにエラーが発生しました。私のtensorflowバージョンは2.0.0で、python 3.6を実行しています。モデルをトレーニングしようとすると、次のエラーが表示されます。

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'>"})

何かアドバイスをいただければ幸いです!

12
Jonathan E

トレーニング/テストデータとトレーニング/テストラベルがすべてnumpy配列であるかどうかを確認しましたか? numpy配列とリストを混在させている可能性があります。

18
Forran

model.fit()を呼び出す前にラベルを配列に変換することで、このエラーを回避できます。

train_y = np.asarray(train_y)
validation_y = np.asarray(validation_y)
6

同様の問題がありました。私の場合、tf.keras.Sequentialモデルではなくkerasジェネレータを使用していたことが問題でした。

間違った:

from keras.preprocessing.sequence import TimeseriesGenerator
gen = TimeseriesGenerator(...)

正しい:

gen = tf.keras.preprocessing.sequence.TimeseriesGenerator(...)
0
Andreas Gyr