【发布时间】:2018-05-28 17:06:26
【问题描述】:
我从带有N 整数条目的一维numpy 数组x(或张量流张量)开始。每个条目都小于或等于N。
我现在想创建一个形状为(N,N) 的张量Y(即一个NxN 矩阵),其中Y[i,j]=0 如果x[i]!=x[j] 和Y[i,j]=1 如果x[i]==x[j]。
以 numpy 为例:
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) 并且我期望输出 Y 的形状为 (B,N,N)。这些批次都是相互独立的。
【问题讨论】:
标签: python numpy tensorflow