code: def visual(title, X, name):
      
      assert len(X.shape) == 4
      X = X.transpose((0, 2, 3, 1))
      X = np.clip((X - np.min(X))*(255.0/(np.max(X) - np.min(X))), 0, 255).astype(np.uint8)
      n = np.ceil(np.sqrt(X.shape[0]))
      buff = np.zeros((int(n*X.shape[1]), int(n*X.shape[2]), int(X.shape[3])), dtype=np.uint8)
      for i, img in enumerate(X):
          fill_buf(buff, i, img, X.shape[1:3])
      buff = buff[:, :, ::-1]
      plt.imshow(buff)
      plt.title(title)
      plt.savefig(name)
docs: Image visualization and preservation
      :param title: title
      :param X: images to visualized
      :param name: saved picture`s name
      :return: