def METHOD_NAME():
    x = init_value_seq
    m = []
    v = []
    for idx in range(tensor_num):
        m.append(np.zeros_like(x[idx]))
        v.append(np.zeros_like(x[idx]))
    beta1 = betas[0]
    beta2 = betas[1]
    ones = np.ones(x_shape).astype(np.float32)
    def train_one_iter(step, weight):
        for i in range(tensor_num):
            transposed_weight = np.transpose(weight[i], (1, 0))
            grad = np.matmul(ones, transposed_weight)
            grad = grad + weight_decay * x[i]
            bias_correction1 = 1.0
            bias_correction2 = 1.0
            if do_bias_correction:
                bias_correction1 = 1.0 - np.power(beta1, step)
                bias_correction2 = 1.0 - np.power(beta2, step)
            m[i] = beta1 * m[i] + (1 - beta1) * grad
            v[i] = beta2 * v[i] + (1 - beta2) * grad * grad
            denom = np.sqrt(v[i]) / np.sqrt(bias_correction2) + eps
            x[i] = x[i] - ((learning_rate / bias_correction1) * m[i] / denom)
        return (x, m, v)
    for i in range(1, train_iters + 1):
        x, m, v = train_one_iter(i, random_weight_seq[i - 1])
        np_res_list.append(copy.copy(x))