【问题标题】:How does Keras read input data?Keras 如何读取输入数据?
【发布时间】:2018-06-07 21:50:21
【问题描述】:

我在用Keras做一个项目,不明白Keras是如何使用数据输入的,也就是说Keras在创建第一层的时候是如何读取我们的输入数据的。

例如:

  1. model = Sequential()
  2. model.add(Dense(10, activation='sigmoid', input_dim=3,name='layer1'))

在这个模型中,有 10 个神经元和一个 3 维输入是什么意思?如果输入数据有 100 个样本(矩阵数据中的行数),Keras 是如何使用它们的?

谢谢。

【问题讨论】:

    标签: python machine-learning neural-network keras keras-layer


    【解决方案1】:

    input_dim=3 表示您的每个输入数据都有 3 个维度。在您的情况下,包含 100 个示例的输入数据的形状应为 (100,3)。编译模型时,示例的数量并不重要。但是您应该确保每个输入数据的维度与您在第一个密集层中设置的input_dim 匹配。

    一个简短的例子:

    model = Sequential()
    model.add(Dense(10, input_dim=3, activation='sigmoid'))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(loss='binary_crossentropy', optimizer='adamax')
    
    model.fit(xTrain, yTrain, epochs=50, batch_size=10)
    

    【讨论】:

    • 谢谢!它帮助我更好地理解。 :)
    【解决方案2】:

    input_dim=3 表示您的数据具有 3 个特征,这些特征将用于确定最终结果,例如。如果您想确定动物数据指的是什么,您可以将宽度、高度和颜色作为数据。

    100 examples 不同动物的宽度、高度和颜色组合允许神经网络调整其参数(学习)什么宽度、高度和颜色指的是哪种动物。 Keras 从神经元的随机权重开始,然后使用提供的样本逐个调整网络权重 100 次。 Keras 实际上使用批量,这意味着将 100 个样本分成更小的组,以获得更好的学习率和一般性能(一次存储在内存中的数据更少)。

    10 neurons 是网络能够存储神经元权重和输入数据之间相乘结果的 10 个“位置”。你可以把神经元想象成一个灯泡,它会根据数据是否显示一些有用的数据特征来点亮或变暗。如果动物身高超过 3 米。每个神经元都有自己的一组权重,当网络从您的数据中检查下一个样本时,这些权重会发生一些变化。最后,您应该有 10 个神经元(灯泡),它们的反应或多或少取决于数据中不同特征的存在,例如。如果动物很高。

    您拥有的神经元越多,您可以跟踪的特征就越多,例如。如果动物高大、多毛、橙色、斑点等。但是你拥有的神经元越多,你的网络就越有可能过于精确,并且会学习到你的训练示例所独有的特征(这称为过度拟合),但不要帮助您识别未包含在训练数据中的动物样本(这称为泛化能力,是实际训练神经网络最重要的一点)。然后,选择神经元数量是一项实际练习,您可以在其中搜索适合您需要的神经元。

    我希望它能澄清你的疑惑。如果您想更深入地了解这个领域,网上有很多很好的资源,详细解释了神经网络的训练过程,包括特征、神经元和学习。

    【讨论】:

    • 谢谢!现在我明白了很多。谢谢 :D 如果可以的话,我还有一个问题。如果我们以动物为例。如何获得具有正确值“宽度”、“高度”和“颜色”的 3 维输出?我知道神经网络中的值介于 0 和 1 之间,所以我不明白我们如何获得这些值?
    • @Jeremy:这取决于您的值是像宽度/高度这样的数字还是标签,例如。用名称表示的颜色。如果它们是标签,那么您首先需要将它们表示为数字(可以像 0 代表红色和 1 代表绿色一样简单,或者更精确,例如转换为十六进制颜色的十进制表示)。现在,当所有输入都由数字表示时,您正在寻找的术语是规范化。归一化是数学过程,它允许您将任何数字范围“转换”到其他范围,例如。宽度范围从 50 - 250 到范围 0 - 1。
    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2017-11-26
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多