【问题标题】:Keras CIFAR-10 Dense Layer Code Why 512 Neurons in Last Layer?Keras CIFAR-10 Dense Layer Code 为什么最后一层有 512 个神经元?
【发布时间】:2019-02-11 05:01:23
【问题描述】:

我正在使用 Keras 构建一个 CNN 来处理 CIFAR-10 数据集。我对在线教程的最后几行感到有些困惑。他们拍摄 50,000 张 32x32 彩色图像,并通过 4 个卷积层和一个全连接层对其进行处理。最后一部分是这样完成的:

model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))

我试图理解为什么它是 model.add(Dense(512)) 而不是其他数字。例如,我认为 32x32 的图像可以展平为 1024 大小的矢量。但是,他们为什么在这里选择512?

谢谢!

【问题讨论】:

    标签: tensorflow keras


    【解决方案1】:

    实际上不是 32x32,它是 32x32x3,因为颜色通道和扁平化和密集不同的方法我认为你不会得到代码有低级实现:

    W1=tf.Variable(tf.random_normal([32*32*3,512]),name="W1") #variable
    x=tf.placeholder(tf.float32,[batch,32,32,3])              #placeholder for inputs
    flat=tf.reshape(x,[batch,32*32*3])                        #model.add(Flatten())
    mul1=tf.matmul(flat,W1)                                   #model.add(Dense(512))
    relu=tf.nn.relu(mul1)                                #model.add(Activation('relu'))
    

    公寓的shape=[batch,32*32*3] mul1的shape=[batch,512]

    当然它可能是 1024 或 5000,但它变得更难优化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-16
      • 2020-08-04
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多