Ich versuche eine einfache lineare Anpassung in scikit-learn auszuführen:
%Vor%Als Ergebnis bekomme ich:
%Vor%Weiß jemand, was der Grund für dieses Problem ist und wie das Problem gelöst werden kann?
P.S. Ich benutze die Version 0.16.1
von scikit-learn. Aber ich hatte dieses Problem auch mit einer älteren Version. Ich mache es unter Ubuntu.
HINZUGEFÜGT
Heute habe ich einen anderen Schätzer ( KernelRidge
) ausprobiert und habe dieselbe Fehlermeldung erhalten. Ich denke, dass ich vor einigen Monaten versucht habe, ein System von linearen Gleichungen mit scipy zu lösen, und ich hatte den gleichen Fehler. Ich muss hinzufügen, dass Beispiele, die ich versuchte, immer klein waren (also sollte die Größe des Problems nicht der Grund des Fehlers sein). Auf einem anderen Computer (bei der Arbeit) habe ich auch Ubunutu und benutze scikit-learn und ich habe dieses Problem nicht. Es sieht also so aus, als hätte ich ein Problem mit meinem Laptop zu Hause.
Gehen Sie hier ein bisschen aus, aber hat Ihr Laptop vielleicht eine AMD-CPU?
AMD hat die Unterstützung für 3DNow! Anweisungen von ihren neueren Prozessoren ( Quelle ) ), die ein Trawl von Ubuntu und Debian-Bugtrackern zeigt, dass viele Leute davon betroffen sind ( zB 1 <) / a>, 2 , 3 , 4 , 5 ).
Scikit-learn baut auf numpy auf, das wiederum Bibliotheken wie OpenBLAS oder Atlas verwendet, um Berechnungen auf der spezifischen Hardware Ihres Computers so effizient wie möglich durchzuführen.
Die Standardversionen, die für Debian und Ubuntu kompiliert werden, zielen jedoch auf ältere CPUs ab, da zukünftige Prozessoren in der Lage sein würden, Code für ältere Prozessoren auszuführen, aber das trifft im Allgemeinen nicht umgekehrt zu.
In diesem Fall wurden jedoch bei neueren AMD-CPUs die Anweisungen entfernt und Sie erhalten trotz gültigem Python-Code einen Illegal instruction
-Fehler, da die zugrunde liegenden Bibliotheken versuchen, die älteren Anweisungen zu verwenden, die nicht mehr vorhanden sind.
Wenn dies der Fall ist, dann besteht die Lösung darin, numpy und OpenBLAS für den eigentlichen Prozessor in Ihrem Laptop zu erstellen, anstelle des generischen, der von Debian geliefert wird. Obwohl dieses Beispiel für Ubuntu gilt, sollten die Anweisungen von Ссылка nur funktionieren Gut für Debian.
Dies ist die Liste aller Abhängigkeiten des Pakets "python-scikits-learn":
Wenn alle Abhängigkeiten erfüllt sind und Ihr Programm immer noch nicht funktioniert, sollten Sie diese Binärdateien deinstallieren und von der Quelle installieren. Eine manuelle Installation erkennt die korrekten Einstellungen für Ihr System.
Sie können auch versuchen, das Paket neu zu installieren:
%Vor%Mit freundlichen Grüßen
Tags und Links python coredump scikit-learn