Keras官方中文文档:工具

utils 工具

本模块提供了一系列有用工具

CustomObjectScope

keras.utils.generic_utils.CustomObjectScope()

提供定制类的作用域,在该作用域内全局定制类能够被更改,但在作用域结束后将回到初始状态。
with声明开头的代码将能够通过名字访问定制类的实例,在with的作用范围,这些定制类的变动将一直持续,在with作用域结束后,全局定制类的实例将回归其在with作用域前的状态。

with CustomObjectScope({"MyObject":MyObject}):
    layer = Dense(..., W_regularizer="MyObject")
    # save, load, etc. will recognize custom object by name

HDF5Matrix

keras.utils.io_utils.HDF5Matrix(datapath, dataset, start=0, end=None, normalizer=None)

这是一个使用HDF5数据集代替Numpy数组的方法

提供startend参数可以进行切片,另外,还可以提供一个正规化函数或匿名函数,该函数将会在每片数据检索时自动调用。

x_data = HDF5Matrix(‘input/file.hdf5‘, ‘data‘)
model.predict(x_data)
  • datapath: 字符串,HDF5文件的路径
  • dataset: 字符串,在datapath路径下HDF5数据库名字
  • start: 整数,想要的数据切片起点
  • end: 整数,想要的数据切片终点
  • normalizer: 在每个切片数据检索时自动调用的函数对象

Sequence

keras.utils.data_utils.Sequence()

序列数据的基类,例如一个数据集。
每个Sequence必须实现__getitem____len__方法

下面是一个例子:

from skimage.io import imread
from skimage.transform import resize
import numpy as np

__Here, `x_set` is list of path to the images__

# and `y_set` are the associated classes.

class CIFAR10Sequence(Sequence):
def __init__(self, x_set, y_set, batch_size):
    self.X,self.y = x_set,y_set
    self.batch_size = batch_size

def __len__(self):
    return len(self.X) // self.batch_size

def __getitem__(self,idx):
    batch_x = self.X[idx*self.batch_size:(idx+1)*self.batch_size]
    batch_y = self.y[idx*self.batch_size:(idx+1)*self.batch_size]

    return np.array([
    resize(imread(file_name), (200,200))
       for file_name in batch_x]), np.array(batch_y)


to_categorical

to_categorical(y, num_classes=None)

将类别向量(从0到nb_classes的整数向量)映射为二值类别矩阵, 用于应用到以categorical_crossentropy为目标函数的模型中.

参数

  • y: 类别向量
  • num_classes:总共类别数

normalize

normalize(x, axis=-1, order=2)

对numpy数组规范化,返回规范化后的数组

参数

  • x:待规范化的数据
  • axis: 规范化的轴
  • order:规范化方法,如2为L2范数

custom_object_scope

custom_object_scope()

提供定制类的作用域,在该作用域内全局定制类能够被更改,但在作用域结束后将回到初始状态。
with声明开头的代码将能够通过名字访问定制类的实例,在with的作用范围,这些定制类的变动将一直持续,在with作用域结束后,全局定制类的实例将回归其在with作用域前的状态。

本函数返回CustomObjectScope对象

with custom_object_scope({"MyObject":MyObject}):
    layer = Dense(..., W_regularizer="MyObject")
    # save, load, etc. will recognize custom object by name

get_custom_objects

get_custom_objects()

检索全局定制类,推荐利用custom_object_scope更新和清理定制对象,但get_custom_objects可被直接用于访问_GLOBAL_CUSTOM_OBJECTS。本函数返回从名称到类别映射的全局字典。

get_custom_objects().clear()
get_custom_objects()["MyObject"] = MyObject

convert_all_kernels_in_model

convert_all_kernels_in_model(model)

将模型中全部卷积核在Theano和TensorFlow模式中切换


plot_model

plot_model(model, to_file=‘model.png‘, show_shapes=False, show_layer_names=True)

绘制模型的结构图


serialize_keras_object

serialize_keras_object(instance)

将keras对象序列化


deserialize_keras_object

