Keras初学者问题,如何解决形状(无,6)和(无,6,6)不兼容

h43kikqp  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(4976)

我刚开始学习keras时遇到了这个问题,但我觉得这个问题毫无意义。我有一个非常简单的模型,我想传递一个琐碎的数据来训练。我想传递两个训练示例作为输入,每个示例都有6个元素。我有两个3元素数组作为标签,采用one-hot-encoding格式。我收到一个错误:
ValueError: Shapes (None, 3) and (None, 6, 3) are incompatible
我不知道这是为什么,或者我是否需要对数据进行一些预处理,以获得keras喜欢的格式。我希望得到任何帮助!

finalModel.add(Dense(6, input_shape=(6,1), activation='relu'))
finalModel.add(Dense(3, activation='relu'))
finalModel.add(Dense(3, activation='relu'))
finalModel.add(Dense(3, activation='sigmoid'))

finalModel.compile(loss="categorical_crossentropy",
              metrics=['accuracy'])
x_train = np.asarray([[0,0,1,0,0,0],[1,0,1,0,1,0]]).astype(np.float32)
y_train = np.asarray([[1,0,0],[0,0,1]]).astype(np.float32)

finalModel.fit(x_train, y_train, epochs=5)
ebdffaop

ebdffaop1#

x_train的形状为(BATCH_SIZE, 6),因此模型的input_shape应该是(6,),而不是(6,1)。请尝试以下操作:

finalModel.add(Dense(6, input_shape=(6,), activation='relu'))
finalModel.add(Dense(3, activation='relu'))
finalModel.add(Dense(3, activation='relu'))
finalModel.add(Dense(3, activation='sigmoid'))

finalModel.compile(loss="categorical_crossentropy",
              metrics=['accuracy'])
x_train = np.asarray([[0,0,1,0,0,0],[1,0,1,0,1,0]]).astype(np.float32)
y_train = np.asarray([[1,0,0],[0,0,1]]).astype(np.float32)

finalModel.fit(x_train, y_train, epochs=5)

相关问题