整数エントリを持つ1D numpy配列x
(またはテンソルフローテンソル)から始めます。すべてのエントリはN
より小さいか等しいです。 今度は(N,N)
のテンソルY
(すなわちNxN行列)を作成したいと考えています。Y[i,j]=0
x[i]!=x[j]
とY[i,j]=1
x[i]==x[j]
の場合はY[i,j]=0
となります。 numpyのでテンソルフローのベクトルから2進テンソルを作成する
例:
import numpy as np
x=np.array([1,2,1,2,3,4,2])
Y=np.zeros((x.shape[0],x.shape[0]))
for i in range(x.shape[0]):
for j in range(x.shape[0]):
if x[i]==x[j]:
Y[i,j]=1
array([[ 1., 0., 1., 0., 0., 0., 0.],
[ 0., 1., 0., 1., 0., 0., 1.],
[ 1., 0., 1., 0., 0., 0., 0.],
[ 0., 1., 0., 1., 0., 0., 1.],
[ 0., 0., 0., 0., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 1., 0.],
[ 0., 1., 0., 1., 0., 0., 1.]])
出力はどのようにして、純粋なtensorflowコードで効率的に同じ機能を作成するのですか?
そして:私は、余分なバッチ寸法を持っている場合、入力x
は(B,N)
を形成していると私は形状(B,N,N)
とouputをY
として期待するよう何。バッチはすべて互いに独立しています。二つの異なる形状に