Hinweis zur Unterstützung von Python-Fehlern: "... unterstützt kein Argument 0 vom Typ float ..."
Ich bin neu in Python / maschinelles Lernen.
Hinterlassen Sie einen Hinweis zur Fehlerbehandlung für den Datentyp.
Die Situation, die aufgetreten ist
Beim Ausführen der folgenden Berechnung in einem Python-Programm ist ein Fehler aufgetreten.
import numpy as np
def sigmoid(x)
return (1 / (1 + np.exp(-x)))
hoge = sigmoid(3) #Hier ist ein Fehler aufgetreten
TypeError: loop of ufunc does not support argument 0 of type float which has no callable exp method
Ursache gefunden
- Es scheint, dass ein Fehler auftritt, wenn das der Berechnung der Numpy-Bibliothek zugewiesene Argument Daten vom Typ int enthält (siehe GitHub-URL in der Referenzspalte).
- Es ist ratsam, den Datentyp vor der Berechnung des Arguments in Float-Typ zu ändern.
Lösung
- Gelöst durch explizite Angabe, dass der x-Datentyp von Sigmoid (x) float ist.
def sigmoid(x)
x = x.float()
return (1 / (1 + np.exp(-x)))
hoge = sigmoid(3) # ->Ich konnte ohne Fehler richtig rechnen
Referenz
Ergänzung
- Beim Erstellen von Deep Learning trat dieser Fehler zum Zeitpunkt der Verwendung der Sigmoid-Funktion auf. In das Argument x wird ein Array eingegeben, aber es scheint, dass dieses Problem aufgetreten ist, weil jedes Element des Arrays vom Typ int war.
――Ich habe wieder erkannt, dass eines der Merkmale von Python darin besteht, dass es bis zu einem gewissen Grad funktioniert, ohne den Datentyp zu deklarieren, und ich dachte, es wäre besser, die Berechnung zu berücksichtigen, die den Datentyp angibt.
(das ist alles)