Wie die Anzahl der Parameter in einem Modell, z. LENET für Mnist oder ConvNet für Image-Modell usw. Gibt es in Caffe eine bestimmte Funktion, die die Anzahl der Parameter in einem Modell zurückgibt oder speichert? GrüßeAnzahl der Parameter in Caffe LENET- oder Imagine-Modellen
7
A
Antwort
1
Ich kann eine explizite Möglichkeit bieten, dies über die Matlab-Schnittstelle zu tun (stellen Sie sicher, dass das Matcaffe zuerst installiert ist). Grundsätzlich extrahieren Sie eine Gruppe von Parametern von jeder Netzwerkschicht und zählen sie. in 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
Am Ende 'Zähler' enthält die Anzahl von Parametern.
2
Hier ist ein Python-Schnipsel die Anzahl der Parameter in einem Caffe Modell zu berechnen:
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
Verwandte Themen
- 1. Caffe Lenet: Unterschied zwischen `solver.step (1)` und `solver.net.forward()`
- 2. caffe.io.Transformer für LeNet-Klassifizierung verwenden
- 3. Anzahl der übergebenen Parameter?
- 4. Was ist der Meta Parameter "weight_decay" in Caffe?
- 5. Datensatz für LeNet erstellen?
- 6. Caffe LeNet Fehlerprüfung fehlgeschlagen: shape [i]> = 0 (-1 vs. 0)
- 7. Begrenzung der Anzahl generischer Parameter in .NET?
- 8. Anzahl der Schleifenrekursionen als Parameter
- 9. Maximale Anzahl der Parameter in Java-Methodendeklaration
- 10. Template-Template-Parameter mit der falschen Anzahl der Template-Parameter
- 11. mod_rewrite Anzahl der Parameter/Rückreferenzierungen Begrenzung
- 12. Wie wird die Inferenzzeit von der durchschnittlichen Durchlaufzeit in Caffe geschätzt? mein ConvNet in caffe
- 13. Wie finde ich die Größe der Pooling-Layer in Caffe?
- 14. Ermittlung der Anzahl der Parameter in einem Lambda
- 15. std :: make_shared Anzahl der Parameter im Konstruktor
- 16. Die Anzahl der Parameter im Gaußschen Mischmodell
- 17. Anzahl der Zeichen in NSString oder NSMutableString?
- 18. Caffe Pruning Connections
- 19. Count Anzahl der Parameter in C Variable Argument Methode Aufruf
- 20. Methode, die akzeptiert n Anzahl der Parameter in C#
- 21. Euklidische Verlustschicht in Caffe
- 22. Was ist Batch-Größe in Caffe oder Convnets
- 23. CNN-Funktionen mit Caffe extrahieren und mit SVM trainieren
- 24. Caffe Autoencoder
- 25. Überprüfen Sie die Anzahl der Parameter in Python-Funktion übergeben
- 26. Verschiedene Eingangskanäle in Caffe verschmelzen?
- 27. Take (Parameter), wenn die Anzahl der Sammlungen kleiner ist als der Parameter
- 28. Caffe Installation
- 29. mysqli_stmt_bind_param(): Die Anzahl der Variablen stimmt nicht mit der Anzahl der Parameter in der vorbereiteten Anweisung in Bind überein.
- 30. Speichern, Laden und die Vorhersage mit Theano CNN (Lenet)
Blick auf net.params, nachdem Sie die CNN in das Variable Netz geladen haben. Es enthält die Parameter (Gewichte und Verzerrungen) für jede Schicht. – pir
Kennen Sie den Befehl mit Terminal für Caffe. Ich habe jedoch den Bauernhof gefunden. d. h. Filter x Kanäle x Kernel_Width x Kernel_Height + Bias. Dadurch erhalten Sie Parameter auf einer Ebene. ähnlich für andere. Jedoch brauchte ich irgendeinen Befehl in caffe unter Verwendung von Terminal, z. In Matlab haben wir numel (net.params) können Sie sagen. – khan
Es gibt eine offene [feature request] (https://github.com/BVLC/caffe/issues/2507) bei Caffes Github für diese Funktionalität. – Shai