code: def eval_step(x, y, net, loss_summary, accuracy_summary):
      # training=False is only needed if there are layers with different
      # behavior during training versus inference (e.g. Dropout).
      z = net(x)
  
      loss = tf.keras.losses.sparse_categorical_crossentropy(
          y_true=y, y_pred=z, from_logits=True, axis=-1
      )
      loss = tf.reduce_mean(loss)
  
      loss_summary(loss)
      accuracy_summary(y, z)
      return
  
file_path: sagemaker-python-sdk/tests/data/tensorflow_mnist/mnist_v2.py
imports: import argparse
  import numpy
  import os
  import json
  import tensorflow
  from tensorflow.keras.layers import Conv2D, BatchNormalization, Dense, Flatten
label_desc: Use image node_id 2 for calling a global function with example usage: eval_step(x, y, net, loss_summary, accuracy_summary) without return types