Glinserer, A. (2021). Autopruning with intel distiller and evaluation on a Jetson Xavier AGX [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2021.90301
Machine Learning; Embedded Systeme; Deep Learning; Neurale Netze; Bilderkennung
de
Machine Learning; Embedded System; Deep Learning; Neural Networks; Image Recognition
en
Abstract:
Convolutional neural networks build the basis for state-of-the-art computer vision tasks, such as image classification or object detection. Tasks such as collision detection, e.g., cars or drones, or the classification of wildlife or mushrooms to identify harmful or poisonous vegetation require these networks to run on smaller, more power efficient devices. Such edge devices have much less computational power than servers with high-power GPUs and often run only on batteries. The desire is to achieve real-time performance while maintaining a minimum power consumption to enable execution on edge devices without any uplink connection.Pruning is a valuable method to compress neural networks by reducing the required computations and thus improve performance. This work presents an automatic pruning workflow using a measurement-based method to determine which portions of the network contribute how much to the total accuracy. This accuracy contribution can then be used to prioritise parts of the network for pruning, i.e., only portions of the network are pruned, which contribute little to the total accuracy. This approach is interesting, especially for convolutional neural networks.Furthermore, to increase the prunability within networks containing residual blocks, this work evaluates zero-padding as a helpful complement to existing pruning methods. Residual blocks are a basic building block within modern neural networks. With zero-padding added to the pruning, we enable the automatic pruning process to choose layers for pruning, which would otherwise not be possible or only possible with removing additional filters that might significantly impact the total accuracy. This would result in a significant loss regarding the accuracy and, therefore, also the prunability. Zero-padding adds the removed channels back into the original output feature map in a manner such that the shapes of the feature maps remain identical, but computations are still saved.Using this method, a speedup of up to 21% on CPU-based platforms and 5-6% for GPU-based executions of a MobileNetV2 was achieved. For evaluation, a Jetson Xavier AGX is chosen because it offers three different execution modes and thus is a solid baseline for further argumentation regarding the applicability. The pruned network is comparable to the original network with an applied depth multiplier. However, the required additional retraining time is much smaller than training a MobileNetV2 with a depth multiplier from scratch. Furthermore, the effect of pruning with regards to power consumption highly depends on the network architecture. Therefore, the resulting power ranges from actual savings to an even higher consumption depending on the executed network.
en
Pruning ist eine wertvolle Methode, um neuronale Netze durch Reduzierung der erforderlichen Berechnungen zu komprimieren und so die Leistung zu verbessern. In dieser Arbeit wird ein automatischer Pruning-Workflow vorgestellt, der auf einem messbasierten Ansatz gründet, um zu bestimmen, welche Teile des Netzes wie viel zur Gesamtgenauigkeit beitragen. Dieser Genauigkeitsbeitrag kann dann verwendet werden, um Teile des Netzes für das Pruning zu priorisieren, d.h. es werden nur Teile des Netzes beschnitten, die wenig zur Gesamtgenauigkeit beitragen. Dieser Ansatz ist vor allem für CNNs interessant. CNNs bilden die Grundlage für bildbezogene Aufgaben, wie z. B. Klassifikation oder Objekterkennung. Da diese eine hohe mathematische Komplexität aufweisen, ist es wünschenswert, diese auch auf weniger leistungsfähiger Hardware nutzbar zu machen. Durch Aufgaben, wie Hinderniserkennung in Hinblick auf autonome Autos oder Drohnen, beziehungsweise der Klassifizierung von Wildtieren oder Pilzen zur Erkennung von schädlicher oder giftiger Vegetation, entsteht ein Bedarf, diese Netzwerke auf kleinere Geräte zu bringen, welche auch nur mit Batterien laufen. Diese Geräte haben meist nur eine geringe Rechenleistung im Vergleich zu Servern mit Hochleistungs-GPUs. Der Wunsch ist es, Echtzeitgeschwindigkeit zu erreichen und dabei ein Minimum an Stromverbrauch zu erzielen, um die Ausführung auf Geräten zu ermöglichen, welche sich nahe am sogenannten edge befinden oder überhaupt keine Möglichkeit für eine Netzwerkanbindung haben. Um die Prunebarkeit innerhalb von Netzen mit Residual-Blöcken zu erhöhen, wird in dieser Arbeit Zero-Padding als hilfreiche Ergänzung zu bestehenden Pruning-Methoden evaluiert. Residual-Blöcke bilden einen Basisbaustein für neurale Netze. Durch das Hinzufügen von Zero-Padding zum Pruning wird der automatische Pruning-Prozess in die Lage versetzt, Layer für das Pruning auszuwählen, welche sonst nicht oder nur mit dem Entfernen zusätzlicher Filter möglich wäre. Ohne die zusätzlich entfernten Filter kann eine höhere Ursprungsgenauigkeit beibehalten werden. Dies vermeidet einen erheblichen Verlust hinsichtlich der Genauigkeit und damit auch der Möglichkeiten zum prunen führen. Das Zero-Padding fügt die entfernten Kanäle als Nulltensoren wieder in den Ausgangstensor ein, und zwar so, dass die Dimensionen des Ausgangstensors identisch bleiben, aber dennoch Berechnungen eingespart werden.Mit dieser Methode erreicht man eine Beschleunigung von bis zu 21% auf CPU-basierten Plattformen und 5-6% für GPU-basierte Ausführungen eines MobileNetV2. Für die Evaluierung wurde ein Jetson Xavier AGX gewählt, da dieser drei verschiedene Ausführungsmodi bietet und somit eine solide Basis für die weitere Bewertung hinsichtlich der Anwendbarkeit darstellt. Das geprunte Netz ist vergleichbar mit dem ursprünglichen Netz mit angewandtem Depthmultiplier. Die zusätzlich benötigte Lernzeit ist jedoch deutlich geringer, als das Training eines MobileNetV2 mit Depthmultiplier von Grund auf. Darüber hinaus hängt der Effekt des Prunings hinsichtlich der Leistungsaufnahme stark von der Netzarchitektur ab. Daher reicht die resultierende Leistung von Einsparungen bis hin zu einem erhöhten Verbrauch in Abhängigkeit vom ausgeführten Netzwerk.
de
Additional information:
Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers