

def test_adam(backend_default):
    adam = Adam()
    param = np.random.rand(200, 128)
    param2 = copy.deepcopy(param)
    grad = (0.01 * np.random.rand(200, 128))
    grad2 = (grad / 128.0)
    states = [(0.01 * np.random.rand(200, 128)), (0.01 * np.random.rand(200, 128))]
    states2 = [copy.deepcopy(states[0]), copy.deepcopy(states[1])]
    epoch = 1
    t = (epoch + 1)
    l = ((adam.learning_rate * np.sqrt((1 - (adam.beta_2 ** t)))) / (1 - (adam.beta_1 ** t)))
    (m, v) = states2
    m[:] = ((m * adam.beta_1) + ((1.0 - adam.beta_1) * grad2))
    v[:] = ((v * adam.beta_2) + (((1.0 - adam.beta_2) * grad2) * grad2))
    param2[:] -= ((l * m) / (np.sqrt(v) + adam.epsilon))
    param_list = [((wrap(param), wrap(grad)), [wrap(states[0]), wrap(states[1])])]
    compare_tensors(adam, param_list, param2, tol=1e-07, epoch=epoch)

dataset/ETHPy150Open NervanaSystems/neon/tests/test_optimizer.py test_adam/original