Ich habe 3 verschiedene YOLOV8S -Modelle, die ich beurteilen möchte: < /p>
yolov8s mit dem normalen Modell geschult.Train () Befehl < /< / p>
< /li>
yolo8vs Modell, das mit einem gefrorenen Rückgrat trainiert ist < /p>
< /li>
Yolov8s Modell, das mit allen Schichten gefroren ist < /p>
< /li>
< /ol>
Ich verwende eine Rückruffunktion zum Einfrieren, um zu frieren die Gewichte, siehe unten: < /p>
def freeze_layer(trainer):
model = trainer.model
num_freeze = 10
print(f"Freezing {num_freeze} layers")
freeze = [f'model.{x}.' for x in range(num_freeze)] # layers to freeze
for k, v in model.named_parameters():
v.requires_grad = True # train all layers
if any(x in k for x in freeze):
print(f'freezing {k}')
v.requires_grad = False
print(f"{num_freeze} layers are freezed.")
if __name__ == "__main__":
model = YOLO(yolov8s.pt)
model.add_callback("on_train_start", freeze_layer)
model.train(
data="coco128.yaml",
epochs=300,
imgsz=640
)
< /code>
Ich möchte in der Lage sein, die Unterschiede in den Gewichten und Verzerrungen zwischen diesen 3 neuronalen Netzwerken zu bewerten. Ich möchte sehen, welche Neuronen nach dem Transferlernen tot sind und die Hauptunterschiede zwischen allen drei neuronalen Netzwerken bewerten. Gibt es Standardlösungen, mit denen Sie diese Art von Einblick in ein neuronales Netzwerk erhalten können? Je mehr Schichten Sie einfrieren, desto schlechtere Leistung bekommt. Und wenn ich das gesamte Netzwerk einfriere, ist die Leistung viel schlechter als die anderen 2 Instanzen. /p>
Jede Hilfe wird sehr geschätzt. < /p>
Vergleich der Gewichte und Verzerrungen mehrerer verschiedener YOLOV8S -Modelle, die durch Transferlernen trainiert wurd ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post