当前位置: 首页 > news >正文

网站建设意味着什么网站建设整体情况介绍

网站建设意味着什么,网站建设整体情况介绍,网站工商网监标,烟台模板建站代理文章目录0. 背景#xff1a;why optuna0.1 插播一个简单的grid search0.2 参考1. Optuna1.1 a basic demo与部分参数释义1.2 random的问题1.3 Objective方法类2. Optuna与grid search4. optuna的剪枝prune5. optuna与可视化6. 未完待续0. 背景#xff1a;why optuna 小模型参… 文章目录0. 背景why optuna0.1 插播一个简单的grid search0.2 参考1. Optuna1.1 a basic demo与部分参数释义1.2 random的问题1.3 Objective方法类2. Optuna与grid search4. optuna的剪枝prune5. optuna与可视化6. 未完待续0. 背景why optuna 小模型参数量少单卡跑不需要服务器尝试了一下ray tune不是很适合。。而且很难用。。 再三尝试后决定使用optuna选择的原因 我这个是小模型希望调参工具不要太复杂最好能具有良好的可视化功能和ray tune一样使用起来都只需要“几行代码”的包装但是一定要比ray tune操心更少的参数就可以完成任务或许大模型/分布式更适合ray tune官方文档新手友好demo很多optuna任何一个demo都非常言简意赅我这里调参以grid search 为主但是也想尝试一下非grid search的东西 我本来是调参的。。结果却调了很多调参的工具老半天所以分享一些零碎的经验和踩过的坑查看本文之前最好已经对optuna或者其他调参工具的使用方式有一个基本的了解喔不要太指望这个写的很碎的教程能帮你从0起步… 0.1 插播一个简单的grid search 有一个知乎上的非常简单的grid search的代码也贴一下但是这个太简单了也满足不了我的需求找不到网址了。代码和荣誉属于这位朋友 # trainable params parameters dict(lr[.01,.001],batch_size [100,1000],shuffle [True,False]) #创建可传递给product函数的可迭代列表 param_values [v for v in parameters.values()] #把各个列表进行组合得到一系列组合的参数 #*号是告诉乘积函数把列表中每个值作为参数而不是把列表本身当做参数来对待 for lr,batch_size,shuffle in product(*param_values):comment fbatch_size{batch_size}lr{lr}shuffle{shuffle}#这里写你调陈的主程序即可print(comment)0.2 参考 一些文档很值得参考首先是官方文档 所有函数的demo都非常简单而且说人话。。对于新手非常友好 结合李宏毅老师的demo设计了一个使用方法对我帮助很大也建议新手参考一下optuna可视化的参考 文档有点长不过还可以官方文档 1. Optuna 1.1 a basic demo与部分参数释义 optimize函数与suggest_float的一个demo import optuna def objective(trial):x trial.suggest_float(x, 0, 10)return x**2 study optuna.create_study() study.optimize(objective, n_trials3,show_progress_barTrue)optimize参数 objective: objecticve函数就是包装一下training的过程具体参考其他文档n_trials: objecticve函数执行的次数每次执行都会抽取一个x抽取规则是suggest_floatshow_progress_bar多输出一点tuning的进展信息默认是False其实设置为True也不会有什么有价值的信息就像tqdm一样会告诉你现在进行到第几个还剩几个。 suggest_float函数 官方文档值得参考 含义从0和10中抽取一个float数返回给x当然如果想返回一个int使用suggest_int 1.2 random的问题 因为我有一个小小的诉求是不要每次都重新抽取新的training data组成data loader我希望 “固定住”training data的split方式 然后观察一些参数的影响。重点在于 已知optimize会执行objective函数n_trials次按照官方的写法是不是每次执行都会重新抽取执行各种random程序 经过实验是的 如何设计使得固定住training data? 我的方法是重写objective function写成Objective class因此 objective Objective(params)重写之后一个是可以传递任意的参数给objective函数(不然只能传一个trial)二是self.attr的值是不会变的 1.3 Objective方法类 参考官方文档当重写之后可以给objective函数传入自己需要的参数并且self.attr的值是不会变的刚好解决了我需要的一切问题根据官方重写的demo: import optuna import numpy as np class Objective:def __init__(self, min_x, max_x):# Hold this implementation specific arguments as the fields of the class.self.min_x min_xself.max_x max_x# 注意这里的值不会变喔self.test_randn np.random.randn(7)# 这个trial是必须的也是唯一的def __call__(self, trial):# Calculate an objective value by using the extra arguments.x trial.suggest_float(x, self.min_x, self.max_x)print(self.test_randn)return (x - 2) ** 2# Execute an optimization by using an Objective instance. # 调用100次Objective functionself.test_randn是不会变的 study optuna.create_study() study.optimize(Objective(-100, 100), n_trials100)我的Objective class 大概这样 class Objective:# 传递dataset以及opt后者是一个dict存放了各种不需要tune的参数def __init__(self, dataset, opt):# Hold this implementation specific arguments as the fields of the class.self.dataset datasetself.opt opt# Hold the data split!!self.shuffled_indices save_data_idx(dataset,opt)def __call__(self, trial):# Calculate an objective value by using the extra arguments.# 需要tune的参数config {learning_rate: trial.suggest_categorical(learning_rate, [5e-2, 1e-2, 5e-3]),lr_for_pi: trial.suggest_categorical(lr_for_pi, [1e-2, 5e-2, 1e-3])}print(idx check: ,self.shuffled_indices[0:5])# 每次split出来的data都是一致的train_loader, val_loader, test_loader get_data_loader(self.dataset, self.shuffled_indices, self.opt)model MLP(self.opt.N_gaussians).to(device) performance trainer(train_loader, val_loader, model, config, self.opt, device)return performance 2. Optuna与grid search 为了做到网格搜索grid search做了一些必要的修改其实感觉还是有点笨重修改1: 假设我们这里需要调2个参数请把他们都设置成trial.suggest_categorical而不是什么int或者float后面的list存放你想尝试的几个数据比如[5e-2, 1e-2, 5e-3]就是我想尝试的3个数据 config {learning_rate: trial.suggest_categorical(learning_rate, [5e-2, 1e-2, 5e-3]),lr_for_pi: trial.suggest_categorical(lr_for_pi, [1e-2, 5e-2, 1e-3])}修改2: 在实例化一个study时加上参数sampler并且选取GridSampler # 里面所有的组合被cover之后会自动stop sampler optuna.samplers.GridSampler(search_space{learning_rate: [5e-2, 1e-2, 5e-3], # 注意这里和config里保持一致lr_for_pi: [1e-2, 5e-2, 1e-3] # 注意这里和config里保持一致}) study optuna.create_study(study_namestudy_name,directionminimize,storagestorage_name,load_if_existsTrue,samplersampler,prunerpruner) study.optimize(Objective(dataset), n_trials100,show_progress_barTrue) 注意sampler 里面的搜索空间search_space和上面的config保持一致GridSampler的官方文档非常值得一读: 上述修改的作用 即便n_trials100只要搜索完了搜索空间search_space里的全部组合就会自动停止比如这里只需要搜索9个参数组合那么执行9次之后就会自动停止当config不是suggest_categorical也可以进行网格搜索那么依然会等cover全部组合之后自动停止因此这个时候的试探次可能不止9次 4. optuna的剪枝prune optuna有一个默认的剪枝算法这个剪枝比ray tune默认的早停算法要好多了。。ray tune默认的方法很难调。optuna默认的剪枝是optuna.pruners.MedianPruner这个的剪枝策略不一定最好但是足够通用具体可以参考官方文档但是并不是每一次都需要剪枝不需要剪枝就使用optuna.pruners.NopPruner() pruner optuna.pruners.NopPruner() study optuna.create_study(study_namestudy_name,directionminimize,storagestorage_name,load_if_existsTrue,samplersampler,prunerpruner)5. optuna与可视化 这个是为什么我选择optuna的主要原因之一可视化流程请见相关的官方文档见0.2 参考非常轻松加愉快的就执行完毕了。执行的时候注意 生成的数据库文件应该可以这么叫的根目录在哪里就在哪里执行命令打开dashboard实例化study时参数study_name指定了数据库文件的名字如果不指定会默认生成一个但是注意这个名字的命名规则不允许有空格喔 optuna.create_study(study_namestudy_name,directionminimize,storagestorage_name,load_if_existsTrue,samplersampler,prunerpruner) 6. 未完待续 日后希望项目结束可以放上全部代码。希望大家也能留下自己的optuna使用经验。
http://www.yayakq.cn/news/4086/

