上下文:我正在尝试修改此 Facebook 的 ResNet 特征提取器脚本以对图像进行分类并打印 ImageNet 类标签。假设我在火炬中有模型:
local model = torch.load('resnet-101.t7')
local output = model:forward(img:cuda()):squeeze(1)
这给了我每个班级的分数。我想获得前 5 个类别及其概率。我认为要将分数转换为概率,我应该首先使用 SoftMax 层。
所以我这样做:
local model = torch.load('resnet-101.t7')
local softMaxLayer = cudnn.LogSoftMax()
model:add(softMaxLayer)
local output = model:forward(img:cuda()):squeeze(1)
但是当我运行它时,我得到:
/SpatialSoftMax.lua:38: 'resizeAs' 的参数 #1 错误(预期为torch.DoubleTensor,得到了torch.CudaTensor)
该模型对我来说看起来不错:(仅显示最后一层)
...
(9): cudnn.SpatialAveragePooling(7,7,1,1)
(10): nn.View(2048)
(11): nn.Linear(2048 -> 1000)
(12): cudnn.LogSoftMax
}
关于什么可能是错的任何想法?