【发布时间】:2021-07-25 08:31:48
【问题描述】:
我想在 physioNet2017 ECG 数据上训练 1D CNN。训练数据中的每一行的长度都是可变的,即,有些行长 9000 列,有些行长 18286 列。为了使它们具有相同的长度,我在每行中填充了零,最大长度为 18286。 现在我有 20200 行,每行有 18286 列长,所以数据形状是(20200、18286)。现在我想重塑这些数据以训练 1D CNN。我使用以下代码将数据拆分为训练和验证。
Xt, Xv, Yt, Yv = train_test_split(trainX_bal, trainY_bal, random_state=42, test_size=0.2)
print("Train shape: ", Xt.shape)
print("Valdation shape: ", Xv.shape)
我有输出: 火车造型:(16160、18286) 验证形状:(4040, 18286)
现在我已经使用以下代码重塑了训练和验证数据:
samples_train = list()
samples_val = list()
samples_test = list()
length = 8
for i in range(0,Xt.shape[0],length):
sample = Xt[i:i+length]
samples_train.append(sample)
for i in range(0,Xv.shape[0],length):
sample_val = Xv[i:i+length]
samples_val.append(sample_val)
data = np.array(samples_train).astype(np.float32)
data_val = np.array(samples_val).astype(np.float32)
print("Training new shape: ", data.shape)
print("Validation new shape: ", data_val.shape)
Xt_cnn = data.reshape((len(samples_train), length, data.shape[2]))
Xv_cnn = data_val.reshape((len(samples_val), length, data_val.shape[2]))
Yt = to_categorical(Yt, num_classes=4)
Yv = to_categorical(Yv, num_classes=4)
输出是: 训练新形态:(2020, 8, 18286) 验证新形状:(505, 8, 18286)
现在我使用以下代码将此数据拟合到 CNN 模型:
mod = cnn_model(Xt_cnn)
cnn_history = mod.fit(Xt_cnn, Yt, batch_size=64, validation_data = (Xv_cnn, Yv),
epochs=20)
我收到此错误。 Error
【问题讨论】:
标签: python tensorflow keras conv-neural-network lstm