Pyradiomics: [バグ]無効なパスでエクストラクタを初期化するときにサイレントエラーが発生する

作成日 2020年06月17日  ·  5コメント  ·  ソース: AIM-Harvard/pyradiomics

バグを説明する
無効なパスでエクストラクタを初期化するときにサイレントエラーが発生しました。

観察された行動:
存在しないパス(または~/を含むパス)でradiomics.featureextractor.RadiomicsFeatureExtractorを使用すると、yamlファイルは読み取られませんが、エクストラクターはデフォルトのオブジェクトを返します。

予想される行動:
スローされたエラー:ファイルが見つかりません。 現在、ユーザーは、出力が自分の設定を使用していると考えて、 execute (および公開?!)を続ける可能性があります。

PyRadiomics構成
適用できません。 有効なピラディオミクスyaml。

バージョン(次の情報を入力してください):

  • OS:CentOS 7
  • Pythonバージョン:3.7.6
  • PyRadiomicsバージョン:3.0

追加のコンテキスト
フレッシュインストールベースのanaconda環境で実行しています。

bug

全てのコメント5件

良い点ですが、これは非常に危険です。

--validateを有効にすると、この問題は特定されますが、パラメータファイルの検証はデフォルトでオフになっています。

@JoostJM常に検証するとは限らない理由はありますか? --validateフラグをyes / noに切り替えて、デフォルトでyesに設定してはどうでしょうか。

調査しますが、私が知る限り、cmd行を正常に実行するとパラメータファイルも検証されます。 --validateは通常のPyRadiomicsインターフェースを使用しますが、パラメーターファイルを検証し、すべての提供イメージパスとマスクパスが存在するかどうかを確認するだけです。

昨日見て、問題を確認できました。

これは確かに特徴抽出器の__init__関数のバグであり、文字列が存在しないファイルを指すパスである場合はサイレントに失敗し、デフォルト設定を適用します。 これを更新する場合。
検証中に、パラメータファイルのパスが無効な場合、エラーがログに記録されます。

有効なファイルパスを渡すと、パラメータファイルは両方の場合で検証されます。つまり、ピラディオミクス構成スキーマに準拠しているかどうかがチェックされます。 これは、辞書が特徴抽出器の初期化のための単一の位置引数として渡される場合にも当てはまります(「設定」タイプの構成パラメーターとして解釈される拡張辞書/キーワード引数ではありません)。

これは、辞書が特徴抽出器の初期化のための単一の位置引数として渡される場合にも当てはまります。

これに関して、あなたはどのような辞書を意味しますか? ドキュメントには次のように書かれているため:

タイプ1(画像タイプ)およびタイプ2(フィーチャクラス)のパラメーターは、パラメーターファイルを使用する場合の初期化時にのみ提供できます。

あなたが設定辞書を意味しない限り、私はと特徴抽出initalizeときmydictの代わりに**mydict 、それが仕事になっているの? 前者の場合の検証は、dictの設定に関係なく_常に_失敗するように見えるためです。

編集:気にしないで、関連するドキュメントを見つけました:

初期化時に、必要なすべての設定(キー「setting」、「imageType」、および/または「featureClass」を含むトップレベル)を含む[...]ディクショナリを提供できます。 これは、最初の位置引数として渡すことによって行われます。

このページは役に立ちましたか?
0 / 5 - 0 評価