再次介绍Tensorflow -值错误:无法将NumPy数组转换为Tensor(不支持的对象类型float)

dxxyhpgq  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(213)

执行以下tensorflow 2.8方法时(拟合 * 模型 * 后):

model.predict(X_test)

我收到以下消息:

ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray)

其他类似问题中的建议似乎都不起作用。以下是我的数据:

type(X_test)
X_test.size
len(X_test)
X_test

产出:

numpy.ndarray
13
13
array([array([[[[1.72707179e-04],
                [3.01862194e-04],
                [1.30811683e-03],
                ...,
                [3.52285788e-05],
                [5.02625953e-05],
                [6.48639834e-05]],

                [[7.46249643e-05],
                [4.26480168e-04],
                [2.55916407e-03],
                ...,
                [6.17124970e-05],
                [5.78219624e-05],
                [8.79297804e-05]],

               [[2.28419929e-04],
               [1.81215862e-03],
               [3.15412483e-03],

                etc

谢谢。

lf3rwulv

lf3rwulv1#

您正在将对象类型的输入样本传递给model.predict(),因此出现错误。请尝试使用tf.cast()将x_test强制转换为float32,如下所示

x_test = tf.cast(x_test, tf.float32)

模型的输入样本。predict()可以是:

  • Numpy数组(或类数组)或数组列表(如果模型有多个输入)。
  • TensorFlowTensor或Tensor列表(如果模型具有多个输入)。
  • tf.data数据集。
  • 生成器或keras.utils.Sequence示例。迭代器类型(数据集、生成器、序列)的解包行为的更详细描述在Model.fit的类似迭代器的输入的解包行为部分中给出。

相关问题