Skip to main content

LTSM

model.fit不支持ndarry:Failed to convert a NumPy array to a Tensor (Unsupported object type float).

model.fit(X_train,y_train,epochs=100,batch_size=64,verbose=1,shuffle=True,validation_split=0.1)
Can not convert a ndarray into a Tensor or Operation.

实现的代码如上,报错
Failed to convert a NumPy array to a Tensor (Unsupported object type float).
查了一下午,解决了问题,因为这个版本的keras支持的是tensor,但是用
xm=tf.convert_to_tensor(X_train,dtype=tf.float64)
无法解决问题,无法转换为tensor,需要用到后台。话不多说,直接上代码

from keras import backend as K #转换为张量
X_train1 = K.cast_to_floatx(X_train)
y_train1 = K.cast_to_floatx(y_train)

路过的点个赞!哎,折腾了半天,闹心!

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

# 保存的代码位置
# 预测
train, test = supervised_value[:-testNum], supervised_value[-testNum:]

# 报错
yhat = model.predict(X, batch_size=batch_size)

原因

在对模型进行训练之前没有把训练样本和测试样本转化为 tensorflowh 和 Keras 可接受的数据类型。

解决方法:

# 预测
train, test = supervised_value[:-testNum], supervised_value[-testNum:]

# 修正为float64类型
train = train.astype("float64")
test = test.astype("float64")
train_scaled = train_scaled.astype("float64")
test_scaled = test_scaled.astype("float64")