我是机器学习 - 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)
])
最佳答案
这些被称为超参数,应该在验证/测试集上进行调整,以调整模型以获得更高的准确性。
调整只是意味着尝试不同的参数组合,并根据问题在验证集上保留损失值最低或精度更高的参数。
有两种基本方法:
网格搜索:对于每个参数,确定一个范围并逐步进入该范围,例如 8 到 64 个神经元,以 2 的幂 (8、16、32、64) 为单位,然后尝试参数的每种组合。这显然需要指数数量的模型进行训练和测试,并且需要大量时间。
随机搜索:执行相同的操作,但只需为每个参数定义一个范围,并尝试从每个范围上的均匀分布中抽取的随机参数集。您可以尝试尽可能多的参数集,尝试尽可能多的时间。这只是一个知情的随机猜测。
关于tensorflow - 如何在 TensorFlow - keras 中选择密集单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57387485/