tensorflow - 如何在 TensorFlow - keras 中选择密集单位?

标签 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)
])

最佳答案

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

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

有两种基本方法:

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

随机搜索:执行相同的操作,但只需为每个参数定义一个范围,并尝试从每个范围上的均匀分布中抽取的随机参数集。您可以尝试尽可能多的参数集,尝试尽可能多的时间。这只是一个知情的随机猜测。

关于tensorflow - 如何在 TensorFlow - keras 中选择密集单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57387485/

相关文章:

javascript - 在 Chrome 扩展中包含第三方库后 undefined variable

tensorflow - 我应该包含 Tensorflow 对象检测 API 的负面示例吗?

opencv - 如何在openCV中使用Caffe框架加载CNN训练模型来测试(预测/分类)新图像?

python - LSTM:了解时间步长、样本和特征,尤其是在 reshape 和 input_shape 中的使用

python - 在 Keras 中使用 SSIM 损失函数

machine-learning - MNIST教程中是如何预处理MNIST数据集的?

tensorflow - 由于 "A job with this id already exists"无法将作业重新提交到 ml-engine

machine-learning - 需要一个标签(输出基数)多于特征(输入基数)的数据集

r - 无法使用 R 中的 pROC 库获得正确的多类 ROC 曲线

python - 使用 savedmodel simple_save 和 tensorflow keras 预处理输入