code: def from_data(data, *, size=None):
      """Create a TabularDataset from lists/arrays/callables.
  
      >>> from chainer.dataset import tabular
      >>>
      >>> dataset = tabular.from_data([0, 1, 2])
      >>> dataset[0]
      0
      >>> dataset = tabular.from_data(([0, 1, 2], [3, 4, 5]))
      >>> dataset[0]
      (0, 3)
      >>> dataset = tabular.from_data((('a', [0, 1, 2]), ('b', [3, 4, 5])))
      >>> dataset.keys
      ('a', 'b')
      >>> dataset[0]
      (0, 3)
      >>> dataset = tabular.from_data({'a': [0, 1, 2], 'b': [3, 4, 5]})
      >>> sorted(dataset[0].items())
      [('a', 0), ('b', 3)]
      >>> dataset = tabular.from_data(('a', lambda i: i * i), size=10)
      >>> dataset[5]
      25
  
      Args:
          data (list, array, tuple, or dict): Data in following format.
  
              - `list/array`
              - `(str, list/array/callable)`
              - `((str, ...), callable)`
              - `((list/array)/(str, list/array/callable) \
                  /((key, ...), callable), ...)`
              - `{str: (list/array/callable)/(str, ...): callable, ...}`
          size (int): The length of the dataset.
              This argument is required \
              when no lists/arrays exist in :obj:`data`.
      Return:
          A :class:`~chainer.dataset.TabularDataset`.
      """
  
      if isinstance(data, tuple):
          if len(data) == 2:
              key, d = data
              if isinstance(key, str):
                  return _make_dataset(key, d, size)
              if isinstance(key, tuple) and all(
                  isinstance(k, str) for k in key
              ):
                  return _make_dataset(key, d, size)
  
          for d in data:
              if isinstance(d, tuple):
                  _, d = d
  
              if size is None:
                  try:
                      size = len(d)
                  except TypeError:
                      pass
  
          datasets = []
          for d in data:
              if isinstance(d, tuple):
                  key, d = d
              else:
                  key = None
              datasets.append(_make_dataset(key, d, size))
  
          return datasets[0].join(*datasets[1:]).astuple()
  
      elif isinstance(data, dict):
          for d in data.values():
              if size is None:
                  try:
                      size = len(d)
                  except TypeError:
                      pass
  
          datasets = []
          for key, d in data.items():
              datasets.append(_make_dataset(key, d, size))
  
          return datasets[0].join(*datasets[1:]).asdict()
  
      else:
          return _make_dataset(None, data, size)
  
imports: import chainer
  from chainer.dataset.tabular import tabular_dataset
label_desc: Use image node_id 1 for calling a global function with example usage: from_data(data) and returns: datasets, datasets, _make_dataset, _make_dataset, _make_dataset