tensorflow官方Blog-使用Keras Tuner超参数优化框架 进行超参数调整 ,具体实现版本

Keras Tuner是一个超参数优化框架,用于简化机器学习项目的超参数选择。它提供了贝叶斯优化、超带宽和随机搜索算法。在本文中,通过一个端到端示例展示了如何构建可调模型,使用Hyperband算法进行超参数搜索,以及如何获取最佳模型。此外,还介绍了Keras Tuner的分布式并行搜索、自定义训练循环和调整Scikit-learn模型的功能。
摘要由CSDN通过智能技术生成


https://blog.tensorflow.org/博客上好东西很多,获益匪浅,大家常看常练习

进入正题,keras tuner超参数优化框架

机器学习项目的成功往往是关键取决于良好的超参数的选择。随着机器学习作为一个领域继续成熟,依靠反复试验为这些参数找到合适的值(也称为“梯度下降”)根本无法扩展。实际上,通过复杂的超参数优化算法发现了许多当今的最新结果,例如EfficientNet。

在此,请大佬们拜读efficientnet论文

Keras Tuner是易于使用的可分配超参数优化框架,可解决执行超参数搜索的难题。使用Keras Tuner可以轻松定义搜索空间,并利用随附的算法来找到最佳的超参数值。Keras Tuner内置了贝叶斯优化,超带宽和随机搜索算法,并且还设计为研究人员可以轻松扩展以尝试使用新的搜索算法。

在这里插入图片描述

模型构建def build_model(hp):

这是一个简单的端到端示例。首先,我们定义一个模型构建功能。它采用一个hp参数,您可以从该参数中采样超参数,例如hp.Int(‘units’, min_value=32, max_value=512, step=32)(某个范围内的整数)。注意如何用模型构建代码内联定义超参数。下面的示例创建了一个简单的可调模型,我们将在CIFAR-10上进行训练

import tensorflow as tf

def build_model(hp):
  inputs = tf.keras.Input(shape=(32, 32, 3))
  x = inputs
  for i in range(hp.Int('conv_blocks', 3, 5, default=3)):
    filters = hp.Int('filters_' + str(i), 32, 256, step=32)
    for _ in range(2):
      x = tf.keras.layers.Convolution2D(
        filters, kernel_size=(3, 3), padding='same')(x)
      x = tf.keras.layers.BatchNormalization()(x)
      x = tf.keras.layers.ReLU()(x)
    if hp.Choice('pooling_' + str(i), ['avg', 'max']) == 'max':
      x = tf.keras.layers.MaxPool2D()(x)
    else:
      x = tf.keras.layers.AvgPool2D()(x)
  x = tf.keras.layers.GlobalAvgPool2D()(x)
  x = tf.keras.layers.Dense(
      hp.Int('hidden_size', 30, 100, step=10, default=50),
      activation='relu')(x)
  x = tf.keras.layers.Dropout(
      hp.Float('dropout', 0, 0.5, step=0.1, default=0.5))(x
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值