gpt4 book ai didi

python - Keras:期望 3 维,但得到具有形状的数组 - 密集模型

转载 作者:行者123 更新时间:2023-11-30 08:24:05 24 4
gpt4 key购买 nike

我想使用 TfidfVectorizer 基于矢量化单词进行多标签分类(20 个不同的输出标签)。我有一组 39974 行,每行包含 2739 个项目(零或一)。

我想使用 Keras 模型对这些数据进行分类,该模型将包含 1 个隐藏层(~20 个激活='relu'的节点)和等于 20 个可能的输出值的输出层(激活='softmax'来选择最佳拟合) .

这是我到目前为止的代码:

model = Sequential()
model.add(Dense(units=20, activation='relu', input_shape=tfidf_matrix.shape))
model.add(Dense(units=20, activation='softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(tfidf_matrix, train_data['cuisine_id'], epochs=10)

但出现错误:

ValueError: Error when checking input: expected dense_1_input to have 3 dimensions, but got array with shape (39774, 2739)

如何指定该神经网络以使用该矩阵进行拟合?

最佳答案

行数(训练样本数)不是网络输入形状的一部分,因为训练过程为网络提供每批一个样本(或者更准确地说,每批batch_size 个样本)。

因此,在您的情况下,网络的输入形状为 (2739, ) ,正确的代码应如下所示:

model = Sequential()
# the shape of one training example is
input_shape = tfidf_matrix[0].shape
model.add(Dense(units=20, activation='relu', input_shape=input_shape))
model.add(Dense(units=20, activation='softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(tfidf_matrix, train_data['cuisine_id'], epochs=10)

关于python - Keras:期望 3 维,但得到具有形状的数组 - 密集模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48674881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com