2017-04-13 8 views
0

xとyが2つのN-dimensionalテンソルであるとしましょう。両方が同じ次元で、最初の次元はサイズS(バッチサイズ)です。2つの別々のバッチでのテンソル間のトグル

x[i]はのi番目の (N-1)-dimensionalスライスを指し
z[i] = b[i] ? x[i] : y[i] for i from 0 to (S-1) 

:私は、z、のように定義N次元テンソルを生成したいのは、

S.

bは大きさの、ブール値の 1-dimensionalテンソルであるとしましょうバツ。

これを行う最も簡単な方法は何ですか?私はtf.condはうまくいくと思っていましたが、スカラー値の述語しか受け付けません。ありがとうございました!

答えて

0

tf.whereは、この種のブロードキャストをサポートします。条件付き実行のバッチバージョン(一方または両方のブランチの計算に費用がかかる)が必要な場合は、also possibleです。

+0

tf.whereは完璧に見えます、ありがとう! 2つ以上の方法で分岐するこの関数の変種があるかどうか知りますか? –

+0

間に分岐したいテンソルを 'tf.stack'し、それらの間で' tf.gather'を選択することができます。 –

+0

私はそれが動作するかどうかを確認します、あなたの助けてくれてありがとう! –

関連する問題