私は、正のイベントの最初の3つの時間インスタンスだけがデータセットに注釈され、15回のインスタンスに耐えることができる知識を持っています。この問題に対処するために、私はネットワークを訓練するときに注釈に続く15-3 = 12の時間インスタンスから損失値を無視することに決めました。Tensorflowでネットワークをトレーニングするときの特定の入力損失を無視する
私はPythonでTensorflowを使ってLSTMネットワークをトレーニングしています。私のトレーニングバッチにはsequence_len=240
があり、任意の繰り返しでシーケンスの任意の時点で発生する可能性があります。
基本的に、私のコストメトリックは、(AdamOptimizer
を使用して)である
loss = tf.nn.softmax_cross_entropy_with_logits(logits, self._targets)
cost = tf.reduce_mean(loss)
私は単にtf.reduce_mean()
に渡す前にloss
から望ましくない要素を削除する必要が考えています。私はnumpyの配列という目標の仮定の下で所望のマスクを行うためのアルゴリズムを開発:
v = targets[:, 0]
w = np.where(np.multiply(v[:-1] == 1, v[1:] < 1))[0]
m = np.ones(v.shape, dtype=bool)
for i in w:
i1 = i + 1
i2 = np.min((i + 13, len(v)))
ind = np.arange(i1, i2, dtype=np.int)
m[ind] = False
return m
このアルゴリズムは動作しますが、ないTensorflowスコープで!明らかに、入力はテンソルであり、numpy配列ではないからです。
私の質問この小さなアルゴリズム/マスクをTensorflowに移行するにはどうすればよいですか?
です。しかし、私は2日前に自分の答えを受け入れることができません。 –