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 ...
随机推荐
- 规则引擎 - (二)XOM工程
XOM工程即一个Java项目. 新建Java类,添加属性,实现get/set方法.
- CRM 员工创建并分配用户
REPORT zjp_emp_upload. TABLES: sscrfields. DATA:gt_excel_data TYPE TABLE OF zalsmex_tabline, gs_exce ...
- Spring Boot Application
spring boot默认已经配置了很多环境变量,例如,tomcat的默认端口是8080,项目的contextpath是“/”等等,spring boot允许你自定义一个application.pro ...
- 汇编语言实验1 & macOS下DOSBox的安装
一.macOS下DOSBox的安装 1.在官网下载DOSBox-0.74.dmg 打开,此时默认z盘 一番折腾,终于搞定debug 然后为了不用每次都执行mount,遂更改配置文件自动挂在目录 再次打 ...
- 图片转成Base64
var img = "imgurl";//imgurl 就是你的图片路径 function getBase64Image(img) { var canvas = document. ...
- tomcat启动正常,但是访问项目时,404. Eclipse没有正确部署工程项目
解决方案URL:http://blog.csdn.net/lynn_wgr/article/details/7751228
- S2T40,第五章
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 用generator 根据oracle表生成java代码,数据库与代码字段不一致
前两天用generator生成java代码时发现,生成的javabean和数据库里的字段对应不上,不是少几个就是有几个字段不一样,感觉很怪异,后来发现日志里边这个表转换成bean是日志打印了好几遍,所 ...
- JAVAEE第七周
JSON 一.什么是JSON -JSON指的是JavaScript对象表示法(Javascript Object Notation) -JSON是轻量级的文本数据交换格式 -JSON独立于语言 -JS ...
- Windows Server 2008 R2 服务器系统安装及配置全过程图文详解
前言 本文主要介绍了 windows Server 2008 R2 服务器系统的安装及相关配置. 介绍的是以优盘的方式安装. 写这篇博文的目的一来是为了供有需要的网友参考, 二来自己也在此做个记载. ...