問題タブ [gradienttape]
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.
tensorflow - Tensorflow でのインスタンス依存/条件付き損失の実装
特定のバッチ内で発生するインスタンスに応じて、条件付き損失 (2 つの異なる損失) を計算できるようにしたいと考えています。これにより、私が考えていることを実装する柔軟性が得られると信じているため、カスタムのtrain_stepをゼロから作成しています。ただし、これを実装する方法を理解するのに少し行き詰まっています。
各トレーニング ステップで、バッチ内の各インスタンスの真のラベルと予測されたラベルの間の分類 (カテゴリカル クロスエントロピー) 損失を計算しています。これは標準です。さらに、バッチ内のすべてのインスタンスに対して計算されるのではなく、インスタンスのサブセットのみに対して計算される正則化損失を含めています。これが、条件付き損失または 2 つの損失目標について言及する理由です。
トレーニングの前に、トレーニング インスタンス ID のリストを指定しました (各トレーニング インスタンスには一意の ID が与えられます)。これらのインスタンスのいずれかが現在のバッチにある場合は常に、これらの特定のインスタンスのみを使用して正則化項を計算します。これらのインスタンスのいずれも発生しない場合は、標準の分類損失のみを計算します。正則化項の目的は、特定のトレーニング インスタンス (インスタンス ID で指定) と一連の追加インスタンス (ここでは単一のインスタンスのみを仮定できます) の間の機能の類似性を促進することです (距離の 2 乗で測定)。
これが私がこれまでに持っているものです。これは実用的な実装ではありませんが、うまくいけば、私が説明したことと達成したいことを示しています。モデルは画像テンソルを取り込み、特徴表現 (正則化項の場合) と予測ベクトル (分類損失の場合) の両方を出力します。私が使用しているアプローチを無視して、代替案を提案してください。たとえば、代わりにカスタム損失関数を作成するか、使用tf.cond
すると役立つ場合があります。注: tensorflow 2/ を使用していtf.GradientTape()
ます。