問題タブ [loss]
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.
lua - トーチのペアワイズ類似性基準
torch7 で新しい基準を実装したいと考えています。
基本的に、正規化された類似度の実数値を持つサンプルのペアがあります (それを 'd' としましょう)。
既存の Criterion の中で、私が持つことができる最も近いものは、次の損失を提供するCosineEmbeddingCriterionです。
明らかにこれはペア用に設計されていますが、これは分類問題用です。
私の問題では、次の損失関数を提供する Criterion を実装したいと考えています。
loss(x1, y2, d) = | d - cos(x1,x2) |
残念ながら、この質問とは異なり、既存の基準を単純に組み合わせてそれを行うことができないとは思えません。
だから私はtorch7 ソース ファイルから新しいモジュールを作成するという骨の折れる方法に進む予定です。
私の質問は次のとおりです。
- 私は他の簡単な解決策を持っていないことは正しいですか?
- torch7 で独自の Criterion を実装する場合:
- 基準やガイドを書くためのスケルトンはありますか?
- 有効であることを確認するにはどうすればよいですか? (単体テストの方法は?)
(私にとって正しいと思われる基準を書くのは非常に簡単に思えますが、実際にはそうではありません)
手がかりを事前にありがとうございます!!
nan - 私のテンソルフローCNNの最初のラウンドステップで損失がNANになります
テンソルフロー CNN の最初のラウンド ステップで損失が NAN になります。
1. ネットワーク:
3 つの隠れ層 (2 つの畳み込み層 + 1 つの隠れたフルコネクト層) + 読み出し層。
2. 3 つの隠れ層:
a) 重み:
W = tf.Variable(tf.truncated_normal(wt,stddev=0.1,name='wights' ))
b) バイアス:
b = tf.Variable( tf.fill([W.get_shape().as_list()[-1] ],0.9),name = 'biases' )
c) アクティベーション:
ReLu
d) ドロップアウト:
0.6
**dropout が 0.0 の場合でも、loss は nan になります
3.レイヤーの読み出し:
softmax
4: 損失関数:
tf.reduce_mean(-tf.reduce_sum(_lables * tf.log(_logist), reduction_indices=[1]))
5.オプティマイザ:
tf.train.AdamOptimizer
learning_rate = 0.0005
**learning_rate = 0 の場合でも、損失は nan になります
deep-learning - 損失増加微調整カフェ
~278,000 の画像を持つ 280 クラスの分類問題があります。モデル GoogleNet (caffe の bvlc_googlenet) に基づいて、quick_solver.txt を使用して微調整を行います。私のソルバーは次のとおりです。
トレーニング中はバッチ サイズ 32 を使用し、テスト バッチ 32 も使用します。名前を変更して、3 つの層 loss1/classifier loss2/classifier と loss3/classifier を最初から再学習しました。グローバル学習率を 0.001 に設定しました。つまり、ゼロからのトレーニングで使用した値の 10 分の 1 です。ただし、最後の 3 つのレイヤーは学習率 0.01 のままです。
最初の反復のログファイル:
100,000 回目の反復まで、私のネットは 50% のトップ 1 精度と ~80% のトップ 5 精度を取得します。
119,00回目の反復では、すべてがまだ正常です
その直後、損失は突然上昇します。つまり、最初の損失 (8 から 9) に等しくなります。
そして、突然の変化が起こってから長い間、ネットはその損失を減らすことができません
実験を 2 回再実行すると、反復 119040 番目で正確に繰り返されます。詳細については、LMDB データベースの作成時にデータ シャッフルを行いました。そして、このデータベースを使用して VGG-16 (ステップ学習率ポリシー、最大 80k 反復、ステップあたり 20k 反復) を問題なくトレーニングしました。VGG を使用すると、55% のトップ 1 精度が得られます。
私と同じような問題に遭遇した人はいますか?
regression - CNN を使用したバウンディング ボックス回帰の損失関数
CNN のバウンディング ボックス回帰の損失関数を理解しようとしています。現在、私は Lasagne と Theano を使用しています。これにより、損失式を非常に簡単に記述できます。多くの情報源がさまざまな方法を提案しています。
境界ボックスの座標は、[left, top, right, bottom]
( を使用してT.matrix('targets', dtype=theano.config.floatX)
) 順序で正規化された座標として表されます。
これまでに次の機能を試しました。ただし、それらにはすべて欠点があります。
ユニオン上の交差点
メジャーを使用しIntersection over Union
て、2 つのバウンディング ボックスの位置合わせと重なり具合を特定するようにアドバイスされました。ただし、ボックスが重なっておらず、交差が 0 の場合に問題が発生します。その場合、バウンディング ボックスがどれだけ離れているかに関係なく、商全体が 0 になります。私はそれを次のように実装しました:
二乗直径差
重なり合っていない境界ボックスの誤差測定を作成するために、境界ボックスの直径の二乗差を計算しようとしました。うまくいくようですが、これを行うにはもっと良い方法があるとほぼ確信しています。私はそれを次のように実装しました:
ユークリッド損失
最も単純な関数はEuclidean Loss
、バウンディング ボックス パラメーターの二乗の差の平方根を計算する です。ただし、これは重なっているバウンディング ボックスの領域を考慮せず、左、右、上、下のパラメーターの違いのみを考慮します。私はそれを次のように実装しました:
このユースケースのバウンディングボックス回帰に最適な損失関数、またはここで何か間違ったことをしている場合のスポットについて、誰かが私を案内してくれませんか。通常、実際に使用される損失関数はどれですか?
android - Android 画面が入力の読み取りを停止する
まず、これは私が使用した他の Android デバイスでは発生したことがありません (これまでに複数のデバイスが試行およびテストされています)。今、私は1年ちょっと前から取り組んでいるアプリを持っています.AutomatedId(アプリストアで)と呼ばれていて、かなり長い間私の会社でうまく機能しています. 最近、アプリに互換性を追加するためのデバイス (特に UHF タグの読み取り用) を提供されましたが、それは問題ではありません。アプリを開くたびに問題が発生し、画面が入力の読み取りを完全に停止し、ボタンが機能しなくなります。画面入力を表示するために開発者向けオプションをオンにしましたが、疑わしいように、アプリを開いた後に完全に停止し、入力を読み取れません。クリックが機能しない、ボタンが機能しない、キーボードが開かない、デバイスのハードウェア ボタンが機能しなくなる。
これはここからの S98 です: http://www.wepoy.com/product_view_18.html