如何在TensorFlow-Keras中选择密度单位?

时间:2019-08-07 05:26:53

标签: tensorflow machine-learning keras

我是机器学习的非常初学者-TensorFlow,我遇到了一些Tensorflow-Keras的示例模型,但令人困惑,那里的密集单元如何选择。

分别为32和512。

model = Sequential()
model.add(Dense(32, input_shape=(16,)))
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])

1 个答案:

答案 0 :(得分:2)

这些被称为超参数,应在验证/测试集上进行调整以调整模型以获得更高的准确性。

调整只是意味着尝试不同的参数组合,并根据问题将损耗值保持最低或在验证集上具有更高的准确性。

有两种基本方法:

网格搜索:对于每个参数,确定一个范围并以2(8、16、32、64)的幂次逐步进入该范围(如8到64个神经元),然后尝试参数的每种组合。显然,这需要对指数模型进行训练和测试,并且需要大量时间。

随机搜索:进行相同的操作,但只是为每个参数定义一个范围,然后尝试从每个范围的均匀分布中得出一组随机参数。您可以尝试任意数量的参数集,并可以尝试多长时间。这只是有根据的随机猜测。