神经网络在深度学习过程中每层训练的网络参数容量数量计算推导

下面介绍具体的神经网络在深度学习过程中,训练参数的详细产生。


案例1


假设现在有一个3X3的1维(输入通道为1)特征图输入(也即意味着该特征图相当于一张灰度图),然后由3个卷积核(过滤器、滤波器),每一个卷积核尺寸为2X2。输出3个通道特征图。神经网络训练的参数个数示意图为:

该层神经网络训练的参数个数即为:

(2*2+1)*3=15

总计15个参数, 这15个参数里面,其中12个为权重值(weights),3个偏差(biases)。


案例2


对于像普通常见的RGB彩色图片,具有3通道(R,G,B)。如果每一个输入特征图都有一个滤波器(卷积核)。产生的卷积按元素添加,并且向每个元素添加偏差项。 形成具有1个特征图的输出。

神经网络训练的参数个数计算:

4*3+1=13

总计13个参数,其中12个是权重,1个是偏差。


案例3


假设每1个输入特征图都分别有3个滤波器(以紫色,黄色,青色分别表示)。产生的卷积按元素添加,并且向每个元素添加偏差项。现在有2个特征图,最终输出3个特征图。

输入2个的特征图,最终输出3个特征图(意味着有3个偏差)。神经网络训练的参数个数为27,其中24个为权重,3个为偏差。


Python代码验证


建立神经网络,堆叠几层:

from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

from keras.models import Sequential

if name == “main”:

model = Sequential()

model.add(Conv2D(filters=32,

kernel_size=(3, 3),

input_shape=(150, 150, 3),

activation=‘relu’))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(filters=64,

kernel_size=(3, 3),

activation=‘relu’))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(filters=128,

kernel_size=(3, 3),

activation=‘relu’))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(filters=128,

kernel_size=(3, 3),

activation=‘relu’))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())

model.add(Dense(units=512, activation=‘relu’))

model.add(Dense(units=1, activation=‘sigmoid’))

print(model.summary())

输出:

Model: “sequential_1”


Layer (type) Output Shape Param #

=================================================================

conv2d_1 (Conv2D) (None, 148, 148, 32) 896


max_pooling2d_1 (MaxPooling2 (None, 74, 74, 32) 0


conv2d_2 (Conv2D) (None, 72, 72, 64) 18496


《设计思想解读开源框架》

第一章、 热修复设计

  • 第一节、 AOT/JIT & dexopt 与 dex2oat

  • 第二节、 热修复设计之 CLASS_ISPREVERIFIED 问题

  • 第三节、热修复设计之热修复原理

  • 第四节、Tinker 的集成与使用(自动补丁包生成)

    第二章、 插件化框架设计

  • 第一节、 Class 文件与 Dex 文件的结构解读

  • 第二节、 Android 资源加载机制详解

  • 第三节、 四大组件调用原理

  • 第四节、 so 文件加载机制

  • 第五节、 Android 系统服务实现原理

    第三章、 组件化框架设计

  • 第一节、阿里巴巴开源路由框——ARouter 原理分析

  • 第二节、APT 编译时期自动生成代码&动态类加载

  • 第三节、 Java SPI 机制

  • 第四节、 AOP&IOC

  • 第五节、 手写组件化架构

    第四章、图片加载框架

  • 第一节、图片加载框架选型

  • 第二节、Glide 原理分析

  • 第三节、手写图片加载框架实战

    第五章、网络访问框架设计

  • 第一节、网络通信必备基础

  • 第二节、OkHttp 源码解读

  • 第三节、Retrofit 源码解析

    第六章、 RXJava 响应式编程框架设计

  • 第一节、链式调用

  • 第二节、 扩展的观察者模式

  • 第三节、事件变换设计

  • 第四节、Scheduler 线程控制

    第七章、 IOC 架构设计

  • 第一节、 依赖注入与控制反转

  • 第二节、ButterKnife 原理上篇、中篇、下篇

  • 第三节、Dagger 架构设计核心解密

    第八章、 Android 架构组件 Jetpack

  • 第一节、 LiveData 原理

  • 第二节、 Navigation 如何解决 tabLayout 问题

  • 第三节、 ViewModel 如何感知 View 生命周期及内核原理

  • 第四节、 Room 架构方式方法

  • 第五节、 dataBinding 为什么能够支持 MVVM

  • 第六节、 WorkManager 内核揭秘

  • 第七节、 Lifecycles 生命周期


    本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

    《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
    能够支持 MVVM**

  • 第六节、 WorkManager 内核揭秘

  • 第七节、 Lifecycles 生命周期

    [外链图片转存中…(img-9bniSbvl-1715116447053)]
    本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
    [外链图片转存中…(img-w5UsqrNV-1715116447054)]
    《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值