Beschreibe den Fehler
Stiller Fehler beim Initialisieren des Extraktors mit einem ungültigen Pfad.
Beobachtetes Verhalten:
Wenn Sie radiomics.featureextractor.RadiomicsFeatureExtractor
mit einem nicht vorhandenen Pfad (oder einem Pfad, der ~/
) verwenden, wird die yaml-Datei nicht gelesen, aber der Extraktor gibt ein Standardobjekt zurück.
Erwartetes Verhalten:
Ein Fehler wurde ausgelöst: Datei nicht gefunden. Derzeit arbeiten Benutzer möglicherweise weiterhin mit execute
(und veröffentlichen?!), Wenn sie glauben, dass die Ausgabe ihre Einstellungen verwendet.
PyRadiomics-Konfiguration
Unzutreffend. Alle gültigen Pyradiomics Yaml.
Version (bitte vervollständigen Sie die folgenden Informationen):
Zusätzlicher Kontext
Wird in einer neu installierten Basis-Anaconda-Umgebung ausgeführt.
Guter Punkt, das kann sehr gefährlich sein.
Wenn Sie --validate
aktivieren, wird dieses Problem erkannt, aber die Validierung der Parameterdatei ist standardmäßig deaktiviert.
@JoostJM Gibt es einen Grund, nicht immer zu validieren? Wie wäre es, wenn wir das Flag --validate
auf yes / no setzen und es standardmäßig auf yes setzen?
Ich werde nachforschen, aber soweit ich weiß, ist die Parameterdatei auch validiert, wenn die cmd-Zeile normal ausgeführt wird. --validate
verwendet die reguläre PyRadiomics-Schnittstelle, überprüft jedoch nur die Parameterdatei und prüft, ob alle bereitgestellten Bild- und Maskenpfade vorhanden sind.
Ich habe gestern nachgesehen und konnte das Problem bestätigen.
Es ist in der Tat ein Fehler in der __init__
-Funktion des Feature-Extraktors, der stillschweigend fehlschlägt, wenn eine Zeichenfolge auf eine nicht vorhandene Datei verweist und dann die Standardeinstellungen anwendet. If wird dies aktualisieren.
Während der Validierung wird ein Fehler protokolliert, wenn der Pfad der Parameterdatei ungültig ist.
Bei der Übergabe eines gültigen Dateipfads wird die Parameterdatei in beiden Fällen überprüft, dh überprüft, ob sie dem Pyradiomics-Konfigurationsschema entspricht. Dies gilt auch, wenn ein Wörterbuch als einzelnes Positionsargument für die Initialisierung des Feature-Extraktors übergeben wird (keine erweiterten Wörterbuch- / Schlüsselwortargumente, die als Konfigurationsparameter vom Typ "Einstellungen" interpretiert werden).
Dies gilt auch, wenn ein Wörterbuch als einzelnes Positionsargument für die Initialisierung des Feature-Extraktors übergeben wird
Was für ein Wörterbuch meinst du damit? Weil die Dokumentation sagt:
Parameter vom Typ 1 (Bildtyp) und 2 (Feature-Class) können nur bei der Initialisierung bei Verwendung der Parameterdatei bereitgestellt werden
Es sei denn, Sie meinen ein Einstellungsdiktat. Wenn ich also den Feature-Extraktor mit mydict
anstelle von **mydict
initialisiere, soll er funktionieren? Weil die Validierung im ersteren Fall immer fehlzuschlagen scheint, unabhängig von den Diktateinstellungen.
Edit: Nevermind, fand die relevante Dokumentation:
Bei der Initialisierung kann ein [...] Wörterbuch bereitgestellt werden, das alle erforderlichen Einstellungen enthält (oberste Ebene mit den Tasten "Einstellung", "Bildtyp" und / oder "Feature-Klasse"). Dies geschieht, indem es als erstes Positionsargument übergeben wird.