我一直在嘗試使用 1D CNN 來解決簡單的分類問題。比如在csv中創建一個表格資料,輸入python做一些簡單的分類。資料的前 31 列是特征,最后一列是條件。我一直在使用 Lightgbm 和 Randomforest 等其他 ML 方法進行分類。我想嘗試使用1D CNN,看看是否可以提高準確性。
X = raw_data[feature_names]
P = predict_data_raw[feature_names]
P1 = predict_data_raw[feature_names1]
y = raw_data['Conditions']
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=22, test_size=0.1)
model = Sequential()
model.add(Conv1D(filters=32, kernel_size=3, activation='relu'))
model.add(LayerNormalization())
model.add(Conv1D(filters=64, kernel_size=3, activation='relu'))
model.add(LayerNormalization())
model.add(GlobalAveragePooling1D())
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dense(2, activation='softmax'))
model.compile(loss='loss_function', optimizer='adam', metrics=['accuracy'])
我想輸出預測結果和條件的預測概率。但是,訓練停留在某些點并顯示此錯誤:
ValueError: Exception encountered when calling layer "sequential_26" (type Sequential).
Input 0 of layer "conv1d_33" is incompatible with the layer: expected min_ndim=3, found ndim=2. Full shape received: (None, 31)
Call arguments received by layer "sequential_26" (type Sequential):
? inputs=tf.Tensor(shape=(None, 31), dtype=float64)
? training=True
? mask=None
uj5u.com熱心網友回復:
Conv1D需要一個3 維輸入,而您的輸入只是 2 維。您可以重塑資料或添加Reshape圖層:
model = Sequential()
model.add(Reshape((31, 1))
...
您可能需要添加一個input_shape
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/510350.html
上一篇:CamVid12影像分割資料集
