問題タブ [loss-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
606 参照

python - テンソルフローでのマルチラベル分類の不均衡データの加重損失を実装する方法

不均衡なデータセットがあり、私のタスクはマルチラベル分類です

これは損失を最小限に抑えるための私のコードです:

今.私は自分の分類に使用したいのですがweighted-loss、正確にはどうすればよいですか? このリンクを使用して、に置き換えることsoftmaxはできますsigmoidか?

私はこのリンクを読みましたが、私のケースはバイナリ分類ではなく、tensorflow_orgではバイナリ分類でもあると思います。

0 投票する
2 に答える
1391 参照

tensorflow - カスタム損失関数: y_pred のデータに対して model.predict を実行します

画像のノイズを除去するためにネットワークをトレーニングしています。このために、CIFAR10 データセットを使用しています。損失が mse / classification_accuracy になるようにカスタム損失関数を生成しようとしています。私のネットワークが入力として 32x32 (ノイズあり) 画像を受け取り、32x32 (ノイズ除去済み) 画像を予測する場合、y_pred と Y_true は 32x32 画像の配列になると想定しています。したがって、私のカスタム損失関数は次のようになります。

classif_model は、CIFAR10 画像を 10 クラスのいずれかに分類する事前トレーニング済みモデルです。32x32 の画像の配列を受け取ります。

ただし、コードを実行すると、次のエラーが発生します。

トレースバック (最新の呼び出しが最後):

ファイル「myCode.py」の 94 行目

myModel.compile(optimizer='adadelta', loss=custom_loss()) ファイル "/home/rvidalma/anaconda2/envs/tensorUpdated/lib/python2.7/site-packages/keras/engine/training.py"、850 行目、コンパイル中

sample_weight, mask) ファイル "/home/rvidalma/anaconda2/envs/tensorUpdated/lib/python2.7/site-packages/keras/engine/training.py"、450 行目、加重

score_array = fn(y_true, y_pred) ファイル「myCode.py」、57 行目、joint_optimized_loss 内

preds = classif_model.predict(y_pred) ファイル "/home/rvidalma/anaconda2/envs/tensorUpdated/lib/python2.7/site-packages/keras/models.py"、913 行目、predict 内

return self.model.predict(x, batch_size=batch_size, verbose=verbose) ファイル "/home/rvidalma/anaconda2/envs/tensorUpdated/lib/python2.7/site-packages/keras/engine/training.py", 行1713年、予測

verbose=verbose, steps=steps) ファイル "/home/rvidalma/anaconda2/envs/tensorUpdated/lib/python2.7/site-packages/keras/engine/training.py"、1260 行目、_predict_loop 内

batches = _make_batches(num_samples, batch_size) ファイル "/home/rvidalma/anaconda2/envs/tensorUpdated/lib/python2.7/site-packages/keras/engine/training.py"、374 行目、_make_batches 内

num_batches = int(np.ceil(size / float(batch_size)))
AttributeError: 'Dimension' オブジェクトに属性 'ceil' がありません

y_trueこれは、とy_predが両方ともテンソルであり、トレーニング前は空classif_model.predictであり、配列を期待しているため失敗するという事実と関係があると思います。ただし、これを修正する方法がわかりません...

代わりにy_predusingの値を取得しようとK.get_value(y_pred)しましたが、次のエラーが発生します。

tensorflow.python.framework.errors_impl.InvalidArgumentError: 形状 [-1,32,32,3] には負の次元があります [[Node: input_1 = Placeholderdtype=DT_FLOAT, shape=[?,32,32,3], _device="/ジョブ:localhost/レプリカ:0/タスク:0/cpu:0"]]

0 投票する
0 に答える
544 参照

c++ - カフェでカスタム損失関数を正しく実装する方法は?

私はカフェの初心者で、カフェのカスタム損失関数を実装しています。しかし、実行テストでエラーが発生します。

私の損失関数はユークリッド損失と似ています。元のユークリッド損失方程式は以下のとおりです。

ここに画像の説明を入力

2D距離損失を実装したいと思います。ということで、以下のような式にしました。

ここに画像の説明を入力

するとruntestの結果はbackward functionでエラーになります。伝播の書き方がおかしいと思いました。しかし、何が悪いのかわかりません。ユークリッド損失を変更して損失関数を調整し、逆伝播で損失関数の勾配を書きました。エラーが発生する理由を知っていますか?

imgdist_loss_layer.cpp

imgdist_loss_layer.cu

imgdist_loss_layer.hpp (クラス名のみ変更)

test_imgdist_loss_layer.cpp

エラーログは以下です。