IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 关于深度学习神经网络模型训练,参数过大,导致显卡内存溢出问题的总结 -> 正文阅读

[人工智能]关于深度学习神经网络模型训练,参数过大,导致显卡内存溢出问题的总结

实验是利用LeNet-5模型,计算手写数字集得误差。结果刚加载模型显卡内存就溢出。

?

报错如下:

先用keras来计算网络的大小,参数的个数。

(50000, 32, 32, 3) (50000,) (10000, 32, 32, 3) (10000,)
sample: (512, 32, 32, 3) (512,) tf.Tensor(-1.0, shape=(), dtype=float32) tf.Tensor(1.0, shape=(), dtype=float32)
Model: "res_net_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
sequential_8 (Sequential)    multiple                  2048      
_________________________________________________________________
sequential_9 (Sequential)    multiple                  148736    
_________________________________________________________________
sequential_10 (Sequential)   multiple                  526976    
_________________________________________________________________
sequential_12 (Sequential)   multiple                  2102528   
_________________________________________________________________
sequential_14 (Sequential)   multiple                  8399360   
_________________________________________________________________
global_average_pooling2d_1 ( multiple                  0         
_________________________________________________________________
dense_1 (Dense)              multiple                  5130      
=================================================================
Total params: 11,184,778
Trainable params: 11,176,970
Non-trainable params: 7,808
_________________________________________________________________
---------------------------------------------------------------------------

训练集张量x(50000, 32, 32, 3)? ?y(50000,)

测试集张量大小:(10000, 32, 32, 3) (10000,)

leNet-5卷积神经网络参数为11,184,778,待优化参数为11,176,970,总的不需要优化参数为:7,808。

现在计算装备数据到显卡需要多少内存:

1 兆字节(MB)=1048576 字节(B)

在计算机中,一个float类型的变量,至少需要占4B内存,Python语言中float内存占用更多。那么4B\times 11,184,778 /1048576 B =42.67MB,也是就是说,单就存储网格参数,就需要42.67MB内存,实际上,网络的训练膜过程中还需要缓存计算图模型,梯度信息,输入和中间计算结果等,其中梯度相关运算占用资源非常多。

那么实际运行中,到底要消耗多少没存,我们需要使用可视化工具,监视TensorFlow在计算过程中的参数的变化与消耗的内存占多少。

接下来的解决方法

1.调小批量batch size.

2.减少输入层的input数量。

后续写出代码示例?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:24:05  更:2021-10-18 17:26:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:31:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码