我想创建一个张量流函数,它复制我的三维张量中每个二维矩阵的欧氏距离变换.
我有一个三维张量,其中第三轴代表一个热门编码的特征.我想为每个要素维创建一个矩阵,其中每个单元格中的值等于到最近要素的距离.
例:
input = [[1 0 0]
[0 1 0]
[0 0 1],
[0 1 0]
[0 0 0]
[1 0 0]]
output = [[0 1 1.41]
[1 0 1 ]
[1.41 1 0 ],
[1 0 1 ]
[1 1 1.41]
[0 1 2 ]]
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是在python中实现的.该方法遍历要素维度的每个单元格,在单元格周围创建环并搜索环是否包含要素.然后,它计算单元格到每个要素条目的距离,并采用最小值.如果环不包含其中包含特征的单元格,则搜索环会变宽.
码:
import numpy as np
import math
def distance_matrix():
feature_1 = np.eye(5)
feature_2 = np.array([[0, 1, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, …Run Code Online (Sandbox Code Playgroud)