MCPcopy Create free account
hub / github.com/pytorch/pytorch / FtrlOptimizer

Class FtrlOptimizer

caffe2/python/optimizer.py:1481–1534  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1479
1480
1481class FtrlOptimizer(Optimizer):
1482 def __init__(
1483 self,
1484 alpha=0.01,
1485 beta=1e-4,
1486 lambda1=0,
1487 lambda2=0,
1488 sparse_dedup_aggregator=None,
1489 engine="",
1490 ):
1491 super().__init__()
1492 self.alpha = alpha
1493 self.beta = beta
1494 self.lambda1 = lambda1
1495 self.lambda2 = lambda2
1496 self.sparse_dedup_aggregator = sparse_dedup_aggregator
1497 self.engine = engine
1498
1499 def _run(self, net, param_init_net, param_info):
1500 param = param_info.blob
1501 grad = param_info.grad
1502
1503 if self.alpha <= 0:
1504 return
1505
1506 nz = param_init_net.ConstantFill(
1507 [param], str(param) + "_ftrl_nz", extra_shape=[2], value=0.0
1508 )
1509 self._aux_params.local.append(nz)
1510 if isinstance(grad, core.GradientSlice):
1511 grad = self.dedup(net, self.sparse_dedup_aggregator, grad)
1512 net.SparseFtrl(
1513 [param, nz, grad.indices, grad.values],
1514 [param, nz],
1515 engine=self.engine,
1516 alpha=self.alpha,
1517 beta=self.beta,
1518 lambda1=self.lambda1,
1519 lambda2=self.lambda2,
1520 )
1521 else:
1522 net.Ftrl(
1523 [param, nz, grad],
1524 [param, nz],
1525 engine=self.engine,
1526 alpha=self.alpha,
1527 beta=self.beta,
1528 lambda1=self.lambda1,
1529 lambda2=self.lambda2,
1530 )
1531
1532 def scale_learning_rate(self, scale):
1533 self.alpha *= scale
1534 return
1535
1536
1537class GFtrlOptimizer(Optimizer):

Callers 1

build_ftrlFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…