MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / make

Method make

src/opr/impl/training/optimizer.cpp:43–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43SymbolVar SGD::make(
44 SymbolVar symbol_weight, SymbolVar symbol_grad,
45 std::shared_ptr<cg::ComputingGraph> graph) {
46 SymbolVar symbol_pre_grad;
47 auto pre_grad = TensorGen::zeros<dtype::Float32>(
48 symbol_grad.shape(), symbol_grad.node()->comp_node());
49 m_pre_grads.push_back(pre_grad);
50 symbol_pre_grad = opr::SharedDeviceTensor::make(*graph, *pre_grad);
51
52 if (m_weight_decay != .0f) {
53 symbol_grad = symbol_grad + m_weight_decay * symbol_weight;
54 }
55
56 if (m_momentum != .0f) {
57 symbol_pre_grad =
58 opr::AddUpdate::make(symbol_pre_grad, symbol_grad, {m_momentum, 1.0f});
59 return opr::AddUpdate::make(symbol_weight, -symbol_pre_grad, {1.f, m_lr});
60 } else {
61 return opr::AddUpdate::make(symbol_weight, -symbol_grad, {1.f, m_lr});
62 }
63}
64
65Adam::Adam(
66 float lr, float weight_decay, std::pair<float, float> betas, float eps,

Callers

nothing calls this directly

Calls 11

fill_zero_dev_tensorFunction · 0.85
maxFunction · 0.85
powfFunction · 0.85
makeFunction · 0.50
powFunction · 0.50
shapeMethod · 0.45
comp_nodeMethod · 0.45
nodeMethod · 0.45
push_backMethod · 0.45
dtypeMethod · 0.45
make_scalarMethod · 0.45

Tested by

no test coverage detected