Caffe-02-网络配置与solver超参数配置详解(二)

简介: Caffe-02-网络配置与solver超参数配置详解

softmax-loss层


例子如下,下面的例子分别输出的是loss值和似然值

##输出loss值
layer {
  name: "loss"
  type: "SoftmaxWithLoss"
  bottom: "ip2"
  bottom: "label"
  top: "loss"
}
##输出似然值
layer {
  name: "prob"
  type: "Softmax"
  bottom: "cls3_fc"
  top: "prob"
}

reshape层


有时候,我们希望在不改变数据的时候改变输入的维度,所以可以使用reshape进行调整输入数据的参数,例子如下:

layer {
  name: "reshape"
  type: "Reshape"
  top: "data"
  reshape_param { 
  shape: { 
  dim: 0
  dim: 3 
  dim: 32 
  dim: -1 
  } 
}
}
参数解释:在shape中使用参数进行指定输入的数据的大小通道数和批次个数。
dim:0 表示维度不变,和原来相同
dim:3 把原来的维度变成3
dim: -1 表示由系统进行自动计算维度,数据的总量不变。

由上述的例子可以假设输入了10张3通道的64X32的彩色图片),

根据上述的数据设置,批次大小没有改变,然后通道数仍然为32数据的宽为32,高自动计算和原来总量一直,因为原来为64X32,调整宽为32,这里计算后高变为了64。

dropout层


为了防止过拟合,设置dropout层。这里只需要进行配置一个参数dropout_ratio,即可完成dropout的配置,dropout就是随机挑选一些数据进行不使能,模拟神经元遗忘的过程。

layer {
  name: "drop"
  type: "Dropout"
  top: fc1"
  bottom:"fc1"
  dropout_param{
    dropout_ratio: 0.5
  }
}

solver超参数配置详解


因为神经网络的函数往往都是都是非凸的,也就是无法通过数学解析式的方式找到最优解,这时就需要对该网络下的训练参数进行调整设置,已达到更好的训练效果。这里把网络的参数配置文件单独放在了solver.prototxt中,方便对参数进行调整优化。

在例程中给出solver的一个例子,然后对例子进行分析。

# reduce the learning rate after 8 epochs (4000 iters) by a factor of 10
# The train/test net protocol buffer definition
net: "examples/cifar10/cifar10_quick_train_test.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.0001
momentum: 0.9
weight_decay: 0.004
# The learning rate policy
lr_policy: "fixed"
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 500
# snapshot intermediate results
snapshot: 500
snapshot_format: HDF5
snapshot_prefix: "examples/cifar10/cifar10_quick"
# solver mode: CPU or GPU
solver_mode: CPU

首先在之前的网络配置文件中,我们配置好了各层的网络的结构,所以这里要首先进行指定网络模型文件:

##网络模型的描述文件
#也可以进行训练和测试分别指定
#train_net="xxxxxxxxxxx"
#test_net ="xxxxxxxxxxx"
net: "examples/cifar10/cifar10_quick_train_test.prototxt"

然后定义测试的间隔和训练次数,训练次数这个参数要和test_layer结合考虑,如果在test_layer的每批次的大小是100而总共的测试数据为10000张,那么参数为10000/100=100。

test_iter: 100
#每训练500次进行一次测试
test_interval: 500

接着定义学习率、动力、权重值的衰减率等参数。

#学习率
base_lr: 0.0001
#动力 
momentum: 0.9

对于优化算法的选择可以忽略,默认为SGD,不同的优化算法差别不是很大。

#在caffe中一共有6种优化算法可以选择

  1. Stochastic Gradient Descent (type: SGD)
  2. AdaDelta (type: AdaDelta)
  3. Adaptive Gradient (type: AdaGrad)
  4. Adam (type: Adam)
  5. Nesterov’s Accelerated Gradient (type: Nesterov)
  6. RMSprop (type: RMSPorp)

权重衰减项,就是正则化项,作用是防止过度拟合。

weight_decay: 0.004

