【问题标题】:What does input_shape,input_dim and units indicate or mean while adding layers in a Keras?在 Keras 中添加图层时,input_shape、input_dim 和 units 表示或表示什么?
【发布时间】:2020-07-02 10:20:02
【问题描述】:

我是 keras 的新手,我想知道是否可以使用神经网络做一些关于文本分类的工作。 因此,我继续获取有关垃圾邮件或火腿的数据集,并使用 tfidf 对数据进行矢量化,并使用 to_categorical() 将标签转换为 numpy 数组,并设法将我的数据拆分为 train 并测试每个都是 numpy 数组有大约 7k 列。 这是我使用的代码。

model.add(Dense(8,input_dim=7082,activation='relu'))
model.add(Dense(8,input_dim=7082))
model.add(Dense(2,activation='softmax'))
model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=['accuracy'])

我不知道我是否做错了什么。有人可以指出我应该改变什么的正确方向。 抛出的错误: Error when checking input: expected dense_35_input to have 2 dimensions, but got array with shape ()

【问题讨论】:

    标签: python tensorflow machine-learning keras nlp


    【解决方案1】:

    根据documentation,密集层似乎没有任何input_dim 参数。

    input_shape 是一个元组,必须在模型的第一层中使用。它指的是输入数据的形状。

    units是指输出空间的维度,即dense layer处理的每个输出元素的形状。

    在您的情况下,如果您的输入数据的维数为 7082,则应该可以:

    model.add(Dense(8,input_shape=(7082,),activation='relu'))
    model.add(Dense(2,activation='softmax'))
    model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=['accuracy'])
    

    【讨论】:

    • 非常感谢它的工作,问题出在我的阵列上。您能否指导我找到可以研究这些主题的资源。我仍然不明白密集层中的'8'是如何使用的。
    • 我认为你应该学习一点神经网络。您可以在 Internet 上找到大量关于如何设计和训练神经网络的博客文章和教程。如果您想更深入地了解神经网络背后的数学原理,您可以访问deeplearningbook.org,这是一本在线书籍,详细解释了神经网络。它由该领域的一些最著名的研究人员编写(Goodfellow 是 GAN 的发明者,Bengio 获得了上届图灵奖)。如果有效,您可以将答案标记为已接受。
    猜你喜欢
    • 2020-06-04
    • 2021-06-17
    • 1970-01-01
    • 2021-12-31
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    相关资源
    最近更新 更多