feat: remove deformation prediction, add selectable cardinality when sampling

This commit is contained in:
Laurent FAINSIN 2023-04-17 16:16:11 +02:00
parent b21d3a2fe2
commit c09ff5b20f
3 changed files with 5 additions and 11 deletions

View file

@ -10,7 +10,9 @@ nominal = pv.read(VTKFILE_NOMINAL)
# for each generated/sampled blade # for each generated/sampled blade
gen_files = Path("./output").glob("gen*.txt") gen_files = Path("./output").glob("gen*.txt")
for gen_file in gen_files: pc_files = Path("./output").glob("pc*.txt")
files = list(gen_files) + list(pc_files)
for gen_file in files:
# load numpy txt # load numpy txt
blade = np.loadtxt(gen_file) blade = np.loadtxt(gen_file)

View file

@ -2,7 +2,6 @@ import argparse
from pprint import pprint from pprint import pprint
import datasets import datasets
import pyvista as pv
import torch import torch
import torch.nn as nn import torch.nn as nn
import torch.utils.data import torch.utils.data
@ -502,8 +501,6 @@ def generate(model, opt):
test_dataloader = torch.utils.data.DataLoader( test_dataloader = torch.utils.data.DataLoader(
test_dataset, batch_size=opt.batch_size, shuffle=False, num_workers=int(opt.workers), drop_last=False test_dataset, batch_size=opt.batch_size, shuffle=False, num_workers=int(opt.workers), drop_last=False
) )
VTKFILE_NOMINAL = Path("~/data/stage-laurent-f/datasets/Rotor37/processed/nominal_blade_rotated.vtk")
nominal = pv.read(VTKFILE_NOMINAL)
with torch.no_grad(): with torch.no_grad():
samples = [] samples = []
@ -513,7 +510,8 @@ def generate(model, opt):
x = data["positions"].transpose(1, 2) x = data["positions"].transpose(1, 2)
# m, s = data["mean"].float(), data["std"].float() # m, s = data["mean"].float(), data["std"].float()
gen = model.gen_samples(x.shape, "cuda", clip_denoised=False).detach().cpu() shape = torch.Size((*x.shape[:-1], 35000))
gen = model.gen_samples(shape, "cuda", clip_denoised=False).detach().cpu()
gen = gen.transpose(1, 2).contiguous() gen = gen.transpose(1, 2).contiguous()
x = x.transpose(1, 2).contiguous() x = x.transpose(1, 2).contiguous()
@ -528,7 +526,6 @@ def generate(model, opt):
pc = blade pc = blade
# unnormalize # unnormalize
pc = pc + nominal.points
pc = pc * STD + MEAN pc = pc * STD + MEAN
print(f"Saving point cloud {idx}...") print(f"Saving point cloud {idx}...")

View file

@ -9,8 +9,6 @@ import torch.optim as optim
import torch.utils.data import torch.utils.data
from torch.distributions import Normal from torch.distributions import Normal
import pyvista as pv
# from dataset.shapenet_data_pc import ShapeNet15kPointClouds # from dataset.shapenet_data_pc import ShapeNet15kPointClouds
from model.pvcnn_generation import PVCNN2Base from model.pvcnn_generation import PVCNN2Base
from utils.file_utils import * from utils.file_utils import *
@ -652,8 +650,6 @@ def train(gpu, opt, output_dir):
""" data """ """ data """
train_dataset, _ = get_dataset(opt.dataroot, opt.npoints, opt.category) train_dataset, _ = get_dataset(opt.dataroot, opt.npoints, opt.category)
dataloader, _, train_sampler, _ = get_dataloader(opt, train_dataset, None) dataloader, _, train_sampler, _ = get_dataloader(opt, train_dataset, None)
VTKFILE_NOMINAL = Path("~/data/stage-laurent-f/datasets/Rotor37/processed/nominal_blade_rotated.vtk")
nominal = pv.read(VTKFILE_NOMINAL)
""" """
create networks create networks
@ -712,7 +708,6 @@ def train(gpu, opt, output_dir):
lr_scheduler.step(epoch) lr_scheduler.step(epoch)
for i, data in enumerate(dataloader): for i, data in enumerate(dataloader):
x = data["positions"] - nominal.points
x = data["positions"].transpose(1, 2) x = data["positions"].transpose(1, 2)
noises_batch = torch.randn_like(x) noises_batch = torch.randn_like(x)