2017-06-14 20 views
0

私の問題は以下の通りである: なぜTensorFlowの除算に軸パラメータがないのですか?

Iは、列軸にベクトル行列を分割したいのですが、A[n,n]形状と[1,n]形状のvベクトルと行列である場合TensorFlowのみ行分割を提供

私のソリューションは、このでした:

tf.transpose(tf.div(tf.transpose(A), v)) 

私はこれを試してみましたが、それは動作しますしません:更新:それは作品を!

tf.div(A, tf.transpose(v)) 

私の質問は、この問題に対してより効率的な解決策が存在するかどうかです。

答えて

1

A/tf.transpose(v)の2番目の解決方法が有効です。 tf.div()には軸パラメータがありません。"要素のx/yで除算"です。したがって、両方のテンソルは同じ次元を持つ必要があります。

あなたのケースでは、tf.div supports broadcastingのため異なる次元で動作します。放送についての詳細はhereです。

また、効率的であるため、他のものを探す必要はありません。

+0

こんにちは!多くのあなたの答えをありがとう。私はすでに間違いを訂正しました。これは、 'v'を1Dテンソルを返すtf.reduce_sum(A、1)'と定義したために生成されたので、転置できませんでした。 'tf.reduce_sum(A、1、keep_dimens = True) 'を使うと、転置可能な2Dテンソルを返します。 – garciparedes