code: def send(self, logger):
      Z = self._predict_pytorch(
          self.model, np.c_[self.xx.ravel(), self.yy.ravel()]
      )[:, 1]
      Z = Z.reshape(self.xx.shape)
      plt.contourf(self.xx, self.yy, Z, cmap=self.cm_bg, alpha=0.8)
      plt.scatter(
          self.X[:, 0], self.X[:, 1], c=self.Y, cmap=self.cm_points
      )
      if self.X_test is not None:
          plt.scatter(
              self.X_test[:, 0],
              self.X_test[:, 1],
              c=self.Y_test,
              cmap=self.cm_points,
              alpha=0.3,
          )
  
imports: import matplotlib.pyplot
  import numpy
  from matplotlib.colors import ListedColormap
label_desc: Use image node_id 4 for calling the Plot2d obj's underlying member method code with example usage: obj.send(logger) without return types