✖
kerasで画像処理した時の InvalidArgumentErrorを対処した
jupyter labを使ってkerasで画像の2項分類をしていて、画像の前処理を行ったらエラーが発生してハマったのでメモします。
なお、画像の前処理を行う前は、このエラーは生じていませんでした。
エラーの内容はこちら。
InvalidArgumentError: logits and labels must be broadcastable: logits_size=[32,2] labels_size=[32,3]
[[node categorical_crossentropy/softmax_cross_entropy_with_logits (defined at <ipython-input-19-ee3ddb2cbf58>:6) ]] [Op:__inference_train_function_2293]
Function call stack:
train_function
Google翻訳で訳すと、「logitsとlabelはブロードキャスト可能である必要があります~」となります。
調べると、質問掲示板に、logits(ニューラルネットワークから出力される予測値)のサイズと、ラベルのサイズが合ってません、ということのようです。
logit の [32,2]と、ラベルの[32,3]、2つ目の数字、2と3の違いはどこからきているのかわからず、しばらくハマってしまいました。
分かれば何のことはなく、画像の前処理をjupyter lab上のコードで行ったため、Notebookの状態等を保存するために自動で作成される.pynb_checkpointsが作成されたため、フォルダが1つ増えていたことが原因でした。
.ipynb.check_points とは? 参考 teratail Python3 「.ipynb_checkpoints」の削除方法について
わかれば簡単なことですが、jupyter labからは、この.ipynb.check_pointsが見えないのです。
.ipynb_checkpoints を消せばエラーは解消されました。
以上になります、最後までお読みいただきありがとうございました。
Discussion