code: def test_ndarray_train_on_batch_multi_dict_io(self):
      x1 = np.random.rand(ModelMultiDictIOTest.batch_size, 1).astype(
          np.float32
      )
      x2 = np.random.rand(ModelMultiDictIOTest.batch_size, 1).astype(
          np.float32
      )
      y1 = np.random.rand(ModelMultiDictIOTest.batch_size, 1).astype(
          np.float32
      )
      y2 = np.random.rand(ModelMultiDictIOTest.batch_size, 1).astype(
          np.float32
      )
      x, y = dict(x1=x1, x2=x2), dict(y1=y1, y2=y2)
      loss = self.model.train_on_batch(x, y)
      self.assertEqual(type(loss), float)
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from poutyne import Model
  from tests.framework.model.base import ModelFittingTestCase
label_desc: Use image node_id 5 for calling the ModelMultiDictIOTest obj's underlying member method code with example usage: obj.test_ndarray_train_on_batch_multi_dict_io() without return types