eserialize_keras_object(identifier, module_objects=None, custom_objects=None, printable_module_name=‘object‘)

从序列中恢复keras对象


get_file

get_file(fname, origin, untar=False, md5_hash=None, file_hash=None, cache_subdir=‘datasets‘, hash_algorithm=‘auto‘, extract=False, archive_format=‘auto‘, cache_dir=None)

从给定的URL中下载文件, 可以传递MD5值用于数据校验(下载后或已经缓存的数据均可)

默认情况下文件会被下载到~/.keras中的cache_subdir文件夹,并将其文件名设为fname,因此例如一个文件example.txt最终将会被存放在`~/.keras/datasets/example.txt~

tar,tar.gz.tar.bz和zip格式的文件可以被提取,提供哈希码可以在下载后校验文件。命令喊程序shasumsha256sum可以计算哈希值。

参数

  • fname: 文件名,如果指定了绝对路径/path/to/file.txt,则文件将会保存到该位置。
  • origin: 文件的URL地址
  • untar: 布尔值,是否要进行解压
  • md5_hash: MD5哈希值,用于数据校验,支持sha256md5哈希
  • cache_subdir: 用于缓存数据的文件夹,若指定绝对路径/path/to/folder则将存放在该路径下。
  • hash_algorithm: 选择文件校验的哈希算法,可选项有‘md5‘, ‘sha256‘, 和‘auto‘. 默认‘auto‘自动检测使用的哈希算法
  • extract: 若为True则试图提取文件,例如tar或zip tries extracting the file as an Archive, like tar or zip.
  • archive_format: 试图提取的文件格式,可选为‘auto‘, ‘tar‘, ‘zip‘, 和None. ‘tar‘ 包括tar, tar.gz, tar.bz文件. 默认‘auto‘是[‘tar‘, ‘zip‘]. None或空列表将返回没有匹配。
  • cache_dir: 缓存文件存放地在,参考FAQ

返回值

下载后的文件地址

multi_gpu_model

keras.utils.multi_gpu_model(model, gpus)

将模型在多个GPU上复制

特别地,该函数用于单机多卡的数据并行支持,它按照下面的方式工作:

(1)将模型的输入分为多个子batch
(2)在每个设备上调用各自的模型,对各自的数据集运行
(3)将结果连接为一个大的batch(在CPU上)

例如,你的batch_size是64而gpus=2,则输入会被分为两个大小为32的子batch,在两个GPU上分别运行,通过连接后返回大小为64的结果。 该函数线性的增加了训练速度,最高支持8卡并行。

该函数只能在tf后端下使用

参数如下:

  • model: Keras模型对象,为了避免OOM错误(内存不足),该模型应在CPU上构建,参考下面的例子。
  • gpus: 大或等于2的整数,要并行的GPU数目。

该函数返回Keras模型对象,它看起来跟普通的keras模型一样,但实际上分布在多个GPU上。

例子:

import tensorflow as tf
from keras.applications import Xception
from keras.utils import multi_gpu_model
import numpy as np

num_samples = 1000
height = 224
width = 224
num_classes = 1000

# Instantiate the base model
# (here, we do it on CPU, which is optional).
with tf.device(‘/cpu:0‘):
    model = Xception(weights=None,
                     input_shape=(height, width, 3),
                     classes=num_classes)

# Replicates the model on 8 GPUs.
# This assumes that your machine has 8 available GPUs.
parallel_model = multi_gpu_model(model, gpus=8)
parallel_model.compile(loss=‘categorical_crossentropy‘,
                       optimizer=‘rmsprop‘)

# Generate dummy data.
x = np.random.random((num_samples, height, width, 3))
y = np.random.random((num_samples, num_classes))

# This `fit` call will be distributed on 8 GPUs.
# Since the batch size is 256, each GPU will process 32 samples.
parallel_model.fit(x, y, epochs=20, batch_size=256)

艾伯特(http://www.aibbt.com/)国内第一家人工智能门户

原文地址:https://www.cnblogs.com/5rjscn/p/8541762.html

时间: 2024-09-30 22:02:39

Keras官方中文文档:工具的相关文章

Keras官方中文文档:卷积层Convolutional

卷积层 Conv1D层 keras.layers.convolutional.Conv1D(filters, kernel_size, strides=1, padding='valid', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=

Keras官方中文文档:局部连接层Locally

局部连接层LocallyConnceted LocallyConnected1D层 keras.layers.local.LocallyConnected1D(filters, kernel_size, strides=1, padding='valid', data_format=None, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_

Keras官方中文文档:高级激活层Advanced Activation

高级激活层Advanced Activation LeakyReLU层 keras.layers.advanced_activations.LeakyReLU(alpha=0.3) LeakyRelU是修正线性单元(Rectified Linear Unit,ReLU)的特殊版本,当不激活时,LeakyReLU仍然会有非零输出值,从而获得一个小梯度,避免ReLU可能出现的神经元"死亡"现象.即,f(x)=alpha * x for x < 0, f(x) = x for x>

Keras官方中文文档:融合层Merge

Merge层 Merge层提供了一系列用于融合两个层或两个张量的层对象和方法.以大写首字母开头的是Layer类,以小写字母开头的是张量的函数.小写字母开头的张量函数在内部实际上是调用了大写字母开头的层. Add keras.layers.Add() 添加输入列表的图层. 该层接收一个相同shape列表张量,并返回它们的和,shape不变. Example import keras input1 = keras.layers.Input(shape=(16,)) x1 = keras.layers

利用Python3内置文档资源高效学习及官方中文文档

从前面的对Python基础知识方法介绍中,我们几乎是围绕Python内置方法进行探索实践,比如字符串.列表.字典等数据结构的内置方法,和大量内置的标准库,诸如functools.time.threading等等,而我们怎么快速学习掌握并学会使用这个Python的工具集呢? 我们可以利用Python的内置文档大量资源既可以掌握许多关于Python工具集的基本使用. dir函数 Python中内置的dir函数用于提取某对象内所有属性的方法,,诸如对象的方法及属性 L = [1, 2, 3, 4] p

OkHttp 官方中文文档

OkHttp官方中文文档 本文结构 Calls Connections Recipes Interceptors HTTPS 本文翻译来自 官方OkHttp Wiki OkHttp官方中文文档 一Calls 1 请求 2 响应 3重写请求 4重写响应 5后续请求 6请求重试 7 呼叫 8调度 二Connections 1URLs URLs摘要 2 Addresses 3 Routes 4Connections 三Recipes 1同步获取 2异步获取 3访问头 4Posting a String

django2.0 官方中文文档地址

django2.0 官方开始发布中文文档了,之前还想着一直翻译完成所有有必要的内容,想着可以省事一些了,打开以后看了一下,发现官方的中文文档还没翻译完成, 现在(2018-7-10)最新章节是是  编写你的第一个 Django 补丁(https://docs.djangoproject.com/zh-hans/2.0/intro/contributing/) django 2.0 官方中文文档地址: https://docs.djangoproject.com/zh-hans/2.0/ 原文地址

一、frp官方中文文档

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议. 目录 frp 的作用 开发状态 架构 使用示例 通过 ssh 访问公司内网机器 通过自定义域名访问部署于内网的 web 服务 转发 DNS 查询请求 转发 Unix域套接字 对外提供简单的文件访问服务 安全地暴露内网服务 点对点内网穿透 通过 frpc 所在机器访问外网 功能说明 配置文件 Dashboard 身份验证 加密与压缩 客户端热加载配置文件 客户端查看代理状态 特权模式 端口

PyTorch官方中文文档:torch

torch 包 torch 包含了多维张量的数据结构以及基于其上的多种数学操作.另外,它也提供了多种工具,其中一些可以更有效地对张量和任意类型进行序列化. 它有CUDA 的对应实现,可以在NVIDIA GPU上进行张量运算(计算能力>=2.0). http://www.aibbt.com/a/pytorch/ 张量 Tensors torch.is_tensor[source] torch.is_tensor(obj) 如果obj 是一个pytorch张量,则返回True 参数: obj (Ob