首页 > 解决方案 > 如何在 TensorFlow - 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)
])

标签: tensorflowmachine-learningkeras

解决方案


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

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

有两种基本方法:

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

随机搜索:做同样的事情,但只需为每个参数定义一个范围,并尝试从每个范围内的均匀分布中抽取的随机参数集。您可以尝试尽可能多的参数集,只要您可以。这只是一个有根据的随机猜测。


推荐阅读