| require 'torch' | |
| require 'nn' | |
| require 'Projection' | |
| num_params = 14 | |
| min_param_values = {30, -70, -70, -15, 0, 1/450, -1, -1, -1, -1, -1, -1, -60, -80} | |
| max_param_values = {50, 100, 100, 100, 150, 1/120, 1, 1, 1, 1, 1, 1, 60, 80} | |
| weight_params = torch.ones(num_params) | |
| weight_params[6] = 10 | |
| batch_size = 3 | |
| x = torch.load('/data/vision/billf/jwu-recog/pose/data/chair/data/outputs_latent_test_001.torch') | |
| x = x[{{1, batch_size}}] | |
| Bs = torch.Tensor({{{-1,-2,1},{1,-2,1},{1,-2,-1},{-1,-2,-1},{-1,0,1},{1,0,1},{1,0,-1},{-1,0,-1},{-1,2,-1},{1,2,-1}}, | |
| {{0,-1,0},{0,-1,0},{0,-1,0},{0,-1,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}, | |
| {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,1,0},{0,1,0}}, | |
| {{-1,0,0},{1,0,0},{1,0,0},{-1,0,0},{-1,0,0},{1,0,0},{1,0,0},{-1,0,0},{-1,0,0},{1,0,0}}, | |
| {{-1,0,1},{1,0,1},{1,0,-1},{-1,0,-1},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}}):permute(1, 3, 2) | |
| a = nn.Projection(Bs, min_param_values, max_param_values, weight_params, 5) | |
| print('x') | |
| print(x) | |
| y = a:forward(x) | |
| print('y') | |
| print(y) | |
| z = a:backward(x, torch.ones(batch_size, 10, 2)) | |
| print('z') | |
| print(z) | |