[Python] Ich habe versucht, den Funktionsnamen durch den Funktionsnamen zu ersetzen

Fazit

Der zugewiesene wird in den zugewiesenen umgeschrieben. Nachfolgend sind die experimentellen Ergebnisse aufgeführt.

Colab


#Funktion definieren
def func(x, y):
  return x - y

func(1, 2) # -1


#Definiere func0
def func0():
  return None

func0() #Keine Leistung


#Funktionsname durch Funktionsnamen ersetzen
func0 = func

func(1, 3) # -2

func0(1, 3) # -2

Warum hast du das untersucht?

Aus irgendeinem Grund wurde die "call" -Methode "der" Modulklasse "von PyTorch so festgelegt, dass sie einmal mit" _call_impl "festgelegt und dann wie oben beschrieben" call "zugewiesen wurde. Bitte sagen Sie mir, warum PyTorch eine so problematische Beschreibung gemacht hat (ernsthaft). Unten finden Sie den Quellcode.

Python:torch.nn.modules.module


def _call_impl(self, *input, **kwargs):
        for hook in itertools.chain(
                _global_forward_pre_hooks.values(),
                self._forward_pre_hooks.values()):
            result = hook(self, input)
            if result is not None:
                if not isinstance(result, tuple):
                    result = (result,)
                input = result
        if torch._C._get_tracing_state():
            result = self._slow_forward(*input, **kwargs)
        else:
            result = self.forward(*input, **kwargs)
        for hook in itertools.chain(
                _global_forward_hooks.values(),
                self._forward_hooks.values()):
            hook_result = hook(self, input, result)
            if hook_result is not None:
                result = hook_result
        if (len(self._backward_hooks) > 0) or (len(_global_backward_hooks) > 0):
            var = result
            while not isinstance(var, torch.Tensor):
                if isinstance(var, dict):
                    var = next((v for v in var.values() if isinstance(v, torch.Tensor)))
                else:
                    var = var[0]
            grad_fn = var.grad_fn
            if grad_fn is not None:
                for hook in itertools.chain(
                        _global_backward_hooks.values(),
                        self._backward_hooks.values()):
                    wrapper = functools.partial(hook, self)
                    functools.update_wrapper(wrapper, hook)
                    grad_fn.register_hook(wrapper)
        return result

    __call__ : Callable[..., Any] = _call_impl

Recommended Posts

[Python] Ich habe versucht, den Funktionsnamen durch den Funktionsnamen zu ersetzen
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Ich habe zum ersten Mal versucht, Python zu programmieren.
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Ich habe Python zum ersten Mal mit Heroku ausprobiert
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Verschiedene Hinweise zur Verwendung von Python für Projekte
Ich habe zum ersten Mal Tensorflow ausprobiert
Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Ich habe das Python Tornado Testing Framework ausprobiert
Ich habe versucht, Kwant zu verwenden, ein Python-Modul für die Quantentransportberechnung
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe die Pivot-Table-Funktion von Pandas ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Ich habe Funktionssynthese und Curry mit Python versucht
[Python] Ich habe nach dem längsten Pokemon Shiritori gesucht
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Ich habe Mind Meld zum ersten Mal ausprobiert
Ich habe versucht, die inverse Gammafunktion in Python zu implementieren
Ich habe Python> Decorator ausprobiert
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Was ich zum ersten Mal in Python bekommen habe
Ich habe pipenv und asdf für die Python-Versionskontrolle ausprobiert
Ich habe das MNIST-Tutorial von tensorflow für Anfänger ausprobiert.
2017-04-11 Python> Ich habe Generator ausprobiert> Mir wurde Generatorausdruck / Generatorfunktion / next () beigebracht.
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
Python-Programm, das nach demselben Dateinamen sucht
[Python] Ich habe versucht, die Top 10 der Lidschatten grafisch darzustellen
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
AI Gaming Ich habe es zum ersten Mal versucht
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Über die Aufzählungsfunktion (Python)
Ich habe die Changefinder-Bibliothek ausprobiert!
Python #Funktion 2 für Super-Anfänger
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe die Python-Quelle heruntergeladen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, den für TensorFlow geschriebenen Code nach Theano zu portieren
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich war 2 Minuten lang süchtig nach Python-Debugger-PDF
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich habe das neueste automatische Testtool "Playwright for Python" berührt.