ValueError: Unable to convert NumPy array to a Tensor (Unsupported object type float)
ValueError: Unable to convert NumPy array to a Tensor (Unsupported object type float)
我在诊断 Tensorflow 问题时遇到了真正的问题。我得到这个 ValueError 并且它根本不直观。我已经尝试按照其他 SO 问题中的说明将我的浮点数转换为 np.float32
。我已经尝试了很多解决方案,但我似乎无法通过它。
我的数据在 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 模型中使用了这些数据,所以我有理由相信问题出在我构建模型的方式上(该模型从未完成,它花了很长时间)。在解决了不可避免的输入尺寸错误之后,我来到了这里,我想把我的头发拔出来。非常感谢任何帮助或建议!
您需要将最终数据集转换为 numpy 数组。您可以使用以下方法:
import numpy as np
input_data = np.array(your_final_data_array).astype(np.float32)
现在应该可以正常工作了。
我在诊断 Tensorflow 问题时遇到了真正的问题。我得到这个 ValueError 并且它根本不直观。我已经尝试按照其他 SO 问题中的说明将我的浮点数转换为 np.float32
。我已经尝试了很多解决方案,但我似乎无法通过它。
我的数据在 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 模型中使用了这些数据,所以我有理由相信问题出在我构建模型的方式上(该模型从未完成,它花了很长时间)。在解决了不可避免的输入尺寸错误之后,我来到了这里,我想把我的头发拔出来。非常感谢任何帮助或建议!
您需要将最终数据集转换为 numpy 数组。您可以使用以下方法:
import numpy as np
input_data = np.array(your_final_data_array).astype(np.float32)
现在应该可以正常工作了。