How to convert chainer.Variable to PyTorch Tensor?

34 views Asked by At

When try to run a piece of code from neural_renderer, it report the following error.

The code is based on Cuda 9.2, and I have to upgrade to Cuda 11.1 in order to support latest GPU,

chainer upgrade from version 4.5 to 7.8

cupy upgrade from version 4.2 to 8.1

How to fix this error?

self.faces = chainer.Variable(chainer.cuda.to_gpu(faces, self.cuda_device))
self.vertices = chainer.Variable(chainer.cuda.to_gpu(vertices, self.cuda_device))

self.masks, self.face_index = self.renderer.render_silhouettes(self.vertices, self.faces)
def render_silhouettes(self, vertices, faces, K=None, R=None, t=None, dist_coeffs=None, orig_size=None):

        # fill back
        if self.fill_back:
            faces = torch.cat((faces, faces[:, :, list(reversed(range(faces.shape[-1])))]), dim=1)
File "/media/e/HPBTT/nnutils/nmr.py", line 52, in forward_mask
    self.masks, self.face_index = self.renderer.render_silhouettes(self.vertices, self.faces)
  File "/home/hx/hp/lib/python3.6/site-packages/neural_renderer/renderer.py", line 86, in render_silhouettes
    faces = torch.cat((faces, faces[:, :, list(reversed(range(faces.shape[-1])))]), dim=1)
TypeError: expected Tensor as element 0 in argument 0, but got Variable
0

There are 0 answers