相关文章:

  • 网站怎么做构成网站开发前端模板
  • 潍坊 区网站建设国内有名室内设计公司
  • 快速网站备案中国购物网站有哪些
  • 优设网站怎么下载服务好的普通网站建设
  • 网站整体建设方案论文在什么网站可以做推广
  • 国外好玩的网站网站顶部轮播怎么做
  • 临沂做网站的2022年新闻热点事件
  • 网站推广四个阶段wordpress 全屏主题
  • 婚纱摄影网站定制seo优化网站建设哪家好
  • 网站建设时间计划图域名怎么绑定自己网站
  • 门户网站域名杭州建设工程协会
  • 企业网站托管费用现在 做网站 最流行
  • 网站后台管理怎么进电脑iis做网站
  • dedecms网站空白网站建设公司兴田德润i优惠吗
  • 海尔网站建设目标深圳甜富设计
  • 河源市住房建设局网站wordpress回复查看插件
  • iis网站重定向沈阳网上注册公司流程
  • 网站建设空间步骤详解福田做棋牌网站建设哪家技术好
  • 东莞网站开发报价个人网站开发背景及意义
  • 典当行网站策划凡客诚品官网app下载
  • 深圳建设局招标网站做网站备案是承诺书在哪下载
  • 信用网站建设学生个人网页制作代码模板
  • 网站建设登录页面怎么写河北网站开发
  • 响水做网站哪家公司好wordpress域名改了
  • 做钢管用哪个门户网站吉林做网站多少钱
  • 专业做网站的公司有网站建设 五金
  • 黄岐建网站桂林象鼻山附近酒店推荐
  • 网站可以用ai做吗wordpress商品模板
  • 哪里做企业网站wordpress媒体库有错误
  • 南宁网站建公司中国室内设计者联盟官网