caffe 参数solver_param分析

2024-04-20 01:32
文章标签 分析 参数 caffe param solver

本文主要是介绍caffe 参数solver_param分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是ssd_pascal.py中的一段代码,因为在读ssd的代码,所以贴的这一段,一般别的solver param也差不多......


solver_param = {

    # Train parameters

//base_lr:网络的基础学习速率,一般设一个很小的值,然后根据迭代到不同次数,对学习速率做相应的变化.lr过大不会收敛,过小收敛过慢

    'base_lr': base_lr,

//weight_decay:权衰量,用于防止过拟合

    'weight_decay': 0.0005,

//lr_policy:学习速率的衰减策略,详细见后面

    'lr_policy': "step",

//stepsize:每40000次迭代减少学习率(这一项和lr_policy有关)

    'stepsize': 40000,

//学习率变化的比率(这一项和lr_policy有关)

    'gamma': 0.1,

//momentum:网络的冲量;学习的参数,不用变;上一次梯度更新的权重(找到的三个不一样的说法...)

    'momentum': 0.9,

//iter_size:iter_size*batch size=实际使用的batch size。 相当于读取batchsize*itersize个图像才做一下gradient decent。 这个参数可以规避由于gpu不足而导致的batchsize的限制 因为你可以用多个iteration做到很大的batch 即使单次batch有限

    'iter_size': iter_size,

//max_iter:最大迭代次数,告诉网络何时停止训练.太小达不到收敛,太大会导致震荡

    'max_iter': 60000,

//snapshot:每40000次迭代打印一次快照(就是把当前数据保存下来,方便下次重用,如果电源不稳定容易意外关机建议这个值设小一点...对,就是我...)

    'snapshot': 40000,

//display:每经过10次迭代,在屏幕上打印一次运行log(告诉你当前的loss之类的...)

    'display': 10,

//取多次foward的loss作平均,进行显示输出

    'average_loss': 10,

//type:选择一种优化算法,具体有哪些见后面

    'type': "SGD",

//选择CPU or GPU

    'solver_mode': solver_mode,

//device_id:选择几块GPU

    'device_id': device_id,

//用于调试的?暂时不确定...以后补上

    'debug_info': False,

//snapshot_after_train:true表示在训练完后把最后一次的训练结果保存下来

    'snapshot_after_train': True,

    # Test parameters

//test_iter:每次预测的迭代次数.一般test_iter*batch_size=所有test样本数,这样一次预测就可以覆盖所有test样本

    'test_iter': [test_iter],

//test_interval:训练时每迭代10000次进行一次预测

    'test_interval': 10000,

//

    'eval_type': "detection",

//

    'ap_version': "11point",

//test_initialization:false表示可以用上次保存的snapshot来继续训练

    'test_initialization': False,

    }




lr_policy

这个参数代表的是learning rate应该遵守什么样的变化规则,这个参数对应的是字符串,选项及说明如下:

  • “step” - 需要设置一个stepsize参数,返回base_lr * gamma ^ ( floor ( iter / stepsize ) ),iter为当前迭代次数
  • “multistep” - 和step相近,但是需要stepvalue参数,step是均匀等间隔变化,而multistep是根据stepvalue的值进行变化
  • “fixed” - 保持base_lr不变
  • “exp” - 返回base_lr * gamma ^ iter, iter为当前迭代次数
  • “poly” - 学习率进行多项式误差衰减,返回 base_lr ( 1 - iter / max_iter ) ^ ( power )
  • “sigmoid” - 学习率进行sigmod函数衰减,返回 base_lr ( 1/ 1+exp ( -gamma * ( iter - stepsize ) ) )

type

到目前的版本,caffe提供了六种优化算法来求解最优参数,在solver配置文件中,通过设置type类型来选择。

  • Stochastic Gradient Descent (type: "SGD"),
  • AdaDelta (type: "AdaDelta"),
  • Adaptive Gradient (type: "AdaGrad"),
  • Adam (type: "Adam"),
  • Nesterov’s Accelerated Gradient (type: "Nesterov") and
  • RMSprop (type: "RMSProp")

这篇关于caffe 参数solver_param分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918963

相关文章

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re