TensorFlow:tf.SparseConditionalAccumulator函數(shù)

2018-01-30 10:18 更新

tf.SparseConditionalAccumulator 函數(shù)

SparseConditionalAccumulator 類

繼承自: ConditionalAccumulatorBase

定義在:tensorflow/python/ops/data_flow_ops.py.

請參閱指南:輸入和讀取器>條件累加器

用于聚合稀疏漸變的條件累加器.

稀疏漸變由IndexedSlices表示.

最新的漸變(即計(jì)算梯度的時(shí)間步長等于累加器的時(shí)間步長)被添加到累加器中.

平均漸變的提取被阻止,直到所需數(shù)量的漸變被累積.

函數(shù)參數(shù):

  • dtype:累積漸變的數(shù)據(jù)類型.
  • shape:累積梯度的形狀.
  • shared_name:可選的.如果非空,這個(gè)累加器將在多個(gè)會(huì)話中以給定名稱共享.
  • name:累加器的可選名稱.

SparseConditionalAccumulator 屬性

  • accumulator_ref
    基礎(chǔ)累加器引用.
  • dtype
    該累加器累加的漸變的數(shù)據(jù)類型.
  • name
    基礎(chǔ)累加器的名稱.

SparseConditionalAccumulator 方法

__init__

__init__(
    dtype,
    shape=None,
    shared_name=None,
    name='sparse_conditional_accumulator'
)

apply_grad

apply_grad(
    grad_indices,
    grad_values,
    grad_shape=None,
    local_step=0,
    name=None
)

嘗試將稀疏漸變應(yīng)用于累加器.

如果漸變是陳舊的,即local_step小于累加器的全局時(shí)間步長,那么這個(gè)嘗試會(huì)被默認(rèn)地丟棄.

稀疏漸變由其索引、值和可能為空或無形狀表示.索引必須是表示張量中非零項(xiàng)的位置的向量.值是漸變的非零切片,并且必須與索引具有相同的第一維,即由索引和值表示的nnz必須一致.如果不為空或無,則形狀必須與累加器的形狀一致(如果還提供).

示例:張量[[0,0],[0,1],[2,3]];可以表示為索引:[1,2];值:[[0,1],[2,3]];形狀??:[3,2]

apply_grad 方法參數(shù):

  • grad_indices:要應(yīng)用的稀疏漸變的索引.
  • grad_values:要應(yīng)用的稀疏漸變的值.
  • grad_shape:要應(yīng)用的稀疏漸變的形狀.
  • local_step:計(jì)算漸變的時(shí)間步長.
  • name:操作的可選名稱.

apply_grad 方法返回:

(有條件地)對累加器應(yīng)用漸變的操作.

apply_grad 方法可能引發(fā)的異常:

  • InvalidArgumentError:如果畢業(yè)是錯(cuò)誤的形狀

apply_indexed_slices_grad

apply_indexed_slices_grad(
    grad,
    local_step=0,
    name=None
)

嘗試對累加器應(yīng)用漸變.

如果漸變是陳舊的,即local_step小于累加器的全局時(shí)間步長,那么這個(gè)嘗試會(huì)被默認(rèn)地丟棄.

apply_indexed_slices_grad 方法參數(shù):

  • grad:要應(yīng)用的漸變IndexedSlices.
  • local_step:計(jì)算梯度的時(shí)間步長.
  • name:操作的可選名稱.

apply_indexed_slices_grad 方法返回:

(有條件地)對累加器應(yīng)用梯度的操作.

apply_indexed_slices_grad 方法可能引發(fā)的異常:

  • InvalidArgumentError:如果畢業(yè)是錯(cuò)誤的形狀

num_accumulated

num_accumulated ( name = None )

累加器中當(dāng)前累計(jì)的漸變數(shù).

num_accumulated 方法參數(shù)

  • name:操作的可選名稱.

num_accumulated 方法返回

累加器當(dāng)前的累加漸變數(shù).

set_global_step

set_global_step(
    new_global_step,
    name=None
)

設(shè)置累加器的全局時(shí)間步長.

如果我們嘗試設(shè)置一個(gè)低于累加器自己的時(shí)間步長的時(shí)間步,操作會(huì)記錄警告.

p>set_global_step 方法參數(shù)

  • new_global_step:新時(shí)間步的價(jià)值.可以是一個(gè)變量或一個(gè)常量
  • name:操作的可選名稱.

set_global_step 方法返回

設(shè)置累加器時(shí)間步的操作.

take_grad

take_grad(
    num_required,
    name=None
)

嘗試從累加器中提取平均梯度.

操作阻塞,直到累加器成功地應(yīng)用了足夠數(shù)量的漸變.

一旦成功,以下操作也會(huì)被觸發(fā):累計(jì)漸變的計(jì)數(shù)器重置為0;累計(jì)漸變重置為0張量;累加器的內(nèi)部時(shí)間步長增加1.

take_grad 方法參數(shù):

  • num_required:需要聚合的漸變的數(shù)量
  • name:操作的可選名稱

take_grad 方法返回:

代表平均梯度的索引,值和形狀的元組.

take_grad 方法可能引發(fā)的異常:

  • InvalidArgumentError:如果num_required <1

take_indexed_slices_grad

take_indexed_slices_grad(
    num_required,
    name=None
)

嘗試從累加器中提取平均漸變.

操作阻塞,直到累加器成功地應(yīng)用了足夠數(shù)量的漸變.

一旦成功,以下操作也會(huì)被觸發(fā):累計(jì)漸變的計(jì)數(shù)器重置為0;累計(jì)漸變重置為0張量;累加器的內(nèi)部時(shí)間步長增加1.

take_indexed_slices_grad 方法參數(shù):

  • num_required:需要聚合的漸變的數(shù)量
  • name:操作的可選名稱

take_indexed_slices_grad 方法返回:

IndexedSlices保存平均漸變的值.

take_indexed_slices_grad 方法可能引發(fā)的異常:

  • InvalidArgumentError:如果num_required <1
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)