Tensorflow 编写自定义优化器问题
如果这些是基本问题,我会事先道歉——我已经做了一些调查,找不到直截了当的答案。如果有任何可以帮助的资源链接,那也太好了 我目前正在看下面一段实现optimizer.optimizer的类的代码。我无法理解以下内容:Tensorflow 编写自定义优化器问题,tensorflow,Tensorflow,如果这些是基本问题,我会事先道歉——我已经做了一些调查,找不到直截了当的答案。如果有任何可以帮助的资源链接,那也太好了 我目前正在看下面一段实现optimizer.optimizer的类的代码。我无法理解以下内容: def _create_slots(self, var_list): # Create slots for the first and second moments. for v in var_list: self._zeros_slot(v, "m"
def _create_slots(self, var_list):
# Create slots for the first and second moments.
for v in var_list:
self._zeros_slot(v, "m", self._name)
def _apply_dense(self, grad, var):
lr_t = math_ops.cast(self._lr_t, var.dtype.base_dtype)
beta_t = math_ops.cast(self._beta_t, var.dtype.base_dtype)
alpha_t = math_ops.cast(self._alpha_t, var.dtype.base_dtype)
eps = 1e-7 #cap for moving average
m = self.get_slot(var, "m")
m_t = m.assign(tf.maximum(beta_t * m + eps, tf.abs(grad)))
var_update = state_ops.assign_sub(var, lr_t*grad*(1.0+alpha_t*tf.sign(grad)*tf.sign(m_t) ) )
#Create an op that groups multiple operations
#When this op finishes, all ops in input have finished
return control_flow_ops.group(*[var_update, m_t])