정수 엔트리로 1D numpy 배열 x
(또는 tensorflow 텐서)부터 시작합니다. 모든 항목은 N
보다 작거나 같습니다. 이제는 (N,N)
모양의 텐서 Y
(즉, NxN 행렬)을 만들고 싶습니다. Y[i,j]=0
인 경우 x[i]!=x[j]
및 Y[i,j]=1
인 경우 x[i]==x[j]
입니다. NumPy와와tensorflow에서 벡터로부터 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
출력 내가 순수 tensorflow 코드에 효율적으로 동일한 기능을 만들려면 어떻게해야합니까
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.]])
?
그리고 : 나는, 추가 배치 차원이있는 경우 입력 x
가 (B,N)
을 형성하고 난 모양 (B,N,N)
과 OUPUT Y
으로 기대 있도록 무엇. 일괄 처리는 모두 서로 독립적입니다.