keras 入门整理 如何shuffle,如何使用fit_generator

keras入门参考网址:

中文文档教你快速建立model

keras不同的模块-基本结构的简介-类似xmind整理

Keras的基本使用(1)--创建,编译,训练模型

keras分类应用里的人脸预测kaggle:

根据人脸预测年龄性别和情绪

人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)

数据量大无法载入时,节约内存model.fit_generator:

keras 大数据的训练,迭代载入内存

 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 

简书的fit_generator

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化

 1 #从节省内存的角度,通过生成器的方式来训练
 2 def data_generator(data, targets, batch_size):
 3     idx = np.arange(len(data))
 4     np.random.shuffle(idx)
 5     batches = [idx[range(batch_size*i, min(len(data), batch_size*(i+1)))] for i in range(len(data)/batch_size+1)]
 6     while True:
 7         for i in batches:
 8             xx, yy = np.array(map(gen_matrix, data[i])), np.array(map(gen_target, targets[i]))
 9             yield (xx, yy)
10
11
12 batch_size = 1024
13 history = model.fit_generator(data_generator(d[‘words‘], d[‘label‘], batch_size), samples_per_epoch=len(d), nb_epoch=200)
14 model.save_weights(‘words_seq2seq_final_1.model‘)

keras数据自动生成器,继承keras.utils.Sequence,结合fit_generator实现节约内存训练

提前shuffle数据:

shuffle数据并且设置callback:存储最佳weight

1 np.random.seed(1024)
2 random.shuffle(index)
3 data = data[index]
4 label = label[index]
5 splitpoint = int(round(num * 0.8))
6 (X_train, X_val) = (data[0:splitpoint], data[splitpoint:])
7 (Y_train, Y_val) = (label[0:splitpoint], label[splitpoint:])
8 X_train=X_train/255
9 X_val=X_val/255

基于sklearn和keras的数据切分与交叉验证

提供了三种方法,非常详细

keras model 里的参数batchsize, epoch, SGD优化 :

神经网络中Epoch、Iteration、Batchsize相关理解和说明

原文地址:https://www.cnblogs.com/Roxy121314/p/10419709.html

时间: 2024-11-12 22:10:59

keras 入门整理 如何shuffle,如何使用fit_generator的相关文章

Asp.Net Core WebAPI入门整理(三)跨域处理

一.Core  WebAPI中的跨域处理  1.在使用WebAPI项目的时候基本上都会用到跨域处理 2.Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包 3.使用方法简单 二.使用实例 1.全局配置中启用跨域处理,命名为'any',任何都可以访问 public void ConfigureServices(IServiceCollection services) { //配置跨域处理 services.AddCors(options => { options.AddP

Asp.Net Core WebAPI入门整理(二)简单示例

一.Core WebAPI中的序列化 使用的是Newtonsoft.Json,自定义全局配置处理: // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //使用IMvcBuilder 配置Json序列化处理 services.AddMvc()

keras入门实战:手写数字识别

近些年由于理论知识的硬件的快速发展,使得深度学习达到了空前的火热.深度学习已经在很多方面都成功得到了应用,尤其是在图像识别和分类领域,机器识别图像的能力甚至超过了人类. 本文用深度学习Python库Keras实现深度学习入门教程mnist手写数字识别.mnist手写数字识别是机器学习和深度学习领域的"hello world",MNIST数据集是手写数字的数据集合,训练集规模为60000,测试集为10000. 本文的内容包括: 如何用Keras加载MNIST数据集 对于MNIST问题如何

深度学习:Keras入门(二)之卷积神经网络(CNN)

说明:这篇文章需要有一些相关的基础知识,否则看起来可能比较吃力. 1.卷积与神经元 1.1 什么是卷积? 简单来说,卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算.(具体含义或者数学公式可以查阅相关资料) 如下图就表示卷积的运算过程: (图1) 卷积运算一个重要的特点就是,通过卷积运算,可以使原信号特征增强,并且降低噪音. 1.2 激活函数 这里以常用的激活函数sigmoid为例: 把上述的计算结果269带入此公式,得出f(x)=1 1.3 神经元 如图是一个人工神经元的模型: (

Keras入门——(6)长短期记忆网络LSTM(三)

参考: https://blog.csdn.net/u012735708/article/details/82769711 https://zybuluo.com/hanbingtao/note/581764 http://blog.sina.com.cn/s/blog_afc8730e0102xup1.html https://blog.csdn.net/qq_30638831/article/details/80060045 执行代码: import pandas as pd from da

tf.keras入门1——使用sequential model建立一个VGGlike模型

建立一个简单的模型 sequential model sequential model是一个线性堆叠layers的模型.你既可以通过使用List加入layers的方法初始化,也可以通过.add方法添加layers. 为了建立一个简单的模型,这里以一个全连接层的多层感知机为例: import tensorflow as tf from tensorflow import keras from keras import layers model = Sequential([ layers.Dense

angularjs入门整理

之前发过一篇博文,从mobile angular ui的demo和其官网初识整个angularjs的大体使用,但是没很好学习,只是通过一些技术博文初步认识,陷入很多坑.所以现在在中文官网正式整理下知识点巩固 模板内置指令 引导程序 ng-app 设置变量 ng-model 获取变量 {{}} 遍历 ng-repeat="row in rows" 搜索功能 ng-repeat="row in rows | filter:查询变量名" 排序功能 ng-repeat=&q

mysql常用语句入门整理

这篇属于小白入门级别,如果你已经高手可以直接跳过 1.运行数据库mysqld.exe,客户端直接mysql -uroot(root是默认用户名) -p 2 showdatabases,showtables:drop databases name ,drop table name 展示删除库表 3 desc table 观察表结构 4 create table test( id int unsigned auto_increasement primary key, name varchar(30)

keras 入门之 regression

本实验分三步: 1. 建立数据集 2. 建立网络并训练 3. 可视化 import numpy as np from keras.models import Sequential from keras.layers import Dense from keras.optimizers import SGD # 构建数据集 X_data = np.linspace(-1,1,100)[:, np.newaxis] noise = np.random.normal(0,0.05,X_data.sha