LIUPENG BLOG
Liupeng
Feb 23, 2020
It takes 5 minutes to read this article.

Optimizer

优化器

使用

    with tensorflow.GradientTape() as tape:        predictions = model(images)        loss = loss_object(labels, predictions)    gradients = tape.gradient(loss, model.trainable_variables)    optimizer.apply_gradients(zip(gradients, model.trainable_variables))

方法

add_slot

add_slot(    var,    slot_name,    initializer='zeros')

为添加新的广告位变量var

add_weight

add_weight(    name,    shape,    dtype=None,    initializer='zeros',    trainable=None,    synchronization=tf.VariableSynchronization.AUTO,    aggregation=tf.compat.v1.VariableAggregation.NONE)

apply_gradients

apply_gradients(    grads_and_vars,    name=None)

将渐变应用于变量。

这是的第二部分minimize()。它返回一个Operation应用渐变的。

Args:

  • grads_and_vars:(梯度,变量)对的列表。
  • name:返回的操作的可选名称。默认为传递给Optimizer构造函数的名称。

Returns:

一种Operation适用指定梯度。的iterations 将被自动加1。

Raises:

  • TypeError:如果grads_and_vars格式错误。
  • ValueError:如果所有变量都不具有梯度。

from_config

@classmethodfrom_config(    cls,    config,    custom_objects=None)

从其配置创建优化器。

此方法与的相反get_config,能够从config字典中实例化相同的优化器。

参数:

  • config:Python字典,通常是get_config的输出。
  • custom_objects:将名称映射到用于创建此优化器的其他Python对象的Python字典,例如用于超参数的函数。

返回值:

优化器实例。

get_config

get_config()

返回优化器的配置。

优化器配置是包含优化器配置的Python字典(可序列化)。稍后可以从此配置中重新实例化同一优化器(无任何保存状态)。

返回值:

Python字典。

get_gradients

get_gradients(    loss,    params)

返回loss相对于的渐变params

参数:

  • loss:损失张量。
  • params:变量列表。

返回值:

梯度张量列表。

Raises:

  • ValueError:如果无法计算任何梯度(例如,如果未实现梯度函数)。

get_slot

get_slot(    var,    slot_name)

get_slot_names

get_slot_names()

该优化器插槽的名称列表。

get_updates

get_updates(    loss,    params)

get_weights

get_weights()

minimize

minimize(    loss,    var_list,    grad_loss=None,    name=None)

loss通过更新最小化var_list

此方法仅使用tf.GradientTape和调用 来计算梯度apply_gradients()。如果要在应用之前处理渐变,请显式调用tf.GradientTapeapply_gradients()而不要使用此函数。

精氨酸:

  • loss:不带参数的可调用对象,它返回的值要最小化。
  • var_listVariable要更新以最小化的对象 列表或元组loss,或者可调用的返回Variable对象列表或元组。如果变量列表minimize在第一次loss调用之前已创建,则在变量列表不完整之前,请使用callable 。
  • grad_loss: 可选的。甲Tensor保持计算为梯度loss
  • name:返回的操作的可选名称。

返回值:

Operation,在更新变量var_list。的iterations 将被自动加1。

Raises:

  • ValueError:如果某些变量不是Variable对象。

set_weights

set_weights(weights)

variables

variables()

根据创建的顺序返回此优化器的变量。