0

现在我正在使用来自 github fb torch resnet的 fb torch 库

这是我第一次使用torch和lua,所以我遇到了一些问题。

我的目标是将特定层的特征向量(resnet 的最后一个平均池化)保存到具有输入图像类的一个文件中。所有输入图像均来自 cifar-10 db。

我想得到的文件格式如下

image1.txt := class index of image and feature vector of image 1 of cifar-10
image2.txt := class index of image and feature vector of image 2 of cifar-10
 // and so on  through all images of cifar-10

现在我已经看到了 github extract-features.lua的一些示例代码

因为这是我第一次接触lua,所以我很难理解这段代码并修改为我想要的方式。而且我不希望我的数据保存为 t7 文件格式。

  1. 如何通过 lua 从网络中的 Torch 中仅访问一个特定层?(最后平均池化)
  2. 如何访问图层和分类结果索引的值?
  3. 如何从 cifar-10 db 文件(t7 批处理)中读取所有图像?

抱歉问了太多问题。但是由于社区线程池和火炬的发布,我觉得使用火炬很难。请理解我。

4

1 回答 1

1

如何通过 lua 从网络中的 Torch 中仅访问一个特定层?(最后平均池化)

要访问每一层,您只需加载模型并使用整数获取它。如果你这样做print model,你将能够看到最后一个平均池在哪个位置。

model = torch.load(path_to_model):cuda()
avg_pooling_layer = model:get(position_of_the_avg_pooling_layer)

如何访问图层和分类结果索引的值?

我不太明白你的意思。如果您想查看特定层的输出或权重。(按照上面的代码)您需要从图层表中获取这些元素。再次,看看哪些是可能使用的元素print avg_pooling_layer

weights = avg_pooling_layer.weight -- get the weights of the layer
output = avg_pooling_layer.output  -- get the output of the layer

如何从 cifar-10 db 文件(t7 批处理)中读取所有图像?

要从 t7 文件中读取图像,请使用 torch 函数torch.load。(之前用于加载模型)。

cifar_10 = torch.load("path_to_cifar-10.t7")

加载后,您可以在子表或函数中拥有训练和测试集。同样,打印表格并可视化哪些值是您需要获取的值。

希望这可以帮助!

于 2017-02-21T09:00:29.993 回答