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 = Wself.b = bself.x = Noneself.dW = Noneself.db = Nonedef forward(self, x):self.x = xout = np.dot(x, self.W) + self.breturn outdef 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 dxclass Affine:def __init__(self, W, b):self.W =Wself.b = bself.x = Noneself.original_x_shape = None# 权重和偏置参数的导数self.dW = Noneself.db = Nonedef forward(self, x):# 对应张量self.original_x_shape = x.shapex = x.reshape(x.shape[0], -1)self.x = xout = np.dot(self.x, self.W) + self.breturn outdef 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 层的简介、使用方法、代码实现之详细攻略相关推荐

  1. DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)

    DL之Keras:基于Keras框架建立模型实现[预测]功能的简介.设计思路.案例分析.代码实现之详细攻略(经典,建议收藏) 目录 Keras框架使用分析 Keras框架设计思路 案例分析 代码实现 ...

  2. Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略

    Python之sklearn:LabelEncoder函数简介(编码与编码还原).使用方法.具体案例之详细攻略 目录 LabelEncoder函数的简介(编码与编码还原) Methods LabelE ...

  3. ML/DL之预测分析类:利用机器学习算法进行预测分析的简介、分析、代码实现之详细攻略

    ML/DL之预测分析类:利用机器学习算法进行预测分析的简介.分析.代码实现之详细攻略 目录 机器学习算法进行预测的简介 机器学习算法进行预测的分析 机器学习算法进行预测的代码实现 机器学习算法进行预测 ...

  4. TF之CNN:Tensorflow构建卷积神经网络CNN的简介、使用方法、应用之详细攻略

    TF之CNN:Tensorflow构建卷积神经网络CNN的简介.使用方法.应用之详细攻略 目录 TensorFlow 中的卷积有关函数入门 1.tf.nn.conv2d函数 案例应用 1.TF之CNN ...

  5. Py之scikit-learn:机器学习Sklearn库的简介、安装、使用方法(ML算法如何选择)、代码实现之详细攻略

    Py之scikit-learn:机器学习Sklearn库的简介.安装.使用方法.代码实现之详细攻略 目录 scikit-learn的简介 scikit-learn的安装 scikit-learn的使用 ...

  6. DL之DNN优化技术:DNN中抑制过拟合/欠拟合、提高泛化能力技术的简介、使用方法、案例应用详细攻略

    DL之DNN优化技术:DNN中抑制过拟合.提高泛化能力技术的简介.使用方法.案例应用详细攻略 目录 抑制过拟合.提高泛化能力技术的简介 1.过拟合现象的表述

  7. ML之LiR之PLiR:惩罚线性回归PLiR算法简介、分类、代码实现之详细攻略

    ML之LiR之PLiR:惩罚线性回归PLiR算法简介.分类.代码实现之详细攻略 目录 PLiR算法简介 PLiR算法分类 PLiR算法代码实现 PLiR算法简介 更新-- PLiR算法分类 1.RiR ...

  8. ML之LSOLS:LSOLS算法的简介、论文、算法的改进(最佳子集选择OFSS法、前向逐步回归FSR法)、代码实现等详细攻略

    ML之LS&OLS:LS&OLS算法的简介.论文.算法的改进(最佳子集选择OFSS法.前向逐步回归FSR法).代码实现等详细攻略 目录 LS&OLS算法的简介 LS&O ...

  9. ​​​​​​​DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比、TF代码定义之详细攻略

    DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比.TF代码定义之详细攻略 目录 RNN.LSTM.GRU算法对比 1.RNN/LSTM/GRU对比 2.RNN/LSTM/GRU动图 ...

最新文章

  1. 1114 Family Property (25 分)【难度: 中/ 知识点: 并查集】
  2. 【Java基础总结】IO流
  3. jQuery实现分页
  4. Django自定义一个简单的中间件,并使用此中间件
  5. 【算法】剑指 Offer 31. 栈的压入、弹出序列 【重刷】
  6. Redhat AS4上中文乱码问题解决方案
  7. Linux---之conda换源
  8. charles抓包工具的使用:手机抓包设置和安装证书
  9. 打破超星封锁——PDG转PDF方法
  10. 如何删除绿盾加密软件
  11. Java Applet
  12. NoSQLBooster for MongoDB软件使用
  13. 如何通过网络遥测(Network Telemetry)技术实现精细化网络运维
  14. SpringCloud Zuul配置
  15. ps play android下载地址,PSPlay
  16. JVM 类加载器(引导类加载器、扩展类加载器、系统类加载器、用户自定义类加载器)
  17. C语言---集合---合取-析取-异或-条件语句-双条件语句
  18. 区间dp,绝对值不等式
  19. k8s 之服务发现(service)
  20. python用户价值分析

热门文章

  1. eclipsse 关闭 方法提示_MacOS10.15.7关闭AppStore右上角小红标提示及系统更新右上角小红标提示的方法...
  2. 团队作业第二次—项目选题报告(追光的人)
  3. Java的新项目学成在线笔记-day6(五)
  4. git checkout -b mybranch和git checkout mybranch
  5. Vista中使用率最高的11条命令
  6. 通过Easy-UI 树插件实现ArcGIS多个服务图层的图层控制
  7. 如果你只写CRUD,那这种技术栈你永远碰不到
  8. 激烈竞争的时代,哪些能力可以帮你脱颖而出?
  9. 人工智能的发展之路,居然要从春秋时期讲起?
  10. Linux内存映射mmap原理分析