code: def to_niimgs(X, dim):
      p = np.prod(dim)
  
      assert len(dim) == 3
      assert X.shape[-1] <= p
  
      mask = np.zeros(p).astype(bool)
      mask[: X.shape[-1]] = 1
  
      assert mask.sum() == X.shape[1]
  
      mask = mask.reshape(dim)
      X = np.rollaxis(
          np.array([unmask_from_to_3d_array(x, mask) for x in X]),
          0,
          start=4,
      )
      affine = np.eye(4)
  
      return Nifti1Image(X, affine), Nifti1Image(
          mask.astype(np.float64), affine
      )
  
imports: import numpy
  import pytest
  from nibabel import Nifti1Image
  from numpy.testing import assert_almost_equal, assert_array_almost_equal, assert_array_equal
  from sklearn.datasets import load_iris
  from nilearn.decoding._objective_functions import logistic_loss_lipschitz_constant, spectral_norm_squared, squared_loss, squared_loss_grad
  from nilearn.decoding.space_net import BaseSpaceNet, SpaceNetClassifier, SpaceNetRegressor
  from nilearn.decoding.space_net_solvers import _logistic_derivative_lipschitz_constant, _squared_loss_and_spatial_grad, _squared_loss_and_spatial_grad_derivative, _squared_loss_derivative_lipschitz_constant, graph_net_logistic, graph_net_squared_loss, tvl1_solver
  from nilearn.image import get_data
  from nilearn.masking import unmask_from_to_3d_array
label_desc: Use image node_id 2 for calling a global function with example usage: to_niimgs(X, dim) and returns: Nifti1Image,  Nifti1Image