DL:神经网络算法简介之Affine 层的简介、使用方法、代码实现之详细攻略
2021/6/15 22:26:36
本文主要是介绍DL:神经网络算法简介之Affine 层的简介、使用方法、代码实现之详细攻略,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
DL:神经网络算法简介之Affine 层的简介、使用方法、代码实现之详细攻略
目录
Affine 层的简介
批版本的Affine 层
Affine 层的使用方法
Affine 层的代码实现
Affine 层的简介
Affine层:神经网络的正向传播中,进行的矩阵的乘积运算,在几何学领域被称为“仿射变换”。几何中,仿射变换包括一次线性变换和一次平移,分别对应神经网络的加权和运算与加偏置运算。
Affine层的计算图:求矩阵的乘积与偏置的和的运算用计算图表示。各个节点间传播的是矩阵。
Affine层的反向传播:注意变量是多维数组。反向传播时各个变量的下方标记了该变量的形状。
注意矩阵的形状:矩阵的乘积(“dot”节点)的反向传播可以通过组建使矩阵对应维度的元素个数一致的乘积运算而推导出来。
批版本的Affine 层
当考虑N个数据一起进行正向传播的情况,就是批版本的Affine层。
批版本的Affi ne 层的计算图
Affine 层的使用方法
1、神经网络中计算线性加权
#(1)、神经网络的正向传播中,为了计算加权信号的总和,使用了矩阵的乘积运算,即NumPy中是np.dot()。
X = np.random.rand(2) # 输入 W = np.random.rand(2,3) # 权重 B = np.random.rand(3) # 偏置 #X、W、B分别是形状为(2,)、(2, 3)、(3,) 的多维数组。 Y = np.dot(X, W) + B print(Y) #Y经过激活函数转换后,传递给下一层。这就是神经网络正向传播的流程。
Affine 层的代码实现
#输入数据为张量(四维数据) 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 class Affine: def __init__(self, W, b): self.W =W self.b = b self.x = None self.original_x_shape = None # 权重和偏置参数的导数 self.dW = None self.db = None def forward(self, x): # 对应张量 self.original_x_shape = x.shape x = x.reshape(x.shape[0], -1) self.x = x out = np.dot(self.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) dx = dx.reshape(*self.original_x_shape) # 还原输入数据的形状(对应张量) return dx
参考文章”
DL学习—Affine 层:神经网络学习之Affine 层的简介、使用方法、代码实现之详细攻略
这篇关于DL:神经网络算法简介之Affine 层的简介、使用方法、代码实现之详细攻略的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么修改Kafka的JVM参数?-icode9专业技术文章分享
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?