Python Keras如何读取输入数据?

Python Keras如何读取输入数据?,python,machine-learning,neural-network,keras,keras-layer,Python,Machine Learning,Neural Network,Keras,Keras Layer,我在一个项目中使用Keras,我不明白Keras是如何使用数据输入的,也就是说Keras在创建第一层时是如何读取我们的输入数据的 例如: 模型=顺序() 添加模型(密集型(10,激活='sigmoid',输入尺寸=3,名称='layer1')) 在这个模型中,有10个神经元和一个三维输入意味着什么?如果输入数据有100个示例(矩阵数据中的行数),Keras如何使用它们 谢谢。input\u dim=3表示每个输入数据都有3个维度。在您的情况下,包含100个示例的输入数据的形状应为(100,3)。

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

例如:

  • 模型=顺序()
  • 添加模型(密集型(10,激活='sigmoid',输入尺寸=3,名称='layer1'))
  • 在这个模型中,有10个神经元和一个三维输入意味着什么?如果输入数据有100个示例(矩阵数据中的行数),Keras如何使用它们


    谢谢。

    input\u dim=3
    表示每个输入数据都有3个维度。在您的情况下,包含100个示例的输入数据的形状应为
    (100,3)
    。编译模型时,示例的数量实际上并不重要。但是您应该确保每个输入数据的维度与您在第一个密集层中设置的
    input\u 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)
    

    input\u dim=3
    表示每个输入数据都有3个维度。在您的情况下,包含100个示例的输入数据的形状应为
    (100,3)
    。编译模型时,示例的数量实际上并不重要。但是您应该确保每个输入数据的维度与您在第一个密集层中设置的
    input\u 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)
    

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

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

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

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


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

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

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

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

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


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

    谢谢!现在我明白多了。谢谢:D如果可以的话,我还有一个问题。如果我们以动物为例。如何获得具有正确值“宽度”、“高度”和“颜色”的三维输出?我知道神经网络中的值在0到1之间,所以我不明白我们怎么能