如果我们直接用keras的fit函数来训练模型的话,是需要传入全部训练数据,但是好在提供了fit_generator,可以分批次的读取数据,节省了我们的内存,我们唯一要做的就是实现一个生成器(generator)。

直接给出关键代码,数据处理和组网部分略过

处理后的数据格式如下:

  • 第一个列表是特征,[39, 500000]
  • 第二个列表是label

fit_generator

batch_size = 2048
model.fit_generator(GeneratorRandomPatchs(train_x, train_y, batch_size),validation_data=(val_x, val_y),steps_per_epoch=len(train_data) // batch_size,epochs=100,verbose=1
)
def GeneratorRandomPatchs(train_x, train_y, batch_size):totl, col = np.array(train_x).shape  # (39, 500000)  特征数、样本数# 保证 steps_per_epoch * epoch 批次的数据够while True:for index in range(0, col, batch_size):xs, ys = [], []for t in range(totl):xs.append(train_x[t][index: index + batch_size])ys.append(train_y[0][index: index + batch_size])# print(np.array(xs).shape, np.array(ys).shape)yield (xs, ys)

fit_generator 需要传递一个迭代器,如上述例子:GeneratorRandomPatchs,通过yield返回训练数据

  • batch_size:批处理大小,就是每次入模的样本数。
  • steps_per_epoch:每个epoch要处理的批数。比如训练数据50W,batch_size是2048,那么一个epoch的批数就是244。

其它参数解释


参考自:

https://blog.csdn.net/zhangpeterx/article/details/90900118

https://blog.csdn.net/qq_39783265/article/details/106752903

https://www.jb51.net/article/188905.htm

https://my.oschina.net/u/4329662/blog/3639783

tf 加速训练,节省内存 fit_generator相关推荐

  1. 2020-12-11 keras通过model.fit_generator训练模型(节省内存)

    keras通过model.fit_generator训练模型(节省内存) 前言 前段时间在训练模型的时候,发现当训练集的数量过大,并且输入的图片维度过大时,很容易就超内存了,举个简单例子,如果我们有2 ...

  2. 《预训练周刊》第16期:中科院推出全球首个图文音三模态预训练模型、顶会论文探索100层序列推荐模型的加速训练...

    No.16 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第16期&l ...

  3. 梯度中心化,一行代码加速训练并提升泛化能力

    来源 | 晓飞的算法工程笔记 优化器(Optimizer)对于深度神经网络在大型数据集上的训练是十分重要的,如SGD和SGDM,优化器的目标有两个:加速训练过程和提高模型的泛化能力.目前,很多工作研究 ...

  4. datagenerator解决训练时候内存不足问题

    [Keras]使用数据生成器(data generators)解决训练数据内存问题_m0_37477175的博客-CSDN博客_datagenerator

  5. 谷歌大脑提出对智能体进行「正向-反向」强化学习训练,加速训练过程

    原文来源:arXiv 作者:Ashley D. Edwards.Laura Downs.James C. Davidson 「雷克世界」编译:嗯~是阿童木呀.KABUDA.EVA 在强化学习问题中,关 ...

  6. [CLPR] 用于加速训练神经网络的二阶方法

    本文翻译自: http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi ...

  7. java 内存_java节省内存的几条建议

    java节省内存的几条建议 引导语:Java的主要工作是通过编程语言来制作互联网页面.制作动态效果以及网站等技术,以下是小编整理的java节省内存的几条建议,欢迎参考阅读! 1. 尽量在合适的场合使用 ...

  8. pandas的dataframe节省内存

    ##############################第1种################################################### [1]代码如下(下面的会损失数 ...

  9. javafx阴影_JavaFX技巧来节省内存! 属性和可观察对象的阴影场

    javafx阴影 在 JavaFX的世界中, Properties API允许UI开发人员将值绑定到UI控件. 这种功能出奇的简单,但是当对象模型经常使用属性时,应用程序可能会很快耗尽内存. 我通常会 ...

最新文章

  1. 基于 matplotlib 的抽象网格和能量曲线绘制程序
  2. 对比学习系列论文CPCforHAR(一):Contrastive Predictive Coding for Human Activity Recognition
  3. 机架式服务器怎么和显示屏连接,图解机架式服务器的机箱和电源
  4. 如何使用 C# 中的 HashSet
  5. 学习方法书籍 很好推荐
  6. js new Date()
  7. Oracle ERP权限管理
  8. eclipse安装emmet之后ctrl+d热键冲突的解决方法
  9. 汽车和山羊问题matlab_三门问题:为什么换门会增加得到汽车的概率
  10. python脚本批量登录crt_python批量修改SecureCRT会话密码-阿里云开发者社区
  11. 人人商城源码怎么安装MySQL_人人商城插件开发手记
  12. dockertool (win10家庭版)安装后的问题
  13. 最好用的 7 款 Vue 3 富文本编辑器
  14. #洛谷oj:P1196银河英雄传说
  15. 《ANSYS Workbench有限元分析实例详解(静力学)》——2.5 Windows界面相应操作
  16. 要只看每日减少的新增数量,别忘了疫情最开始的时候可能也只有几个人患病
  17. activity任意节点动态加签
  18. php的内部方法编码方式,字符集字符编码以及PHP中的一些转码方法
  19. 从零学ELK系列(十):SpringBoot项目接入ELK升级版(超详细图文教程)
  20. 计算机总线详解(数据总线、地址总线、控制总线)

热门文章

  1. 王者荣耀显示服务器爆满进不去,王者荣耀榜一二秀恩爱,服务器爆满进不去,榜四:他俩不是人...
  2. 在AGFA的一个月工作经历
  3. Happy 2004(代码+积性函数扩展)
  4. 什么是交叉熵啊?| 小白深度学习入门
  5. K8S云管平台开发实践 - 报警功能01
  6. python自学网站免费-推荐几个适合小白学习Python的免费网站
  7. 项目总结-通过经纬度将地球表面分块
  8. 普氏分析 matlab,降维和特征提取 - MATLAB Simulink - MathWorks 中国
  9. Python:爬取上市公司公告-Wind-CSMAR
  10. Excel文档的生成和压缩