code: def resnet_cifar10(
      train_data,
      test_data,
      mean_data,
      network_name,
      epoch_size,
      num_quantization_bits=32,
      block_size=None,
      warm_up=0,
      max_epochs=160,
      restore=True,
      log_to_file=None,
      num_mbs_per_log=None,
      gen_heartbeat=False,
      scale_up=False,
      profiling=False,
      fp16=False,
  ):
      set_computation_network_trace_level(0)
  
      # NOTE: scaling up minibatch_size increases sample throughput. In 8-GPU machine,
      # ResNet110 samples-per-second is ~7x of single GPU, comparing to ~3x without scaling
      # up. However, bigger minimatch size on the same number of samples means less updates,
      # thus leads to higher training error. This is a trade-off of speed and accuracy
      minibatch_size = 128 * (
          Communicator.num_workers() if scale_up else 1
      )
  
      progress_printer = ProgressPrinter(
          freq=num_mbs_per_log,
          tag="Training",
          log_to_file=log_to_file,
          rank=Communicator.rank(),
          gen_heartbeat=gen_heartbeat,
          num_epochs=max_epochs,
      )
  
      network = create_resnet_network(network_name, fp16)
      trainer = create_trainer(
          network,
          minibatch_size,
          epoch_size,
          num_quantization_bits,
          block_size,
          warm_up,
          progress_printer,
      )
      train_source = create_image_mb_source(
          train_data,
          mean_data,
          train=True,
          total_number_of_samples=max_epochs * epoch_size,
      )
      test_source = create_image_mb_source(
          test_data,
          mean_data,
          train=False,
          total_number_of_samples=C.io.FULL_DATA_SWEEP,
      )
      train_and_test(
          network,
          trainer,
          train_source,
          test_source,
          minibatch_size,
          epoch_size,
          restore,
          profiling,
      )
  
file_path: CNTK/Examples/Image/Classification/ResNet/Python/TrainResNet_CIFAR10_Distributed.py
imports: from __future__ import print_function
  import os
  import argparse
  import cntk
  import numpy
  import cntk
  from cntk import input, cross_entropy_with_softmax, classification_error, Trainer, cntk_py
  from cntk import data_parallel_distributed_learner, block_momentum_distributed_learner, Communicator
  from cntk.learners import momentum_sgd, learning_parameter_schedule, momentum_schedule
  from cntk.device import try_set_default_device, gpu
  from cntk.train.training_session import *
  from cntk.debugging import *
  from cntk.logging import *
  from resnet_models import *
  from TrainResNet_CIFAR10 import create_image_mb_source
label_desc: Use image node_id 4 for calling a global function with example usage: resnet_cifar10(train_data, test_data, mean_data, network_name, epoch_size, num_quantization_bits, block_size, warm_up, max_epochs, restore, log_to_file, num_mbs_per_log, gen_heartbeat, scale_up, profiling, fp16) without return types