Python 3.x 使用tensorflow.keras中的训练模型进行预测时的形状误差
我正在使用Python 3.x 使用tensorflow.keras中的训练模型进行预测时的形状误差,python-3.x,tensorflow,keras,Python 3.x,Tensorflow,Keras,我正在使用tensorflow.keras创建一个1D CNN,下面是来自的一些概念。到目前为止,建模和培训似乎在起作用,但我似乎无法做出预测。下面是我正在处理的一个例子: 资料 在本例中,我正在创建一个数据集,它表示我正在使用的数据集。我有1000个时间序列数据窗口,每个窗口有6条不同的轨迹(加速度计x,y,z和陀螺仪x,y,z)。这些窗口的长度为512个数据点 训练 创建一个简单的CNN,它通过以下输出完美训练: Train on 1000 samples Epoch 1/3 1000/10
tensorflow.keras
创建一个1D CNN,下面是来自的一些概念。到目前为止,建模和培训似乎在起作用,但我似乎无法做出预测。下面是我正在处理的一个例子:
资料
在本例中,我正在创建一个数据集,它表示我正在使用的数据集。我有1000个时间序列数据窗口,每个窗口有6条不同的轨迹(加速度计x,y,z和陀螺仪x,y,z)。这些窗口的长度为512个数据点
训练
创建一个简单的CNN,它通过以下输出完美训练:
Train on 1000 samples
Epoch 1/3
1000/1000 [==============================] - 1s 1ms/sample - loss: 0.8802 - accuracy: 0.4930
Epoch 2/3
1000/1000 [==============================] - 1s 724us/sample - loss: 0.6726 - accuracy: 0.5920
Epoch 3/3
1000/1000 [==============================] - 1s 740us/sample - loss: 0.6291 - accuracy: 0.6760
预测(出现错误的地方)
出于测试目的,我预测了一部分训练数据。运行model.predict(trainX[0])
会导致以下错误:
ValueError: Error when checking input: expected conv1d_4_input to have 3 dimensions, but got array with shape (512, 6)
这似乎很奇怪,因为我期望训练数据集的兼容性;毕竟,
trainX[0]
首先定义了input\u形状
。请运行代码:model.predict([trainX[0]])
,模型输出预测结果不起作用。运行model.predict([trainX[0]])
在检查输入时导致了相同的错误错误:预期conv1d\u输入为3维,但得到了形状为(510,6)的数组
我已经运行了您的代码,请运行代码:model.predict(np.array([trainX[0]])
是的,我最终找到了。根据我的记忆,模型预测([[trainX[0]]])似乎也能起作用。你能编辑你的答案吗?
Train on 1000 samples
Epoch 1/3
1000/1000 [==============================] - 1s 1ms/sample - loss: 0.8802 - accuracy: 0.4930
Epoch 2/3
1000/1000 [==============================] - 1s 724us/sample - loss: 0.6726 - accuracy: 0.5920
Epoch 3/3
1000/1000 [==============================] - 1s 740us/sample - loss: 0.6291 - accuracy: 0.6760
ValueError: Error when checking input: expected conv1d_4_input to have 3 dimensions, but got array with shape (512, 6)