KERAS函数汇总

本文是基于KERAS官方中文文档写的

仅为方便查询,详细信息还是推荐看官方文档。

模型

关于KERAS模型
方法或属性完整功能
model.layers包含模型网络层的展平列表
model.inputs模型输入张量的列表
model.outputs模型输出张量的列表
model.summary()打印出模型概述信息。 它是 utils.print_summary 的简捷调用
model.get_config()返回包含模型配置信息的字典
model.get_weights()返回模型中所有权重张量的列表,类型为 Numpy 数组
model.set_weights(weights)从 Numpy 数组中为模型设置权重。列表中的数组必须与 get_weights() 返回的权重具有相同的尺寸
model.to_json()以 JSON 字符串的形式返回模型的表示。请注意,该表示不包括权重,仅包含结构
model.to_ymal()以 YAML 字符串的形式返回模型的表示。请注意,该表示不包括权重,只包含结构
model.save_weights(filepath)将模型权重存储为 HDF5 文件
model.load_weights(filepath, by_name=False)从 HDF5 文件(由 save_weights 创建)中加载权重。默认情况下,模型的结构应该是不变的。 如果想将权重载入不同的模型(部分层相同), 设置 by_name=True 来载入那些名字相同的层的权重
Sequential 模型 API
函数或属性完整功能
**model.compile()compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)用于配置训练模型
model.fit()fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)以固定数量的轮次(数据集上的迭代)训练模型
model.evaluate()evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None)在测试模式,返回误差值和评估标准值,计算逐批次进行
model.predict()predict(x, batch_size=None, verbose=0, steps=None)为输入样本生成输出预测。计算逐批次进行
model.train_on_batch()train_on_batch(x, y, sample_weight=None, class_weight=None)当数据集太大时使用,一批样品的单次梯度更新
model.test_on_batch()test_on_batch(x, y, sample_weight=None)在一批样本上评估模型
model.predict_on_batch()predict_on_batch(x)返回一批样本的模型预测值
model.fit_generator()fit_generator(generator, steps_per_epoch=None, epochs=1, verbose=1, callbacks=None, validation_data=None, validation_steps=None, class_weight=None, max_queue_size=10, workers=1, use_multiprocessing=False, shuffle=True, initial_epoch=0)使用 Python 生成器或 Sequence 实例逐批生成的数据,按批次训练模型
model.evaluate_generator()evaluate_generator(generator, steps=None, max_queue_size=10, workers=1, use_multiprocessing=False, verbose=0)在数据生成器上评估模型。这个生成器应该返回与 test_on_batch 所接收的同样的数据
model.predict_generator()predict_generator(generator, steps=None, max_queue_size=10, workers=1, use_multiprocessing=False, verbose=0)为来自数据生成器的输入样本生成预测。这个生成器应该返回与 predict_on_batch 所接收的同样的数据
model.get_layer()get_layer(name=None, index=None)根据名称(唯一)或索引值查找网络层。如果同时提供了 name 和 index,则 index 将优先。根据网络层的名称(唯一)或其索引返回该层。索引是基于水平图遍历的顺序(自下而上)
关于Keras网络层
函数或属性完整功能
layer.get_weights()以含有Numpy矩阵的列表形式返回层的权重
layer.set_weights(weights)从含有Numpy矩阵的列表中设置层的权重(与get_weights的输出形状相同)
layer.get_config()返回包含层配置的字典
layer.input()得到输入张量
layer.output得到输出张量
layer.input_shape得到输入张量的shape
layer.output_shape得到输出张量的shape
layer.get_input_at(node_index)层有多个节点,得到输入张量
layer.get_output_at(node_index)层有多个节点,得到输出张量
layer.get_input_shape_at(node_index)层有多个节点,得到输入张量的shape
layer.get_output_shape_at(nodex_index)层有多个节点,得到输出张量的shape
核心网络层
函数或属性完整功能
Dense()keras.layers.Dense(units, activation=None, use_bias=True, kernel_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)全连接层
Activation()keras.layers.Activation(activation)激活函数
Dropout()keras.layers.Dropout(rate, noise_shape=None, seed=None)Dropout 包括在训练中每次更新时, 将输入单元的按比率随机设置为 0, 这有助于防止过拟合
Flatten()keras.layers.Flatten(data_format=None)将输入展平。不影响批量大小
Inputkeras.engine.input_layer.Input()用于实例化 Keras 张量
Reshape()keras.layers.Reshape(target_shape)将输入重新调整为特定的尺寸
Permute()keras.layers.Permute(dims)根据给定的模式置换输入的维度。在某些场景下很有用,例如将 RNN 和 CNN 连接在一起
RepeatVector()keras.layers.RepeatVector(n)将输入重复 n 次
Lambda()keras.layers.Lambda(function, output_shape=None, mask=None, arguments=None)将任意表达式封装为 Layer 对象
ActivityRegularization()keras.layers.ActivityRegularization(l1=0.0, l2=0.0)网络层,对基于代价函数的输入活动应用一个更新
Masking()keras.layers.Masking(mask_value=0.0)使用覆盖值覆盖序列,以跳过时间步
SpatialDropout1D()keras.layers.SpatialDropout1D(rate)Dropout 的 Spatial 1D 版本此版本的功能与 Dropout 相同,但它会丢弃整个 1D 的特征图而不是丢弃单个元素
SpatialDropout2D()keras.layers.SpatialDropout2D(rate, data_format=None)Dropout 的 Spatial 2D 版本此版本的功能与 Dropout 相同,但它会丢弃整个 2D 的特征图而不是丢弃单个元素
SpatialDropout3D()keras.layers.SpatialDropout3D(rate, data_format=None)Dropout 的 Spatial 3D 版本此版本的功能与 Dropout 相同,但它会丢弃整个 3D 的特征图而不是丢弃单个元素
卷积层
函数或属性完整功能
Conv1Dkeras.layers.Conv1D(filters, kernel_size, strides=1, padding=‘valid’, data_format=‘channels_last’, dilation_rate=1, activation=None, use_bias=True, kernel_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)1D 卷积层 (例如时序卷积)。该层创建了一个卷积核,该卷积核以 单个空间(或时间)维上的层输入进行卷积, 以生成输出张量。 如果 use_bias 为 True, 则会创建一个偏置向量并将其添加到输出中。 最后,如果 activation 不是 None,它也会应用于输出。当使用该层作为模型第一层时,需要提供 input_shape 参数(整数元组或 None),例如, (10, 128) 表示 10 个 128 维的向量组成的向量序列, (None, 128) 表示 128 维的向量组成的变长序列
Conv2Dkeras.layers.Conv2D(filters, kernel_size, strides=(1, 1), padding=‘valid’, data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)2D 卷积层 (例如对图像的空间卷积)。该层创建了一个卷积核, 该卷积核对层输入进行卷积, 以生成输出张量。 如果 use_bias 为 True, 则会创建一个偏置向量并将其添加到输出中。 最后,如果 activation 不是 None,它也会应用于输出。当使用该层作为模型第一层时,需要提供 input_shape 参数 (整数元组,不包含样本表示的轴),例如, input_shape=(128, 128, 3) 表示 128x128 RGB 图像, 在 data_format=“channels_last” 时。
SeparableConv1Dkeras.layers.SeparableConv1D(filters, kernel_size, strides=1, padding=‘valid’, data_format=‘channels_last’, dilation_rate=1, depth_multiplier=1, activation=None, use_bias=True, depthwise_initializer=‘glorot_uniform’, pointwise_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, depthwise_regularizer=None, pointwise_regularizer=None, bias_regularizer=None, activity_regularizer=None, depthwise_constraint=None, pointwise_constraint=None, bias_constraint=None)深度方向的可分离 1D 卷积。可分离的卷积的操作包括,首先执行深度方向的空间卷积 (分别作用于每个输入通道),紧接一个将所得输出通道 混合在一起的逐点卷积。depth_multiplier 参数控 制深度步骤中每个输入通道生成多少个输出通道。直观地说,可分离的卷积可以理解为一种将卷积核分解成 两个较小的卷积核的方法,或者作为 Inception 块的 一个极端版本。
SeparableConv2Dkeras.layers.SeparableConv2D(filters, kernel_size, strides=(1, 1), padding=‘valid’, data_format=None, dilation_rate=(1, 1), depth_multiplier=1, activation=None, use_bias=True, depthwise_initializer=‘glorot_uniform’, pointwise_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, depthwise_regularizer=None, pointwise_regularizer=None, bias_regularizer=None, activity_regularizer=None, depthwise_constraint=None, pointwise_constraint=None, bias_constraint=None)深度方向的可分离 2D 卷积。可分离的卷积的操作包括,首先执行深度方向的空间卷积 (分别作用于每个输入通道),紧接一个将所得输出通道 混合在一起的逐点卷积。depth_multiplier 参数控 制深度步骤中每个输入通道生成多少个输出通道。直观地说,可分离的卷积可以理解为一种将卷积核分解成 两个较小的卷积核的方法,或者作为 Inception 块的 一个极端版本。
DepthwiseConv2Dkeras.layers.DepthwiseConv2D(kernel_size, strides=(1, 1), padding=‘valid’, depth_multiplier=1, data_format=None, activation=None, use_bias=True, depthwise_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, depthwise_regularizer=None, bias_regularizer=None, activity_regularizer=None, depthwise_constraint=None, bias_constraint=None)深度可分离 2D 卷积。深度可分离卷积包括仅执行深度空间卷积中的第一步(其分别作用于每个输入通道)。 depth_multiplier 参数控制深度步骤中每个输入通道生成多少个输出通道。
Conv2DTransposekeras.layers.Conv2DTranspose(filters, kernel_size, strides=(1, 1), padding=‘valid’, output_padding=None, data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)转置卷积层
Conv3Dkeras.layers.Conv3D(filters, kernel_size, strides=(1, 1, 1), padding=‘valid’, data_format=None, dilation_rate=(1, 1, 1), activation=None, use_bias=True, kernel_initializer=‘glorot_uniform’, bias_initializer=‘zeros’, kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)3D卷积层

其余还有很多,不再一一列举。

池化层
函数或属性完整功能
MaxPooling2Dkeras.layers.MaxPooling2D(pool_size=(2, 2), strides=None, padding=‘valid’, data_format=None)对于空间数据的最大池化

同样,其他还有平均值池化,一维等多种,最常用的还是2维的最大值池化。

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值