首页 > 解决方案 > ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型浮点数)

问题描述

我在诊断 Tensorflow 的问题时遇到了真正的问题。我得到了这个 ValueError ,它根本不直观。我已经尝试将我的浮点数转换np.float32为其他 SO 问题中指定的值。我已经尝试了一篮子解决方案,但我似乎无法通过它。

我的数据在 Pandas 数据框中。我加入了一个 TF-IDF 数据框和其他一些争论的功能,以获得我的最终数据集。尺寸为(7176, 1006)。我正在使用 Tensorflow,我的模型代码是:

model = Sequential()

model.add(Dense(500, activation='relu'))
model.add(Conv1D(500, 10, activation='relu', input_shape=input_shape)) # Convultional Layer
model.add(MaxPooling1D(pool_size=10, strides=80)) # MaxPooling
model.add(LSTM(250, dropout=0.2, recurrent_dropout=0.2)) # LSTM Layer
model.add(Dense(111, activation='softmax')) #output layer
model.compile(
    loss='sparse_categorical_crossentropy',
    optimizer='adam',
    metrics=['accuracy']
)

model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))

我已经在 AutoKeras 模型中使用了这些数据,所以我有理由确定问题在于我是如何构建模型的(该模型从未完成,它花了很长时间)。在导航不可避免的输入尺寸错误后,我来到了这里,我想把头发拉出来。非常感谢任何帮助或建议!

标签: pythonnumpytensorflowkerastf.keras

解决方案


您需要将最终数据集转换为 numpy 数组。您可以使用以下方法:

import numpy as np
input_data = np.array(your_final_data_array).astype(np.float32)

它现在应该可以正常工作了。


推荐阅读