in blocksparse/optimize.py [0:0]
def _create_slots(self, params):
# Create slots for the first and second moments.
for param in params:
if param.shape.ndims == 2 and param.shape[0].value > 1:
self._get_or_make_slot(param, tf.zeros(param.shape[1].value), "cv", self.name + "CV")
self._get_or_make_slot(param, tf.zeros(param.shape[0].value), "rv", self.name + "RV")
elif param.shape.ndims == 1 or (param.shape.ndims == 2 and param.shape[0].value == 1):
self._get_or_make_slot(param, tf.zeros(param.shape.num_elements()), "cv", self.name + "CV")
else:
raise ValueError("only 1 or 2d params are supported")