我正在尝试为NLP应用程序训练神经网络,其中我使用25000个示例的训练集。我将这些样本预处理成25000个样本的特征向量。我只有3个特征。我使用一般方法
将这个特征向量转换为numpy数组X = np.array(X)Y = np.array(Y)
我现在有一个形状为(25000,3)的数据集。我用输入形状=(3,)编译我的模型,我的第一层是Embedding()
我传递了一个模型匹配查询
history = model.fit(X, y, validation_split= 0.2, epochs = 30, verbose = 1, callbacks = [earlystop, modelcheckpoint, lr_red],
batch_size = 256, shuffle = True
)
然而,它给我的错误是
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).
即使我输入
print(X[0].shape)
它给了我(3,),这是模型应该期望的,对吗?
请帮我解决这个问题。我真的不知道从哪里开始解决这个问题。
看起来x
数据类型有问题,而不是形状。Tensorflow对数据类型有点严格,不支持将所有数据类型(例如int
作为错误消息状态)转换为张量(这可能是你的嵌入层正在尝试做的)。我想试试以下方法:
X = np.array(X).astype('float32')
(如果不工作,请提供完整的回溯)