keras 入门整理 如何shuffle,如何使用fit_generator 整理合集
keras入门参考网址:
keras分类应用里的人脸预测kaggle:
人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)
数据量大无法载入时,节约内存model.fit_generator:
1 def generate_arrays_from_file(path):
2 while 1:
3 f = open(path)
4 for line in f:
5 # create Numpy arrays of input data
6 # and labels, from each line in the file
7 x, y = process_line(line)
8 yield (x, y)
9 f.close()
10
11 model.fit_generator(generate_arrays_from_file('/my_file.txt'),
12 samples_per_epoch=10000, nb_epoch=10)
13 ---------------------
14 作者:ShellCollector
15 来源:CSDN
16 原文:https://blog.csdn.net/jacke121/article/details/78877352
1 def generate_batch_data_random(x, y, batch_size):
2 """逐步提取batch数据到显存,降低对显存的占用"""
3 ylen = len(y)
4 loopcount = ylen // batch_size
5 while (True):
6 i = randint(0,loopcount)
7 yield x[i * batch_size:(i + 1) * batch_size], y[i * batch_size:(i + 1) * batch_size]
keras 两种训练模型方式fit和fit_generator(节省内存) 提供了对比,fit 和 fit_generator 两种代码
国外一个大佬Adrian Rosebrock写的博客:实现自定义Keras fit_generator函数(中文)How to use Keras fit and fit_generator (a hands-on tutorial) (英文)

利用fit_generator最小化显存占用比率/数据Batch化
#从节省内存的角度,通过生成器的方式来训练
def data_generator(data, targets, batch_size):
idx = np.arange(len(data))
np.random.shuffle(idx)
batches = [idx[range(batch_size*i, min(len(data), batch_size*(i+1)))] for i in range(len(data)/batch_size+1)]
while True:
for i in batches:
xx, yy = np.array(map(gen_matrix, data[i])), np.array(map(gen_target, targets[i]))
yield (xx, yy) batch_size = 1024
history = model.fit_generator(data_generator(d['words'], d['label'], batch_size), samples_per_epoch=len(d), nb_epoch=200)
model.save_weights('words_seq2seq_final_1.model')
keras数据自动生成器,继承keras.utils.Sequence,结合fit_generator实现节约内存训练
提前shuffle数据:
shuffle数据并且设置callback:存储最佳weight
np.random.seed(1024)
random.shuffle(index)
data = data[index]
label = label[index]
splitpoint = int(round(num * 0.8))
(X_train, X_val) = (data[0:splitpoint], data[splitpoint:])
(Y_train, Y_val) = (label[0:splitpoint], label[splitpoint:])
X_train=X_train/255
X_val=X_val/255
提供了三种方法,非常详细
keras model 里的参数batchsize, epoch, SGD优化 :
神经网络中Epoch、Iteration、Batchsize相关理解和说明
keras 入门整理 如何shuffle,如何使用fit_generator 整理合集的更多相关文章
- Keras入门(四)之利用CNN模型轻松破解网站验证码
项目简介 在之前的文章keras入门(三)搭建CNN模型破解网站验证码中,笔者介绍介绍了如何用Keras来搭建CNN模型来破解网站的验证码,其中验证码含有字母和数字. 让我们一起回顾一下那篇文 ...
- Keras入门(一)搭建深度神经网络(DNN)解决多分类问题
Keras介绍 Keras是一个开源的高层神经网络API,由纯Python编写而成,其后端可以基于Tensorflow.Theano.MXNet以及CNTK.Keras 为支持快速实验而生,能够把 ...
- Keras入门(六)模型训练实时可视化
在北京做某个项目的时候,客户要求能够对数据进行训练.预测,同时能导出模型,还有在页面上显示训练的进度.前面的几个要求都不难实现,但在页面上显示训练进度当时笔者并没有实现. 本文将会分享如何在K ...
- Keras入门(二)模型的保存、读取及加载
本文将会介绍如何利用Keras来实现模型的保存.读取以及加载. 本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络(DNN)模型,模型的结构示意图如下: 具体的模型参数可以参考文章 ...
- Asp.Net Core WebAPI入门整理(三)跨域处理
一.Core WebAPI中的跨域处理 1.在使用WebAPI项目的时候基本上都会用到跨域处理 2.Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包 3.使用方法简单 ...
- Selenium自动化测试框架入门整理
关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...
- socket.io入门整理教程
socket.io入门整理 发布于 5 年前 作者 dtrex 124983 次浏览 最后一次编辑是 1 年前 我自己在用socket.io开发,对官方网站上的文档,进行简单的整理,然后自己写 ...
- Asp.Net Core WebAPI入门整理(二)简单示例
一.Core WebAPI中的序列化 使用的是Newtonsoft.Json,自定义全局配置处理: // This method gets called by the runtime. Use thi ...
- Asp.Net Core WebAPI入门整理(四)参数获取
一.总结整理,本实例对应.Net Core 2.0版本 1.在.Net Core WebAPI 中对于参数的获取及自动赋值,沿用了Asp.Net MVC的有点,既可以单个指定多个参数,右可以指定Mo ...
随机推荐
- 记一次简单的sql注入
什么是sql注入攻击? 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影 ...
- 解决libVLC无法响应鼠标消息
参考: https://blog.jianchihu.net/player-based-on-libvlc.html 自己在Qt上的实现: 头文件 libvlc_instance_t * m_inst ...
- VNPY - windows 安装踩坑记录
twisted requires PyHamcrest>=, which is not ins grin requires argparse>=1.1, which is not inst ...
- !/usr/bin/env python和!/usr/bin/python的区别
脚本语言第一行 作用:文件中代码用指定可执行程序运行 #!/usr/bin/Python 执行脚本时,调用/usr/bin下python解释器 #!/usr/bin/env python 在环境设 ...
- windows 10系统在右键中添加管理员打开cmd
需要修改注册表内容,新建文件,后缀名改为reg,文件中粘贴下边的代码 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory ...
- git 的安装与初始化
1搭建本地git服务器: 1.1安装git 对于ubuntu系统,一般自带git,可以使用git --version 查看版本号 ,或使用apt-get install git . centos上对 ...
- Python with open as函数
可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件. 当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入. 只有调用close ...
- Python中的 *args 和 **kwargs
基本概念 Python支持可变参数,最简单的方法莫过于使用默认参数. def test_defargs(one, two=2): # 参数one没有默认值,two的默认值为2 print('Requi ...
- WordCount程序与测试
Github地址: https://github.com/hcy6668/wordCount PSP表格: PSP PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 40 ...
- Ceph集群更换public_network网络
1.确保ceph集群是连通状态 这里,可以先把机器配置为以前的x.x.x.x的网络,确保ceph集群是可以通的.这里可以执行下面的命令查看是否连通,显示HEALTH_OK则表示连通 2.获取monma ...