使用预训练的 vgg16 模型的 CUDNN 错误
CUDNN error using pretrained vgg16 model
我正在尝试提取 VGG16 模型中最后一层的激活值。
为此,我在模型上使用了一个装饰器,如下所示。
当我将 cuda 张量传递给模型时,我得到一个 CUDNN_STATUS_INTERNAL_ERROR 和以下回溯。
有人知道我哪里错了吗?
追溯:
File "/media/data1/iftachg/frame_glimpses/parse_files_to_vgg.py", line 80, in get_activation
return model(image)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/media/data1/iftachg/frame_glimpses/partial_vgg.py", line 24, in forward
x = self.vgg16.features(x)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/container.py", line 64, in forward
input = module(input)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/conv.py", line 237, in forward
self.padding, self.dilation, self.groups)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/functional.py", line 39, in conv2d
return f(input, weight, bias)
RuntimeError: CUDNN_STATUS_INTERNAL_ERROR
Class:
class partial_vgg(nn.Module):
def __init__(self):
super(partial_vgg, self).__init__()
self.vgg16 = models.vgg16(pretrained=True).cuda()
for param in self.vgg16.parameters():
param.requires_grad = False
def forward(self, x):
x = self.vgg16.features(x)
x = x.view(x.size(0), -1)
for l in list(self.vgg16.classifier.children())[:-3]:
x = l(x)
return x
显然,cudnn 错误非常无用,代码本身也没有问题 - 这只是我尝试访问的 GPU 已经在使用中。
这看起来像是一个张量整形错误。如上所述,CUDNN 错误信息几乎没有用。要获得更直观的错误消息 运行 您在 CPU.
上的代码
net.cpu()
我正在尝试提取 VGG16 模型中最后一层的激活值。 为此,我在模型上使用了一个装饰器,如下所示。
当我将 cuda 张量传递给模型时,我得到一个 CUDNN_STATUS_INTERNAL_ERROR 和以下回溯。
有人知道我哪里错了吗?
追溯:
File "/media/data1/iftachg/frame_glimpses/parse_files_to_vgg.py", line 80, in get_activation
return model(image)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/media/data1/iftachg/frame_glimpses/partial_vgg.py", line 24, in forward
x = self.vgg16.features(x)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/container.py", line 64, in forward
input = module(input)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/modules/conv.py", line 237, in forward
self.padding, self.dilation, self.groups)
File "/media/data1/iftachg/miniconda2/lib/python2.7/site-packages/torch/nn/functional.py", line 39, in conv2d
return f(input, weight, bias)
RuntimeError: CUDNN_STATUS_INTERNAL_ERROR
Class:
class partial_vgg(nn.Module):
def __init__(self):
super(partial_vgg, self).__init__()
self.vgg16 = models.vgg16(pretrained=True).cuda()
for param in self.vgg16.parameters():
param.requires_grad = False
def forward(self, x):
x = self.vgg16.features(x)
x = x.view(x.size(0), -1)
for l in list(self.vgg16.classifier.children())[:-3]:
x = l(x)
return x
显然,cudnn 错误非常无用,代码本身也没有问题 - 这只是我尝试访问的 GPU 已经在使用中。
这看起来像是一个张量整形错误。如上所述,CUDNN 错误信息几乎没有用。要获得更直观的错误消息 运行 您在 CPU.
上的代码net.cpu()