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

任何建议将不胜感激!


阿晨1998
浏览 227回答 3
3回答

小怪兽爱吃肉

您是否检查过您的训练/测试数据和训练/测试标签是否都是 numpy 数组?可能是您将 numpy 数组与列表混合在一起。

泛舟湖上清波郎朗

您可以通过在调用之前将标签转换为数组来避免此错误model.fit():train_x = np.asarray(train_x)train_y = np.asarray(train_y)validation_x = np.asarray(validation_x)validation_y = np.asarray(validation_y)

吃鸡游戏

如果您在处理从该类继承的自定义生成器时遇到此问题keras.utils.Sequence,您可能必须确保不要混合使用 aKeras或tensorflow - Keras-import。当您必须切换到以前的tensorflow版本以实现兼容性时(例如 with cuDNN),这种情况尤其可能发生。例如,如果您将其与tensorflow-version > 2 一起使用...from keras.utils import Sequenceclass generatorClass(Sequence):&nbsp; &nbsp; def __init__(self, x_set, y_set, batch_size):&nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; def __len__(self):&nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; def __getitem__(self, idx):&nbsp; &nbsp; &nbsp; &nbsp; return ......但是您实际上尝试将此生成器安装在tensorflow-version < 2 中,您必须确保Sequence从该版本导入 -class,例如:keras = tf.compat.v1.kerasSequence = keras.utils.Sequenceclass generatorClass(Sequence):&nbsp; &nbsp; ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python