in lib/optim/extragradient.py [0:0]
def extrapolation(self):
"""Performs the extrapolation step and save a copy of the current parameters for the update step.
"""
# Check if a copy of the parameters was already made.
is_empty = len(self.params_copy) == 0
for group in self.param_groups:
for p in group['params']:
u = self.update(p, group)
if is_empty:
# Save the current parameters for the update step. Several extrapolation step can be made before each update but only the parameters before the first extrapolation step are saved.
self.params_copy.append(p.data.clone())
if u is None:
continue
# Update the current parameters
p.data.add_(u)