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: 可选项,是一个列表或者字典,用于表示不同损失函数对应的权重。

 

posted @ 2022-08-11 22:11  Tatsukyou  阅读(305)  评论(0)    收藏  举报