Ich habe über den Quellcode des Pytorch gelesen und finde es seltsam, dass er die convolution_backwardFunktion nicht implementiert . Die einzige convolution_backward_overrideableFunktion ist, dass sie direkt einen Fehler auslöst und nicht hierher fallen soll.
Also habe ich mich auf die CuDNN / MKLDNN-Implementierung bezogen, beide implementieren Funktionen wie cudnn_convolution_backward.
Ich habe folgende Frage:
Was ist die native Implementierung von CUDA / CPU? Ich kann so etwas finden thnn_conv2d_backward_out, aber ich konnte nicht finden, wo das heißt.
Warum hat PyTorch die convolution_backwardFunktion nicht in Convolution.cpp eingefügt ? Es bietet eine _convolution_double_backward()Funktion. Aber dies ist das Doppelte rückwärts, es ist der Gradient des Gradienten. Warum bieten sie keine einzige Rückwärtsfunktion?
Wie soll ich Code schreiben, wenn ich die native Funktion convolution / convolution_backward für meinen reinen CPU / Cuda-Tensor aufrufen möchte? Oder wo könnte ich mich beziehen? Ich konnte kein Beispiel dafür finden.
Vielen Dank !
1- Die Implementierung kann je nach verwendetem Backend unterschiedlich sein. Möglicherweise wird die CUDA-Faltungsimplementierung aus einer Bibliothek, die CPU-Faltungsimplementierung aus einer anderen Bibliothek oder die benutzerdefinierte Implementierung verwendet. Siehe hier: pytorch - Wo ist "conv1d" implementiert? .
2- Ich bin mir über die aktuelle Version nicht sicher, aber Single Backward wurde über Autograd berechnet, weshalb es keine explizit andere Funktion dafür gab. Ich kenne die zugrunde liegenden Details von Autograd nicht, aber Sie können dies überprüfenhttps://github.com/pytorch/pytorch/blob/master/torch/csrc/autograd/autograd.cpp. Diese double_backward-Funktion ist nur verfügbar, wenn Sie Ableitungen höherer Ordnung benötigen.
3- Wenn Sie dies in C tun möchten, zeigt Ihnen die von Ihnen verknüpfte Datei (convolution.cpp), wie dies zu tun ist (Funktion unter :: Tensor _convolution ...). Wenn Sie die Funktion überprüfen, sehen Sie, dass nur die zu verwendende Implementierung (params.use_something ...) überprüft und verwendet wird. Wenn Sie dies in Python tun möchten, sollten Sie mit der Ablaufverfolgung von conv bis zum Aufruf dieser Datei convolution.cpp beginnen.
Ich habe mir eine Ergänzung zu @ unluts Beitrag ausgedacht.
Die native Funktion könnte als thnn_con2d_backward gefunden werden .
Die Rückfaltung wird nicht über Autograd berechnet, sondern es muss eine Funktion conv_backward vorhanden sein, die in derivatives.yaml aufgezeichnet werden muss. Wenn Sie eine bestimmte Rückwärtsfunktion suchen möchten, ist die Verwendung dieser Datei ein guter Anfang.
Wenn Sie zu diesem Code die Funktion thnn_backward direkt aufrufen möchten, müssen Sie finput und fgrad_input explizit erstellen. Dies sind zwei leere Tensorangebote als Puffer.
at::Tensor finput = at::empty({0},input.options());
at::Tensor fgrad_input = at::empty({0}, input.options());
auto kernel_size = weight.sizes().slice(2);
auto &&result = at::thnn_conv2d_backward(grad_output, input, weight,kernel_size , stride, padding,
finput, fgrad_input, output_mask);
Jana Duggar äußerte sich offen zu ihrer Suche nach Liebe. Hier ist alles, was sie zu diesem Thema und ihrem fünfjährigen Zeitfenster für die Ehe gesagt hat.
„Outlander“-Star Sam Heughan verriet kürzlich, was er vom Set mitnehmen wird, um an Jamie Fraser zu erinnern, die Rolle, die ihn zum Star gemacht hat.
„She Loves You“ wurde in einer Stunde geschrieben, an einem Tag aufgenommen und war der Song der Beatles mit einem ihrer besten Auftritte in ihrer Karriere.
Dolly Parton und ihre Oma Bessie hatten eine besondere Beziehung. Oma Parton war sehr krank, aber das hielt Dolly nicht davon ab, ihr einen Streich zu spielen.
Man könnte meinen, Eiche oder Hickory seien robust, aber wenn es um die härtesten Hölzer der Welt geht, kommen sie nicht einmal annähernd heran.
Der Ozean ist voller Schönheit, birgt aber auch einige der furchterregendsten Meeresbewohner unseres Planeten. Viele dieser Tiere lauern tief unter der Meeresoberfläche, in der dunklen, von hohem Druck geprägten Tiefsee.
Wenn du gegen feindliche Monster kämpfst oder dich für PvP-Situationen ausrüstest, kann dir das Wissen um die besten Schwertverzauberungen in Minecraft einen entscheidenden Vorteil verschaffen. Durch das Verzaubern von Schwertern verursachst du mehr Schaden, erhältst mehr Beute von Monstern und verlängerst die Haltbarkeit deines Schwertes.
Wenn von sozialistischen Ländern die Rede ist, stellt man sich oft die vollständige Kontrolle durch den Staat und das Fehlen von Privateigentum vor. In der Praxis unterscheiden sich sozialistische Wirtschaftssysteme jedoch stark.
„Children“ hinterlässt einen Cameo-Auftritt eines großen Namens und einige verheerende Neuigkeiten
Dieser RAV4 soll sich in ausgezeichnetem Zustand befinden und ist bereit für eine Partie Reise nach Jerusalem.
Auf Drohnenaufnahmen ist zu sehen, dass die Feuerwehrleute offenbar Mühe haben, den Brand zu löschen.
„Eyes of Wakanda“ ist direkt mit dem MCU verknüpft und bietet Updates zu „X-Men ’97“, „What If...“, „Daredevil“ und mehr.
Ava Gardner war mit Mickey Rooney und Frank Sintra verheiratet und datete mehrere andere Hollywoodstars. Hier ist ein Rückblick auf Ava Gardners Dating-Geschichte.
John Cleese heiratete seine Frau Jennifer Wade im Jahr 2012. Hier erfahren Sie alles Wissenswerte über John Cleeses Frau Jennifer Wade.
Iman und David Bowie bekamen im Jahr 2000 ihre Tochter Alexandria „Lexi“ Jones. Hier erfahren Sie alles Wissenswerte über ihre Tochter Alexandria „Lexi“ Jones.
Walker Scobell ist ein US-amerikanischer Schauspieler. Hier finden Sie alles, was Sie über den Star aus „Percy Jackson und die Olympier“ wissen müssen.
Es fällt mir plötzlich auf, wie so oft. Es ist wieder die Mitte. <Nein, nicht die im Pazifik, du Schlappschwanz, die auf dem Jahrmarkt> Jede Schlagzeile laut…..
Im Jahr 2022, mit der Veröffentlichung von GPT-3, scheinen Schreibfähigkeiten an Bedeutung zu verlieren. Mit KI können auch Menschen mit schlechten Schreibkenntnissen hochwertiges Personal hervorbringen.
In der heutigen schnelllebigen und wettbewerbsintensiven Welt spielt die Karriere eine wichtige Rolle für das persönliche Wachstum, die finanzielle Stabilität und die allgemeine Lebenszufriedenheit. Viele Menschen befinden sich jedoch in einem unerbittlichen Kreislauf aus Stagnation und Unzufriedenheit, der ihr Berufsleben allmählich verkümmert.
Letzte Woche fiel mir eine Pressemitteilung auf, die über PressGazette (eine britische Nachrichten-Website für Medien) verschickt wurde. In dem Artikel wurde angekündigt, dass Acast, das skandinavische Podcast-Hosting- und Werbeunternehmen, ein Konsortium der „wahrscheinlich einflussreichsten“ Verlage im Podcasting leiten werde.