【发布时间】:2021-12-04 14:18:37
【问题描述】:
我正在构建一个用于二进制分类的 CNN 1D 模型,我使用的文件是 csv 文件我该如何解决这种错误?....提前致谢
这是我的代码: enter image description here enter image description here
错误是: ValueError:层“max_pooling1d”的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到的完整形状:(无,51644、29、32) enter image description here
【问题讨论】:
-
请贴出真实的文字代码,而不是截图。
-
import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from keras.models import Sequential from keras.layers import Dense from keras.layers import Dropout from keras.layers import Flatten import tensorflow as tf from keras.layers.convolutional import Conv1D from keras.layers.convolutional import MaxPooling1D from sklearn.preprocessing import LabelEncoder,OneHotEncoder data = pd.read_csv('dataset.csv', low_memory=False) data = data.drop([64555], axis=0) y = data.label x = data.drop('label', axis=1)
-
model = Sequential() model.add(Conv1D(32, 5, padding='valid', input_shape=(train.shape[0], train.shape[1], 1), 激活='relu', strides=1 )) model.add(MaxPooling1D(pool_size=2, strides=1, padding='valid')) model.add(Conv1D(64, 5, padding='valid', activation=' relu', strides=1)) model.add(MaxPooling1D(pool_size=2, strides=1, padding='valid')) model.add(Dropout(0.2)) model.add(Dense(128, activation='relu ')) model.add(Dense(50, activation='relu')) model.add(Dense(10, activation='sigmoid')) model.compile(loss='categorical_crossentropy', optimizer='adam', 指标=['准确度'])
-
model.fit(train, train_label, epochs=3, batch_size=32) score = model.evaluate(test, test_label, batch_size=128)
-
其实不是这样的,我是想贴出问题本身的代码。请编辑您的问题并将代码复制粘贴到那里。粘贴代码后选择代码并单击
{}按钮,代码将自行格式化。对于困难,请参阅此处的详细信息:meta.stackexchange.com/a/210852/659522 ...我也发布了答案,希望对您有所帮助....谢谢:)
标签: python tensorflow machine-learning keras deep-learning