学习率的调整策略:

  • fixed :保持base_lr不变
  • step :如果设置为step,则需要设置一个strpsize,返回值为:base_lr X gamma ^(floor (iter / stepsize)) ,iter 为迭代次数。
  • exp : 返回值为base_lr X gamma ^i ter ,iter 为迭代次数。
  • inv :如果设置为了inv则还需要设置power和gamma项,返回值为base_lr * (1 + gamma * iter ) ^ (- power ),iter 为迭代次数。
  • multistep : 如果设置multistep ,还需要设置stepvalue,这个参数和step相似,step是均匀等间隔变化,而multistep 是根据stepvalue值变化。
  • poly :学习率进行多项式误差。返回:base_lr ( 1 - iter / max_iter )^ (power ) ,iter 为迭代次数。
  • sigmoid : 学习率进行sigmoid 衰减,返回:base_lr (1 / ( 1 + exp ( -gamma X(iter - stepsize))))

每训练100次进行一次屏幕显示,设置为0则不显示。

display: 100

最大迭代次数:

max_iter: 500

#快照,在训练每100次的时候保存一次,如果设置0则为不保存。

snapshot: 100
snapshot_format: HDF5
snapshot_prefix: "examples/cifar10/cifar10_quick"

#选择运行模式

solver_mode: CPU
目录
相关文章
|
6月前
|
人工智能 运维 安全
配置驱动的动态 Agent 架构网络:实现高效编排、动态更新与智能治理
本文所阐述的配置驱动智能 Agent 架构,其核心价值在于为 Agent 开发领域提供了一套通用的、可落地的标准化范式。
2573 91
|
7月前
|
存储 弹性计算 网络协议
阿里云服务器ECS实例规格族是什么?不同规格CPU型号、处理器主频及网络性能参数均不同
阿里云ECS实例规格族是指具有不同性能特点和适用场景的实例类型集合。不同规格族如计算型c9i、通用算力型u1、经济型e等,在CPU型号、主频、网络性能、云盘IOPS等方面存在差异。即使CPU和内存配置相同,性能参数和价格也各不相同,适用于不同业务需求。
538 144
|
9月前
|
机器学习/深度学习 算法
PSO和GA优化BP神经网络参数
PSO和GA优化BP神经网络参数
281 5
|
6月前
|
人工智能 安全 数据可视化
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
本文系统性地提出并阐述了一种配置驱动的独立运行时Agent架构,旨在解决当前低代码/平台化Agent方案在企业级落地时面临困难,为Agent开发领域提供了一套通用的、可落地的标准化范式。
551 18
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
|
5月前
|
网络协议 Linux 虚拟化
配置VM网络:如何设定静态IP以访问主机IP和互联网
以上就是设定虚拟机网络和静态IP地址的基本步骤。需要注意的是,这些步骤可能会因为虚拟机软件、操作系统以及网络环境的不同而有所差异。在进行设定时,应根据具体情况进行调整。
470 10
|
5月前
|
弹性计算 安全 应用服务中间件
阿里云渠道商:怎么配置阿里云网络ACL?
阿里云网络ACL是子网级无状态防火墙,支持精准流量控制、规则热生效且免费使用。本文详解5步配置流程,助您实现Web与数据库层的安全隔离,提升云上网络安全。
|
机器学习/深度学习 移动开发 测试技术
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
591 1
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
|
9月前
|
安全 网络虚拟化 数据安全/隐私保护
配置小型网络WLAN基本业务示例
本文介绍了通过AC与AP直连组网实现企业分支机构移动办公的WLAN基本业务配置方案。需求包括提供名为“WiFi”的无线网络,分配192.168.1.0/24网段IP地址给工作人员,采用直连二层组网方式,AC作为DHCP服务器,并使用隧道转发业务数据。配置步骤涵盖AP与AC间CAPWAP报文传输、DHCP服务设置、AP上线及WLAN业务参数配置等,最终确保STA成功接入无线网络“WiFi”。
配置小型网络WLAN基本业务示例
|
9月前
|
监控 安全 网络安全
网络安全新姿势:多IP配置的五大好处
服务器配置多IP地址,既能提升网络速度与安全性,又能实现多站点托管和故障转移。本文详解多IP的五大妙用、配置方法及进阶技巧。从理论到实践,合理规划IP资源,让服务器性能跃升新高度。
301 2

热门文章

最新文章