读书笔记:神经网络 Affine 层的实现及应用 ← 斋藤康毅

神经网络的正向传播中进行的矩阵的乘积运算在几何学领域被称为“仿射变换”。
Affine层”的作用就是进行仿射变换。
理解“Affine层”的原理,需要掌握矩阵微分的知识。
矩阵微分的知识可参考:
https://www.cnblogs.com/faranten/p/16028217.html

Affine层的Python代码实现

import numpy as np
 
class Affine:
    def __init__(self,w,b):
        self.w=w
        self.b=b
        self.x=None
        self.dw=None
        self.db=None
 
    def forward(self,x):
        self.x=x
        out=np.dot(x,self.w)+self.b 
        return out
 
    def backward(self,dout):
        dx=np.dot(dout,self.w.T)
        self.dw=np.dot(self.x.T,dout)
        self.db=np.sum(dout,axis=0) 
        return dx
 
 
x=np.arange(6).reshape(2,3)
w=np.arange(6).reshape(3,2)
b=np.arange(4).reshape(2,2)

affine_layer=Affine(w,b)
qian_out=affine_layer.forward(x)
hou_out=affine_layer.backward(qian_out)
print(qian_out)
print("\n")
print(hou_out)

运行后,此代码的输出为:

[[10 14]
 [30 43]]


[[ 14  62 110]
 [ 43 189 335]]


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值