CNN代码实现

卷积层

卷积公式
O u t [ c h o ] [ r ] [ c ] = ∑ c h o = 0 C H o u t ∑ c h i = 0 C H i n ∑ r = 0 R ∑ c = 0 C ∑ k r = 0 K ∑ k c = 0 K I n [ c h i ] [ S ∗ r + k r ] [ S ∗ c + k c ] ∗ W [ c h o ] [ c h i ] [ k r ] [ k c ] Out[cho][r][c]= \sum \limits_{cho=0}^{CHout}\sum \limits_{chi=0}^{CHin}\sum \limits_{r=0}^{R}\sum \limits_{c=0}^{C}\sum \limits_{kr=0}^{K}\sum \limits_{kc=0}^{K} In[chi][S*r+kr][S*c+kc]*W[cho][chi][kr][kc] Out[cho][r][c]=cho=0CHoutchi=0CHinr=0Rc=0Ckr=0Kkc=0KIn[chi][Sr+kr][Sc+kc]W[cho][chi][kr][kc]

		float In[CHin][Rin][Cin];
		float W[CHout][CHin][K][K];
		float Out[CHout][R][C];
		for (int cho = 0; cho < CHout; cho++) {
			for (int chi = 0; chi < CHin; chi++) {
				for (int r = 0; r < R; r++) {
					for (int c = 0; c < C; c++) {
						for (int kr = 0; kr < K; kr++) {
							for (int kc = 0; kc < K; kc++) {
								Out[cho][r][c]+=In[chi][r+kr][c+kc]*W[cho][chi][kr][kc];
							}
						}
					}
				}
			}
		}

池化层

池化公式
O u t [ c h o ] [ r ] [ c ] = ∑ c h o = 0 C H o u t ∑ c h i = 0 C H i n ∑ r = 0 R ∑ c = 0 C M a x ( I n [ c h i ] [ K ∗ r ] [ K ∗ c ] , I n [ c h i ] [ K ∗ r ] [ K ∗ c + 1 ] , I n [ c h i ] [ K ∗ r + 1 ] [ K ∗ c ] , I n [ c h i ] [ K ∗ r + 1 ] [ K ∗ c + 1 ] ) Out[cho][r][c]= \sum \limits_{cho=0}^{CHout}\sum \limits_{chi=0}^{CHin}\sum \limits_{r=0}^{R}\sum \limits_{c=0}^{C} Max(In[chi][K*r][K*c],In[chi][K*r][K*c+1],In[chi][K*r+1][K*c],In[chi][K*r+1][K*c+1]) Out[cho][r][c]=cho=0CHoutchi=0CHinr=0Rc=0CMax(In[chi][Kr][Kc],In[chi][Kr][Kc+1],In[chi][Kr+1][Kc],In[chi][Kr+1][Kc+1])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值