code: def test_serialize_deserialize_random():
      for max_shape in [(12, 200, 100, 3), (200, 300, 3), (300, 2)]:
          for dtype in [np.uint8, np.float]:
              rsdi = RandomlyShapedDataIterator(
                  10, max_shape=max_shape, dtype=dtype
              )
              for i, batch in enumerate(rsdi):
                  if i == 10:
                      break
                  yield check_serialize_deserialize, batch
  
imports: import os
  import multiprocessing
  import socket
  from contextlib import closing, contextmanager
  import numpy
  from nvidia.dali._multiproc.shared_batch import BufShmChunk, SharedBatchWriter, SharedBatchMeta, deserialize_batch
  from nvidia.dali._multiproc.shared_queue import ShmQueue
  from nvidia.dali._multiproc.messages import ShmMessageDesc
  from test_utils import RandomlyShapedDataIterator
  from nose_utils import raises
label_desc: Use image node_id 3 for calling a global function with example usage: test_serialize_deserialize_random() without return types