1.卷积反向传播

1.x[0,0;,;]
x[n,c,h,w] n表示样本标号,一般是一个batch一个batch输入的 ,0表示样本标号为0
c 表示图像的channel 对于灰度图来讲有三个r g b
h 表示图像的高
w 表示图像的宽
2.池化

mean
forward:[1 3;2 2]->[2]
backward[2] ->[0.5 0.5; 0.5 0.5]

max
forward:[1 3;2 2]
backward[3]->[0 3;0 0]

  w1                   w2      w3

data ->卷积层->relu ->pooling->全连接->score
只有卷积层和全连接层有参数

#compute the foward pass 前向传播
a1,cache1 = conv_relu_pool_forward(X,W1,b1,conv_param,pool_param
a2,cache2=affine_relu_forward(a1,w2,b2)
scores,cache3 =affine_forward(a2,w3,b3)

#copute  the backward pass
data_loss,dscores=softmax_loss(scores,y)
da2,dw3,db3=affine_backward(dscores,cache3)
da1,dw2,db2=affine_relu_backward(da2,cache2)
dx,dw1,db1=conv_relu_pool_backward(da1,cache1)

#add regularization
dw1 +=self.reg*W1
dw2 +=self.reg*W2
dw3 +=self.reg*W3
reg_loss = 0.5*self.reg*sum(np.sum(W*W) for  W in [W1,W2,W3])
loss =data_loss +reg_loss
grads ={'W1':dw1,'b1':db1,'W2':dw2,'b2':db2,'W3':dw3,'b3':db3}
return loss,grads

stride表示步长,pad
假设3232卷积之后就变成2828

conv_forward_naive(x,w,b,conv_param);
首先确定步长,pad
确定x,w
填充步长
确定卷积后的骨架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值