现在我使用的是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文件格式中。
- 如何通过LUA从火炬的网络中访问一个特定层?(最后一个平均池)
- 我如何访问层和分类结果索引的值?
- 如何从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")
一旦加载,您就可以将培训和测试设置在子宫或功能中。同样,打印表并可视化哪些值是您需要获得的值。
希望这会有所帮助!