Python 知道在Keras致密层中放置什么

Python 知道在Keras致密层中放置什么,python,tensorflow,keras,Python,Tensorflow,Keras,我是Keras的新手,正在做一个基本的Kaggle教程()。我正在努力理解在一个密集的层中到底应该放些什么。我发现这篇文章很有帮助,但我的理解还不太清楚 在我的顺序模型中,我从一个密集的层开始。但是,我看到一些帖子说第一层必须有一个input\u形状,而我看到很多Kaggle提交和其他不符合这一点的例子 在第一层中是否实际需要输入\u形状?有必要吗 第一个参数是units。就我的一生而言,我找不到一个可靠的解释来解释这个论点到底应该是什么。根据数据的形状,这里是否有一些公式可以运行?有时,我在第

我是Keras的新手,正在做一个基本的Kaggle教程()。我正在努力理解在一个
密集的
层中到底应该放些什么。我发现这篇文章很有帮助,但我的理解还不太清楚

在我的
顺序
模型中,我从一个
密集的
层开始。但是,我看到一些帖子说第一层必须有一个
input\u形状
,而我看到很多Kaggle提交和其他不符合这一点的例子

  • 在第一层中是否实际需要
    输入\u形状
    ?有必要吗
  • 第一个参数是
    units
    。就我的一生而言,我找不到一个可靠的解释来解释这个论点到底应该是什么。根据数据的
    形状
    ,这里是否有一些公式可以运行?有时,我在第一个
    密集的
    层中看到相当大的数字(如784),而在其他情况下,它很小(如10)。或者,这完全是猜测
  • 我知道没有“这就是你对这类数据所做的”的方法来构建预测模型,但我不知道如何在这里对插入的数字进行有根据的猜测

    这是我目前的模型:

    model = Sequential()
    model.add(Flatten())
    model.add(Dense(64, activation=tf.nn.relu))
    model.add(Dense(10, activation=tf.nn.softmax))
    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
    x_val = x_train[:10000]
    y_val = labels[:10000]
    model.fit(x_train, y_train, epochs=3) # , validation_data=(x_val, y_val))
    
    我的模型表现不错(我认为),因为在8400张图像中,我只有大约350张未命中。通过添加更多层、更改数字、使用
    辍学等,我将其降到了220左右

    我真的很想更好地了解了解我应该插入哪些数字的最佳方法。还有,我是否需要一个
    输入形状

    您的第一个问题:
    是的,
    input\u shape
    必须在第一层中指定,在您的情况下,第一层是
    plant
    层。这是因为编译模型后需要初始化不同的参数(权重和偏差)。在您的情况下,第一个
    密集
    层的#婴儿车将取决于在
    展平
    层中指定的
    输入_形状

    第二个问题:
    如果
    Desnse
    层是模型的最后一层,那么
    单元
    显然应该是您希望模型执行的#类/#输出。然而,就我所知,当涉及到
    隐藏层时,没有这样一个通用的规则/公式来保证
    单元的最佳数量。这实际上取决于您输入到模型中的数据以及任务的复杂性等等。。。我要说的是,它应该在反复试验的基础上进行选择

    编辑:
    如果你真的对我的回答不满意,我在这里为你的第二个问题找到了一些信息。
    :但它适用于卷积神经网络