【发布时间】:2020-03-03 13:24:31
【问题描述】:
我正在尝试使用 Keras 构建 CNN 模型。这是我的代码:
import keras
import tensorflow as tf
from keras.layers import Dense
from keras.models import Sequential
from keras.models import load_model
from keras.callbacks import EarlyStopping
from sklearn.model_selection import train_test_split
from __future__ import print_function
import pandas as pd
import numpy as np
from keras.datasets import cifar10
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Conv2D
from google.colab import drive
drive.mount('/content/drive')
...
# Define x_train...data
x_data=df.iloc[:,1:10084].values-25
# x_data = np.array(x_data).tolist()
y_data=df[['type1','type2']].values
X_train, X_test, y_train, y_test = train_test_split(x_data, y_data,test_size=0.2)
model.fit(X_train, y_train,
batch_size=100,
epochs=100,
verbose=1,
validation_data=(X_test, y_test),
callbacks=[history])
返回错误
ValueError: 检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到的数组形状为 (595, 10083)
参考其他问题后,我尝试使用
重塑数据数组的维度X_train = X_train[np.newaxis, :, :, :]
将其更改为 3 维并返回错误:
ValueError: 检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到的数组形状为 (1, 595, 10083)
我应该如何将数据的维度增加到4?
【问题讨论】:
-
这是什么数据?
-
细节太多,评论可能不适合,请查看this获取数据
-
为什么不使用 RNN?如果你想要一个 CNN,你需要一个 1D CNN。
-
感谢@gmds 它在我的数据上表现不佳,因为我将时间序列形式的各种特征合并为一个,所以我想看看它是如何进行的
CNN -
@gmds 我将
Conv2D更改为Conv1D并得到了这个ValueError: Error when checking input: expected conv2d_1_input to have shape (744, 10183, 1) but got array with shape (595, 10083, 1)
标签: python pandas numpy keras neural-network