CUDA エラー: デバイス側アサートがトリガーされ、<class 'torch.Tensor'> の問題と解決策の再現を取得できません

考えられる理由は、ラベルが補間関数 order = 3 を使用していることです。

lb = scipy.ndimage.zoom(lb, (288 / 192, 288 / 192, 1), 出力 = なし, オーダー = 3, モード = '定数')

その結果、ラベルの値は 0 未満、またはカテゴリの数 - 1 より大きい値になります (たとえば、背景をカウントすると 0 1 2 となり、ラベルの値は 2 より大きく 0 未満になります)。損失を計算するときにエラーが発生します

この種の問題が発生した場合は、データセットをクリックしてください。

ラベルを補間したかどうかを確認し、補間に次数 3 を使用します。

存在する場合は、次数を 0 に変更してみることもできます。次数を 0 に変更しても、補間は整数のままであり、境界を越えることはありません。

通常はこれが行われます

そのほか

一時的な解決策、

カテゴリの数 - 1 より大きいラベルの値と 0 未満の値を切り捨てることでも問題を解決できる可能性があります。

たとえば、私の分類は 5 (プラス背景) であるため、4 より大きい値と 0 未満の値は切り捨てられます。

# lb[lb > 4] = 4
# lb[lb < 0] = 0

おすすめ

転載: blog.csdn.net/Wjeana/article/details/129876926