Как сохранить значения характеристик всех пакетных данных из предварительно обученных сетей факелов?
Теперь я использую библиотеку fb torch из github fb torch resnet
Я впервые использую факел и луа, поэтому я столкнулся с некоторыми проблемами.
Моя цель состоит в том, чтобы сохранить вектор объектов определенного слоя (последнее среднее объединение resnet) в один файл с классом входного изображения. Все входные изображения от cifar-10 дБ.
Формат файла, который я хочу получить, как ниже
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.
- Как я могу получить доступ только к одному конкретному слою из сети в факеле через lua? (последний средний пул)
- Как я могу получить доступ к значениям слоя и индекса результатов классификации?
- Как можно прочитать все изображения из файла cifar-10 db (пакет t7)?
Извините за слишком много вопросов. Но я чувствую себя тяжело, используя факел из-за большого количества тем в сообществе и публикации факела. Пожалуйста, поймите меня.
1 ответ
Как я могу получить доступ только к одному конкретному слою из сети в факеле через lua? (последний средний пул)
Чтобы получить доступ к каждому слою, вам просто нужно загрузить модель и получить ее, используя целое число. Если вы делаете 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.load
, (используется до загрузки модели).
cifar_10 = torch.load("path_to_cifar-10.t7")
После загрузки вы можете настроить обучение и тестирование в виде таблиц или функций. Опять же, напечатайте таблицу и визуализируйте, какие значения вам нужны.
Надеюсь это поможет!