cnn网络中,网络更新一次参数是根据loss反向传播来,这个loss是一个batch_size的图像前向传播得到的loss和除以batch_size大小得到的平均loss。

softmax_loss前向传播中有这样一段代码:    loss/get_normalizer(normalization_,valid_count),这就是对loss进行归一化。

如果我有ignore_label,valid_cout就不为-1,没有就为-1。我的prototxt里面是没有的,所以最后我使用的normalizer是outer_num_ * inner_num_的形式。

实际上就是如果有ignore_label就归一化的所有的valid的,如果没有就是归一化batch×w×h

get_normalizer的定义在hpp中,实现在cpp文件中。

normalization_mode传入的是normalization_,normalization_的定义在hpp,赋值实现在cpp的layer_setup里,如下图。观察我的softmax_loss没有添加loss_param,所以就是默认的valid模式。

normalization_的赋值来自于layer的loss参数,如下图所示。这里有normalization和normalize两个参数,默认的normalization是valid类型,normalize是bool型无默认值。从上面一个图和下一个图的解释可以看出,没有normalization的情况,normalize为true就是valid,为false就是batch_size,其他情况都是由normalization来决定。也就是说normalize既可以不存在,也可以存在为true,存在为false。

注意结合.h、.cpp、.cu一起看代码

最新文章

  1. 在Node.js使用mysql模块时遇到的坑
  2. [资料分享]SQL Server 2016/2014/2012/2008简体中文企业版下载+对应补丁
  3. NSOperation操作依赖和监听
  4. 在Windows上运行InfoPi
  5. Sass开发环境搭建
  6. Java学习笔记(十六)——Java RMI
  7. angular router-ui
  8. PHP模拟发送POST请求之二、用PHP和JS处理URL信息
  9. raspberry树莓派安装CUPS实现打印服务器共享HP P1007打印机
  10. kmp算法详解
  11. MMU和TLB
  12. Gradle 1.3之前的Publishing artifacts
  13. Linux内核中影响tcp三次握手的一些协议配置
  14. NEsper z
  15. Android 中延迟执行的小结
  16. runtime的概念,message send如果寻找不到相应的对象,如何进行后续处理
  17. AOP 面向方面的编程 Aspect Oriented Programing --第一次听说呢,汗!
  18. Codeforces Round #396 (Div. 2)
  19. 学习 day4 html 盒子模型
  20. c++中求数组长度

热门文章

  1. POJ - 3190 Stall Reservations 贪心+自定义优先级的优先队列(求含不重叠子序列的多个序列最小值问题)
  2. Qt测试代码执行时间
  3. Lightoj1011【KM算法】
  4. PJzhang:python基础入门的7个疗程-one
  5. B. Lecture Sleep( Educational Codeforces Round 41 (Rated for Div. 2))
  6. Jquery | 基础 | 事件的链式写法
  7. Python及bs4、lxml、numpy模块包的安装
  8. 最新Centos7安装python3并与python2共存
  9. __slots__,__doc__,__module__,__class__.__call__
  10. [WOJ3010] 骰子