code: def confusion_matrix(self, slice_size:int=1):
          "Confusion matrix as an `np.ndarray`."
          x=torch.arange(0,self.data.c)
          if slice_size is None: cm = ((self.pred_class==x[:,None]) & (self.y_true==x[:,None,None])).sum(2)
          else:
              cm = torch.zeros(self.data.c, self.data.c, dtype=x.dtype)
              for i in range(0, self.y_true.shape[0], slice_size):
                  cm_slice = ((self.pred_class[i:i+slice_size]==x[:,None])
                              & (self.y_true[i:i+slice_size]==x[:,None,None])).sum(2)
                  torch.add(cm, cm_slice, out=cm)
          return to_np(cmf confusion_matrix(self, slice_size:int=1):
          "Confusion matrix as an `np.ndarray`."
          x=torch.arange(0,self.data.c)
          if slice_size is None: cm = ((self.pred_class==x[:,None]) & (self.y_true==x[:,None,None])).sum(2)
          else:
              cm = torch.zeros(self.data.c, self.data.c, dtype=x.dtype)
              for i in range(0, self.y_true.shape[0], slice_size):
                  cm_slice = ((self.pred_class[i:i+slice_size]==x[:,None])
                              & (self.y_true[i:i+slice_size]==x[:,None,None])).sum(2)
                  torch.add(cm, cm_slice, out=cm)
          return to_np(cm)
docs: Confusion matrix as an `np.ndarray`.