テンソルをバックエンドとしてkerasのu-net実装を実行しています。実験では、私は60エポックを実行します。損失プロットは次のように表示されますが、プログラムが収束したと仮定できますか?その損失は大きく変化しないと私に見える。損失プロットとそれが収束するかどうかを判断するための基準
これは、オプティマイザの定義とトレーニングプロセスの起動に関連するコードです。
optimizer = SGD(lr=0.001, momentum=0.9, decay=0.0005, nesterov=False)
autoencoder.compile(loss=customized_loss, optimizer=optimizer, metrics= [customized_dice])
nb_epoch = 60
batch_size = 32
model.fit(imgs_train, imgs_mask_train, batch_size=batch_size, nb_epoch=nb_epoch, verbose=1,callbacks=[model_checkpoint])
このトレーニングまたは検証の損失ですか?検証の場合、これは収束に近似していないように見えますが、もっと長く実行する必要があります。また、より高い学習率を試してください –
こんにちは、私はそれがトレーニングの損失だと思います。オプティマイザの定義とトレーニングの開始に関連するコードが含まれていました。コメントがあれば教えてください。ありがとう。 – user297850
私たちはあなたを助けるためにこれがどの損失であるかを知る必要があります。あなたのモデルのコスト損失です。それはあなたが収束または正確さではなく、信頼を特定するのに役立ちます。あなたは過度のフィッティングをしているかもしれませんが、この制限には、コストではなくトレーニングと検証の損失をプロットする必要があります。 – Feras