深度学习框架 源码阅读 调试 分析 c++ tiny-dnn (2) - 以sinus_fit为例子

tiny-dnn

作图

tiny-dnn–sinus_fit 正弦函数拟合
tiny-dnn--sinus_fit 正弦函数拟合

调试预准备

  • 去掉并行选项, 使用单线程, 这样可以看到完整的调用栈
  • 熟悉 intel的 高级向量扩展指令集: Advanced Vector Extensions,简称AVX
  • 对代码做一些修改,方便调试,具体见分支 prgrmz/dev

prgrmz/dev

  • 以回归问题sinus_fit.cpp为例子

sinus_fit : 拟合正弦函数

名称解释

bwd_*
  • bwd: barkward的缩写

  • bwd_in_data:

在网络中,从后往前看,当看某层时,该层的输入数据 叫 bwd_in_data

常见…

基本是以层layer为话语对象 , 来写的代码
比如 layer.h :: tiny_dnn::layer 的子类 fully_connected_layer.h 全连接层
  • fwd_in_data_, fwd_out_data_

在该网络中,从前向后依次经过各层,喂给当前层的输入叫做 fwd_in_data_,当前层吐出的输出叫 fwd_out_data_

  • bwd_in_data_, bwd_out_data_

在该网络中,从后向前依次经过各层,喂给当前层的输入叫做 bwd_in_data_,当前层吐出的输出叫 bwd_out_data_

  • 注意,fwd_in_, bwd_in_, fwd_out_, bwd_out_ 中的 in都是左边的,out都是右边的。 in、out的含义有这种一致性。

  • 但实际上 向量 fwd_in_data_ , bwd_in_data_ 中有三个元素, 依次是 data、weight、bias

可见 , fwd_in_data_ , bwd_in_data_ 实际上 既是 喂给 当前层 的输入数据,又包含了 当前层自身的权重。
即 fwd_in_data_ , bwd_in_data_ 实际上 名不副实,应该是为了代码写起来方便。

  • in_type_, out_type_

in_type_ : 表示 fwd_in_data_ , bwd_in_data_ 中个元素的类型, 即 data、weight、bias
out_type_ : 表示 fwd_out_data_ , bwd_out_data_ 中元素的类型, 即 data

  • fwd_ctx_, bwd_ctx_

fwd_ctx_.in_data_ : 是 fwd_in_data_的同义词,指向的是同一个对象
fwd_ctx_.out_data_ : 是 fwd_out_data_的同义词,指向的是同一个对象
bwd_ctx_.in_data_ : 是 bwd_in_data_的同义词,指向的是同一个对象
bwd_ctx_.out_data_ : 是 bwd_out_data_的同义词,指向的是同一个对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ziix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值