Evalml: Warnung des Textfeaturizers beim Evalml-Import

Erstellt am 3. Aug. 2020  ·  7Kommentare  ·  Quelle: alteryx/evalml

In jedem user_guide -Notebook erzeugt RTD eine Warnung, wo immer evalml zuerst importiert wird:

Beispiel

Die Ursache für dieses Problem ist, dass get_importable_subclasses jede Komponente initialisiert.

bug

Hilfreichster Kommentar

nlp-primitives 1.0 ist jetzt auf pypi verfügbar und Tensorflow ist keine erforderliche Abhängigkeit mehr

Alle 7 Kommentare

Repro

import evalml

Stack-Trace hier .

Tiefere Ursache

  • get_importable_subclasses versucht jede Komponente zu initialisieren
  • Dies wird zur Importzeit ausgeführt, da wir get_importable_subclasses , um die statischen Listen der Schätzer und Komponenten zu generieren
  • Der Textfeaturizer gibt derzeit eine Warnung aus, wenn dem Konstruktor keine Textspaltennamen bereitgestellt werden

Es scheint, als ob wir alles tun sollten, um Warnungen zum Zeitpunkt des Imports zu vermeiden.

Ideen für eine Lösung

  1. Aktualisieren Sie die von get_importable_subclasses generierten Listen so, dass sie zur Laufzeit generiert werden, nicht zur Importzeit. Dh in Komponenten-Utils
def _all_estimators():
    return get_importable_subclasses(Estimator, used_in_automl=False)
...
  1. Stellen Sie sicher, dass keine unserer Komponenten Warnungen auslöst, wenn sie mit Standardargumenten erstellt wurden. Aktualisieren Sie TextFeaturizer , um diese spezielle Warnung nicht auszulösen. Fügen Sie einen Komponententest hinzu, um zu überprüfen, ob keine Warnungen vorliegen.
  2. Aktualisieren Sie get_importable_subclasses , um alle Warnungen zu unterdrücken, die von der Komponenteninitialisierung kommen

Ich schlage vor, wir machen Punkt 1 und 2.

Beim Zusammenführen von #1022 wurde die Laufzeitwarnung entfernt. Ich sehe jedoch immer noch die folgende Warnung:

2020-08-11 12:17:34,559 featuretools - WARNING Featuretools failed to load plugin nlp_primitives from library nlp_primitives. For a full stack trace, set logging to debug.

@dsherry Ich werde die PR für die Punkte 1 und 2 aufstellen, wie Sie oben erwähnt haben, aber

Nach der Diskussion mit @rwedge scheint es zwei Lösungen für die obige Featuretools-Warnung zu geben:

  1. Verwenden Sie den Beta- Pip-Abhängigkeitsauflöser

  2. featuretools ist dabei, tensorflow optional zu machen und kann bis zum EOD 12.08.2020 durchgeführt werden

Ich schlage vor, wir warten auf die neue Featuretools-Version und bestätigen, ob die Warnung immer noch ein Problem darstellt.

Danke @jeremyliweishih ! Ich stimme zu, dass Option 2 hier am besten für den Umgang mit der Featuretools-Warnung geeignet ist.

Abgesehen davon arbeiten Sie meiner Meinung nach derzeit an den Optionen 1 und 2 aus

nlp-primitives 1.0 ist jetzt auf pypi verfügbar und Tensorflow ist keine erforderliche Abhängigkeit mehr

Bestätigt, dass die Warnung nicht mit der neuesten Version von nlp-primitives . Danke @rwedge! Sie können hier nachsehen.

Super, danke beiden!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen