Keras——常见函数
Keras——常见函数
1.Embedding()
用于训练词嵌入矩阵,以获得任意词的词向量。
keras.layers.Embedding(input_dim, output_dim, embeddings_initializer=‘uniform’, embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)
主要参数说明:
· input_dim:int, 整个词典的大小。例如NLP中唯一单词的个数,如果有一个用于padding的单词那就加1。
· output_dim:int,嵌入维度。
· embeddings_initializer:嵌入矩阵的初始化器。
· mask_zero:如果设置为True,那么padding的0将不参与计算,默认是False。这个参数可用于解决非等长序列padding噪声到原始数据的问题。
· input_length:序列长度。每个样本都有相同的长度。
初始化源码:
1 @interfaces.legacy_embedding_support 2 def __init__(self, input_dim, output_dim, 3 embeddings_initializer='uniform', 4 embeddings_regularizer=None, 5 activity_regularizer=None, 6 embeddings_constraint=None, 7 mask_zero=False, 8 input_length=None, 9 **kwargs): 10 if 'input_shape' not in kwargs: 11 if input_length: 12 kwargs['input_shape'] = (input_length,) 13 else: 14 kwargs['input_shape'] = (None,) 15 super(Embedding, self).__init__(**kwargs) 16 17 self.input_dim = input_dim 18 self.output_dim = output_dim 19 self.embeddings_initializer = initializers.get(embeddings_initializer) 20 self.embeddings_regularizer = regularizers.get(embeddings_regularizer) 21 self.activity_regularizer = regularizers.get(activity_regularizer) 22 self.embeddings_constraint = constraints.get(embeddings_constraint) 23 self.mask_zero = mask_zero 24 self.supports_masking = mask_zero 25 self.input_length = input_length
2. softmax()
又称归一化指数函数,是二分类 softmiod 函数的一种推广,目的是将多分类的结果以概率的形式呈现出来。
·将预测的结果转到指数函数上,这样可以保证概率的非负性。
·压缩,使多分类的预测结果之和为1.
3.model.fit()
官方文档的参数描述:
1 fit( x=None, #输入的x值 2 y=None, #输入的y标签值 3 batch_size=None, #整数 ,每次梯度更新的样本数即批量大小。未指定,默认为32。 4 epochs=1, #迭代次数 5 verbose=1, #整数,代表以什么形式来展示日志状态 6 callbacks=None, #回调函数,这个list中的回调函数将会在训练过程中的适当时机被调用,参考回调函数 7 validation_split=0.0, #浮点数0-1之间,用作验证集的训练数据的比例。模型将分出一部分不会被训练的验证数据,并将在每一轮结束时评估这些验证数据的误差和任何其他模型指标。 8 validation_data=None, #这个参数会覆盖 validation_split,即两个函数只能存在一个,它的输入为元组 (x_val,y_val),这作为验证数据。 9 shuffle=True, #布尔值。是否在每轮迭代之前混洗数据 10 class_weight=None, 11 sample_weight=None, 12 initial_epoch=0, 13 steps_per_epoch=None, #一个epoch包含的步数(每一步是一个batch的数据送入),当使用如TensorFlow数据Tensor之类的输入张量进行训练时,默认的None代表自动分割,即数据集样本数/batch样本数。 14 validation_steps=None,#在验证集上的step总数,仅当steps_per_epoch被指定时有用。 15 validation_freq=1, #指使用验证集实施验证的频率。当等于1时代表每个epoch结束都验证一次 16 max_queue_size=10, 17 workers=1, 18 use_multiprocessing=False 19 )
4.model.compile()
compile() 函数的参数:
1 compile(optimizer, 2 loss=None, 3 metrics=None, 4 loss_weights=None, 5 sample_weight_mode=None, 6 weighted_metrics=None, 7 target_tensors=None, 8 **kwargs)
·optimizer: 优化器
lr: 大于或者等于0的浮点数,表示学习率(learning rate)
momentum: 大于或等于0 的浮点数,用于表示动量参数。
decay: 大于或等于0 的浮点数,用于表示每次学习后学习率的衰退值。
nesterov: bool值,用于表示是否使用Nesterov 动量。
·loss: 损失函数,可以使keras自带的也可以是自定义的,如果模型又多个输出且需要多个损失函数时,可以传入一个字典或者损失函数列表,模型会将得到的损失加到一起。
·metrics: 评价函数,与损失函数类似,只不过评价函数的结果不会用于训练过程中,可以传递已有的评价函数名称,或者传递一个自定义的theano/tensorflow函数来使用。
自带的评价函数有: binary_accuracy(y_true,y_pred)、categorical_accuracy(y_true,y_pred)、sparse_categorical_accuracy(y_true,y_pred)、top_k_categorical_accuracy(y_true,y_pred,k=5)。
自定义评价函数应该在编译的时候compile传递进去,该函数需要以(y_true,y_pred)作为输入参数,并返回一个张量作为输出结果.。
·loss_weights: 可选项,是一个列表或者字典,用于表示不同损失函数对应的权重。