Keras如何读取输入数据?

时间:2017-12-27 08:43:50

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

我正在使用Keras进行项目,我不了解Keras如何使用数据输入,也就是说Keras在创建第一层时如何读取输入数据。

例如:

  1. model = Sequential()
  2. model.add(密集(10,激活=' sigmoid',input_dim = 3,name =' layer1'))
  3. 在这个模型中,10个神经元和3个维度的输入是什么意思?如果输入数据有100个例子(矩阵数据中的行数),Keras如何使用它们?

    谢谢。

2 个答案:

答案 0 :(得分:3)

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

一个简短的例子:

input_dim

答案 1 :(得分:1)

input_dim=3表示您的数据有3个功能,可用于确定最终结果,例如。如果你想确定动物数据的参考,可以将宽度,高度和颜色作为数据。

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

10 neurons是10个地方'其中网络能够存储神经元权重和输入数据之间的乘法结果。您可以将神经元想象成一个灯泡,它会亮一点或更暗,这取决于数据是否显示某些有用的数据特征,例如。如果动物身高超过3米。每个神经元都有自己的一组权重,当网络从您的数据中检查下一个样本时,这些权重会稍微改变一下。最后你应该有10个神经元(灯泡),它们会以或多或少的强烈反应,这取决于你数据中不同特征的存在,例如。如果动物很高。

您拥有的神经元越多,您可以跟踪的功能越多,例如。如果动物身材高大,毛茸茸,橙色,斑点等等。但是,你拥有的神经元越多,你的网络也越准确,并且会学习你的训练范例中独有的特征(它被称为过度拟合) )但不能帮助您识别未包含在训练数据中的动物样本(它被称为概括能力,是实际训练神经网络的最重要的一点)。选择神经元的数量是一个实际的练习,你可以搜索一个适合你需要的神经元。

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