TensorFlow:tf.SparseConditionalAccumulator函数
tf.SparseConditionalAccumulator 函数
SparseConditionalAccumulator 类
继承自: ConditionalAccumulatorBase
定义在:tensorflow/python/ops/data_flow_ops.py.
请参阅指南:输入和读取器>条件累加器
用于聚合稀疏渐变的条件累加器.
稀疏渐变由IndexedSlices表示.
最新的渐变(即计算梯度的时间步长等于累加器的时间步长)被添加到累加器中.
平均渐变的提取被阻止,直到所需数量的渐变被累积.
函数参数:
- dtype:累积渐变的数据类型.
- shape:累积梯度的形状.
- shared_name:可选的.如果非空,这个累加器将在多个会话中以给定名称共享.
- name:累加器的可选名称.
SparseConditionalAccumulator 属性
- accumulator_ref
基础累加器引用. - dtype
该累加器累加的渐变的数据类型. - name
基础累加器的名称.
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
)
尝试将稀疏渐变应用于累加器.
如果渐变是陈旧的,即local_step小于累加器的全局时间步长,那么这个尝试会被默认地丢弃.
稀疏渐变由其索引、值和可能为空或无形状表示.索引必须是表示张量中非零项的位置的向量.值是渐变的非零切片,并且必须与索引具有相同的第一维,即由索引和值表示的nnz必须一致.如果不为空或无,则形状必须与累加器的形状一致(如果还提供).
示例:张量[[0,0],[0,1],[2,3]];可以表示为索引:[1,2];值:[[0,1],[2,3]];形状:[3,2]
apply_grad 方法参数:
- grad_indices:要应用的稀疏渐变的索引.
- grad_values:要应用的稀疏渐变的值.
- grad_shape:要应用的稀疏渐变的形状.
- local_step:计算渐变的时间步长.
- name:操作的可选名称.
apply_grad 方法返回:
(有条件地)对累加器应用渐变的操作.
apply_grad 方法可能引发的异常:
- InvalidArgumentError:如果毕业是错误的形状
apply_indexed_slices_grad
apply_indexed_slices_grad(
grad,
local_step=0,
name=None
)
尝试对累加器应用渐变.
如果渐变是陈旧的,即local_step小于累加器的全局时间步长,那么这个尝试会被默认地丢弃.
apply_indexed_slices_grad 方法参数:
- grad:要应用的渐变IndexedSlices.
- local_step:计算梯度的时间步长.
- name:操作的可选名称.
apply_indexed_slices_grad 方法返回:
(有条件地)对累加器应用梯度的操作.
apply_indexed_slices_grad 方法可能引发的异常:
- InvalidArgumentError:如果毕业是错误的形状
num_accumulated
num_accumulated ( name = None )
累加器中当前累计的渐变数.
num_accumulated 方法参数
- name:操作的可选名称.
num_accumulated 方法返回
累加器当前的累加渐变数.
set_global_step
set_global_step(
new_global_step,
name=None
)
设置累加器的全局时间步长.
如果我们尝试设置一个低于累加器自己的时间步长的时间步,操作会记录警告.
p>set_global_step 方法参数
- new_global_step:新时间步的价值.可以是一个变量或一个常量
- name:操作的可选名称.
set_global_step 方法返回
设置累加器时间步的操作.
take_grad
take_grad(
num_required,
name=None
)
尝试从累加器中提取平均梯度.
操作阻塞,直到累加器成功地应用了足够数量的渐变.
一旦成功,以下操作也会被触发:累计渐变的计数器重置为0;累计渐变重置为0张量;累加器的内部时间步长增加1.
take_grad 方法参数:
- num_required:需要聚合的渐变的数量
- name:操作的可选名称
take_grad 方法返回:
代表平均梯度的索引,值和形状的元组.
take_grad 方法可能引发的异常:
- InvalidArgumentError:如果num_required <1
take_indexed_slices_grad
take_indexed_slices_grad(
num_required,
name=None
)
尝试从累加器中提取平均渐变.
操作阻塞,直到累加器成功地应用了足够数量的渐变.
一旦成功,以下操作也会被触发:累计渐变的计数器重置为0;累计渐变重置为0张量;累加器的内部时间步长增加1.
take_indexed_slices_grad 方法参数:
- num_required:需要聚合的渐变的数量
- name:操作的可选名称
take_indexed_slices_grad 方法返回:
IndexedSlices保存平均渐变的值.
take_indexed_slices_grad 方法可能引发的异常:
- InvalidArgumentError:如果num_required <1