Hi, I’m trying to visualize the graph for the following model:
class Model(torch.nn.Module):
def __init__(self, ):
super().__init__()
self.decoder = Decoder(c_dim=0, dropout_prob=0.2, weight_norm=True, norm_layers=[0,1,2,3,4,5,6,7])
def forward(self, p):
# p.requires_grad_(True)
# sdf = self.decoder(p)
# normals = autograd.grad(sdf, p, torch.ones_like(sdf), create_graph=True, retain_graph=True)[0]
normals = torch.autograd.functional.jacobian(self.decoder, p, create_graph=True, strict=False)
return torch.mean((torch.norm(normals, dim=-1) - 1)**2)
I try to use tensorboard to visualize as follows:
writer = SummaryWriter(os.path.join(out_dir))
# create model
model = Model()
# data (1,1,3) point
data = torch.rand((1,1,3))
writer.add_graph(model, data, verbose=True)
However I keep getting the following error
RuntimeError: Cannot insert a Tensor that requires grad as a constant. Consider making it a parameter or input, or detaching the gradient
Tensor:
(1,.,.) =
0.6029 1.4451 2.1129
[ torch.FloatTensor{1,1,3} ]
BTW: the code runs if I don’t attempt to add the graph.