首页 > 解决方案 > 如何重塑一维 CNN 的数据集?

问题描述

我正在尝试训练一个包含 4 列的 50352 行的数据集。这是一个有 4 个不同类别的分类问题。如何重塑数据集以使其可用于 1D-CNN?

以下是我的代码仅供参考。

  1. 重塑数据

    x_train = x_scaled_test.reshape(50352, 4, 1)
    
  2. 定义和编译数据

model = keras.models.Sequential()

model.add(keras.layers.Conv1D(64, 2, input_shape=(4, 1), activation='relu'))  # convolation

model.add(tf.keras.layers.MaxPool1D(pool_size=2))  # pooling
model.add(tf.keras.layers.Flatten())  # flatten

model.add(tf.keras.layers.Dense(128, activation='relu'))  # fc

model.add(tf.keras.layers.Dropout(0.3))  # dropout

model.add(tf.keras.layers.Dense(4, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,
                  optimizer=keras.optimizers.Adadelta(),
                  metrics=['accuracy'])
  1. 拟合模型
verbose, epochs, batch_size = 0, 10, 32
model.fit(x_train, Y_train, epochs=epochs, batch_size=batch_size, verbose=verbose)

我收到此错误

raise ValueError("Shapes %s and %s are incompatible" % (self, other)) ValueError: Shapes (None, 1) and (None, 4) are incompatible

标签: tensorflowkerasdeep-learningtime-seriesconv-neural-network

解决方案


推荐阅读