def plot_shapes(self, epoch, path=None, with_cuts=False): # plot network validation shapes with torch.no_grad(): self.network.eval() if not path: path = self.plots_dir indices = torch.tensor(np.random.choice(self.data.shape[0], self.points_batch, False)) pnts = self.data[indices, :3] plot_surface(with_points=True, points=pnts, decoder=self.network, path=path, epoch=epoch, shapename=self.expname, **self.conf.get_config('plot')) if with_cuts: plot_cuts(points=pnts, decoder=self.network, path=path, epoch=epoch, near_zero=False)
def plot_validation_shapes(self, epoch, with_cuts=False): # plot network validation shapes with torch.no_grad(): print('plot validation epoch: ', epoch) self.network.eval() pnts, normals, idx = next(iter(self.eval_dataloader)) pnts = utils.to_cuda(pnts) pnts = self.add_latent(pnts, idx) latent = self.lat_vecs[idx[0]] shapename = str.join('_', self.ds.get_info(idx)) plot_surface(with_points=True, points=pnts, decoder=self.network, latent=latent, path=self.plots_dir, epoch=epoch, shapename=shapename, **self.conf.get_config('plot')) if with_cuts: plot_cuts(points=pnts, decoder=self.network, latent=latent, path=self.plots_dir, epoch=epoch, near_zero=False)