code: def test_universal():
      np.random.seed(98052)
      builtin_sgd = lambda params: sgd(
          params, lr=C.learning_parameter_schedule(0.125)
      )
      builtin_last_avg_error, builtin_avg_error, _ = ffnet(builtin_sgd)
      np.random.seed(98052)
      my_sgd = lambda ps, gs: C.combine(
          [C.assign(p, p - 0.125 / 25 * g) for p, g in zip(ps, gs)]
      )
      universal_sgd = lambda params: universal(my_sgd, params)
      my_last_avg_error, my_avg_error, _ = ffnet(universal_sgd)
      assert np.all(
          np.less_equal(my_last_avg_error, builtin_last_avg_error)
      )
      assert np.all(np.less_equal(my_avg_error, builtin_avg_error))
  
imports: from __future__ import division, print_function
  import numpy
  import cntk
  from cntk import parameter
  import pytest
  import sys
  import itertools
  from cntk.logging import ProgressPrinter
  from cntk.learners import sgd, learning_rate_schedule, learning_parameter_schedule, UnitType, universal
  from cntk.layers import Dense, Sequential
label_desc: Use image node_id 18 for calling a global function with example usage: test_universal() without return types