Как рассчитать количество параметров в модели, например. LENET для mnist или ConvNet для модели imagent и т. Д. Есть ли какая-либо конкретная функция в кофе, которая возвращает или сохраняет количество параметров в модели. приветствуетколичество параметров в моделях Caffe LENET или Imagenet
7
A
ответ
1
Я могу предложить явный способ сделать это через интерфейс Matlab (сначала убедитесь, что матафф установлен). В основном вы извлекаете набор параметров из каждого сетевого уровня и считаете их. В Matlab:
% load the network
net_model = <path to your *deploy.prototxt file>
net_weights = <path to your *.caffemodel file>
phase = 'test';
test_net = caffe.Net(net_model, net_weights, phase);
% get the list of layers
layers_list = test_net.layer_names;
% for those layers which have parameters, count them
counter = 0;
for j = 1:length(layers_list),
if ~isempty(test_net.layers(layers_list{j}).params)
feat = test_net.layers(layers_list{j}).params(1).get_data();
counter = counter + numel(feat)
end
end
В конце концов, 'Счетчик' содержит ряд параметров.
2
Вот питон фрагмент кода для вычисления количества параметров в модели Caffe:
import caffe
caffe.set_mode_cpu()
import numpy as np
from numpy import prod, sum
from pprint import pprint
def print_net_parameters (deploy_file):
print "Net: " + deploy_file
net = caffe.Net(deploy_file, caffe.TEST)
print "Layer-wise parameters: "
pprint([(k, v[0].data.shape) for k, v in net.params.items()])
print "Total number of parameters: " + str(sum([prod(v[0].data.shape) for k, v in net.params.items()]))
deploy_file = "/home/ubuntu/deploy.prototxt"
print_net_parameters(deploy_file)
# Sample output:
# Net: /home/ubuntu/deploy.prototxt
# Layer-wise parameters:
#[('conv1', (96, 3, 11, 11)),
# ('conv2', (256, 48, 5, 5)),
# ('conv3', (384, 256, 3, 3)),
# ('conv4', (384, 192, 3, 3)),
# ('conv5', (256, 192, 3, 3)),
# ('fc6', (4096, 9216)),
# ('fc7', (4096, 4096)),
# ('fc8', (819, 4096))]
# Total number of parameters: 60213280
https://gist.github.com/kaushikpavani/a6a32bd87fdfe5529f0e908ed743f779
Смежные вопросы
- 1. Как изменить модель Imagenet Caffe?
- 2. Поддерживает ли Caffe "ImageNet" изображение .jpg или .bmp?
- 3. Классификация imagenet - caffe/caffe.hpp: Нет такого файла или каталога
- 4. Caffe передачи подмножество параметров
- 5. использовать caffe для обучения Lenet с данными CSV
- 6. Caffe LeNet: Разница между `solver.step (1)` и `solver.net.forward()`
- 7. Как тренироваться и тестировать LeNet, используя caffe, используя python
- 8. Ошибка в LeNet на примере MNIST
- 9. Классифицировать рукописные цифры с изображений с помощью Caffe
- 10. caffe.io.Transformer для использования в классификации LeNet
- 11. Как предварительно обработать изображение перед подачей в LeNet CNN в Caffe?
- 12. Получение и редактирование параметров градиента в Caffe
- 13. Изменение параметров решателя в Caffe через pycaffe
- 14. Реализовать INotifyPropertyChanged на моделях или моделях?
- 15. Возможно ли в Caffe рассчитать количество операций, происходящих в архитектуре?
- 16. Подсчитайте количество нейронов и весов в растворе Caffe
- 17. Подсчитать количество вхождений определенных вариантов в моделях
- 18. htmlspecialchars в контроллерах или моделях?
- 19. Создание LMDB для Caffe
- 20. Обрезка/масштабирование изображений ImageNet
- 21. Количество параметров в MCMC
- 22. Как тренировать модель caffe?
- 23. Ошибка проверки подлинности Caffe LeNet: shape [i]> = 0 (-1 против 0)
- 24. Caffe HDF5 не изучает
- 25. Простая демонстрация C++ для Caffe?
- 26. Масштабный слой в Caffe
- 27. Как использовать Caffe или TensorFlow в универсальном приложении Windows?
- 28. Имя и количество параметров
- 29. Python или Matlab для Caffe?
- 30. Создать набор данных для LeNet?
Посмотрите на net.params после того как вы загружены на CNN в переменную сети. Он содержит параметры (веса и смещения) для каждого слоя. – pir
Знаете ли вы команду, использующую терминал для caffe. Однако я нашел фермулу. то есть фильтры x каналов x Kernel_Width x Kernel_Height + Bias's. Это даст вам параметры на одном уровне. аналогично для других. Однако мне нужна была какая-либо команда в кафе, использующая терминал, например. в matlab мы имеем numel (net.params), вы можете сказать. – khan
Для этой функции есть открытый [запрос функции] (https://github.com/BVLC/caffe/issues/2507) в github caffe's. – Shai