如何从验证的火炬网络中节省所有批处理数据的特征值



现在我使用的是github fb fb torch resnet

的fb火炬库

这是我第一次使用火炬和LUA,所以我遇到一些问题。

我的目标是将特定层的特征向量(Resnet的最后一个AVG池池)保存到带有输入图像类的一个文件中。所有输入图像均来自CIFAR-10 dB。

我想获得的文件格式就像belows

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提取物features.lua

的一些示例代码

因为这是我第一次参加LUA,所以我很难理解此代码并修改自己想要的方式。我不希望我的数据保存到T7文件格式中。

  1. 如何通过LUA从火炬的网络中访问一个特定层?(最后一个平均池)
  2. 我如何访问层和分类结果索引的值?
  3. 如何从CIFAR-10 DB文件(T7批次)中读取所有图像?

抱歉,太多问题。但是,由于社区线程和火炬的发布,我会因为使用火炬而感到努力。请理解我。

如何通过LUA从火炬的网络中访问一个特定层?(最后一个平均池)

要访问每一层,您只需要加载模型并使用整数编号将其获取即可。如果您做print model,您将能够在最后一个平均池的位置看到。

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

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

我不太明白您的意思。如果您想查看特定层的输出或权重。(遵循上面的代码)您需要从 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.load。(在加载模型之前使用)。

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

一旦加载,您就可以将培训和测试设置在子宫或功能中。同样,打印表并可视化哪些值是您需要获得的值。

希望这会有所帮助!

最新更新