У меня есть обученная сеть, состоящая из следующих слоев: {conv1, pool1, conv2, pool2, conv3, pool3, conv4, pool4, fc5, fc6, output} , которые fc означает полностью связанные слои, а conv - сверточные слои.Функция экстракции на нейронных сетях с использованием Theano
Мне нужно выполнить извлечение объектов для некоторых изображений. Я использую Лазанью и Теано. Мне нужно сохранить функции из каждого слоя для последующего анализа. Я новичок на этом языке, поэтому я попытался найти примеры кода или некоторые учебники по этому вопросу (с помощью theano/lasagne). Однако я не понял, что мне делать сам.
Я был бы признателен, если кто-то может помочь мне в этом, чтобы реализовать извлечение функции.
Спасибо заранее
Edit: Я последовал за замечания г-н/г-жа gntoni, вот мой код:
feat_all = []
for layer in layer_list:
feat = np.zeros_like(lasagne.layers.get_output([self.acnn.cnn[layer]], inputs = img, deterministic=True))
feat[:] = lasagne.layers.get_output([self.acnn.cnn[layer]], inputs = img, deterministic=True)
feat_all.append(feat)
=
Для моего случая, мне нужно сохранить функции от каждого слоя. Я хочу, чтобы написать функцию, как тот, который мы имеем в Caffe:
self.net.blobs['data'].data[0] = img
self.net.forward(end=layer_list[-1])
feat_all = []
for layer in layer_list:
feat = np.zeros_like(self.net.blobs[layer].data[0])
feat[:] = self.net.blobs[layer].data[0]
feat_all.append(feat)
Однако моя обучен модель написана с лазанием и Феан Так что я должен реализовать это в формате лазание.
После написания кода выше (в лазаньи), я получаю пустой вывод. Интересно, почему и как я могу это исправить.
Спасибо заранее
Большое вам спасибо. Можете ли вы также помочь мне с частью реализации? Поскольку я не могу найти, какую функцию я должен использовать для этого случая. – kadaj13
У вас должна быть некоторая функция, например 'lasagne.layers.get_output()' получение значений из последнего слоя. Просто создайте новую функцию, чтобы получить значения из слоя pool4. – gntoni
Большое вам спасибо за помощь. Я попробую. – kadaj13