我得到了一个形状为 388x388x1 的 1 通道 numpy 数组,其值范围为 1-150,作为 ML 推理的输出。我需要使用最近邻插值将数组大小调整为 5000x4000x1。
目前我正在使用 PIL 调整大小。它可以工作,但为此必须导入 PIL 感觉过于复杂。
output = np.random.randint(150, size=(388, 388))
width, height = 4000, 5000
pilImage = Image.fromarray(pred.astype(np.uint8))
pilImageResized = pilImage.resize((width, height), Image.NEAREST)
resizedOutput = np.array(pilImageResized).astype(np.uint8)
Run Code Online (Sandbox Code Playgroud)
在 numpy 中是否有更简单的方法可以实现我想要的目标?(不使用cv2.resize
,scipy.interpolate
或PIL
)
这是我拥有的3个数据集的简化版本:
Set A = [1, 1, 2, 2, 1, 2, 2, 1]
Set B = [2, 2, 1, 2, 2, 1, 1, 3]
Set C = [8, 4, 4, 4, 4, 9, 8, 4]
Run Code Online (Sandbox Code Playgroud)
Haskell是否具有用于在数据集之间查找未指定模式的任何内置功能?我想在2个或更多数据集上运行我的程序,并让它报告哪些数据类似,在这种情况下,它们将是集合A和B.
algorithm haskell cluster-analysis pattern-matching nearest-neighbor
我在 5 维空间中有大约 10 K 点。我们可以假设点在空间 (0,0,0,0,0) 和 (100,100,100,100,100) 中随机分布。显然,整个数据集可以很容易地驻留在内存中。
我想知道 k 最近邻的哪种算法运行得更快,kd-tree 或 RTree。
虽然我对这两种算法有一些非常高级的想法,但我不确定哪个会运行得更快,以及为什么。如果有的话,我愿意探索其他算法,这些算法可以快速运行。如果可能,请说明为什么算法可以运行得更快。
列表不可散列。但是,我正在实现LSH,我正在寻找一个哈希函数,该函数将一个正整数列表(在[1,29.000]中)与k个存储桶相对应。列表数为D,其中D> k(我认为),D = 40.000,其中k未知(建议接受)。
示例(D = 4,k = 2):
118 | 27 | 1002 | 225
128 | 85 | 2000 | 8700
512 | 88 | 2500 | 10000
600 | 97 | 6500 | 24000
800 | 99 | 7024 | 25874
Run Code Online (Sandbox Code Playgroud)
第一列应作为哈希函数的输入,并返回存储桶的编号。
令我感到困惑的是,我们不是在寻找一个函数来散列一个数字,而是一个列,即一个正整数列表。
有什么想法吗?
我正在使用python如果这很重要
我试图在python中找到一个简单的方法,其中对于2dim掩码中的每个像素,我可以得到最近的非零邻居的索引.在Matlab中有一个bwdist,它正好返回.例如:如果我的输入是:
array [[0 0 0 0 0 0 0]
[0 1 0 0 0 0 0]
[0 0 0 0 0 1 0]
[0 0 0 0 0 0 0]]
Run Code Online (Sandbox Code Playgroud)
我的输出应该是:
array [[(1,1) (1,1) (1,1) (1,1) (2,5) (2,5) (2,5)]
[(1,1) (1,1) (1,1) (1,1) (2,5) (2,5) (2,5)]
[(1,1) (1,1) (1,1) (2,5) (2,5) (2,5) (2,5)]
[(1,1) (1,1) (1,1) (2,5) (2,5) (2,5) (2,5)]]
Run Code Online (Sandbox Code Playgroud)
该函数还可以返回绝对索引(对于1dim数组),如Matlab中的bwdist.
谢谢!
编辑:到目前为止,我已经尝试了一些与scipy相关的潜在解决方案,例如distance_transform_edt,但它只找到距离最近的像素而不是像素本身的距离.如果相关,我也会在我的代码中的其他地方使用OpenCV和VLfeat.
python opencv image-processing nearest-neighbor computer-vision
假设我们想找到两个值最接近10的项:
A = {'abc': 12.3, 'def': 17.3, 'dsfsf': 18, 'ppp': 3.2, "jlkljkjlk": 9.23}
Run Code Online (Sandbox Code Playgroud)
它适用于:
def nearest(D, centre, k=10):
return sorted([[d, D[d], abs(D[d] - centre)] for d in D], key=lambda e: e[2])[:k]
print(nearest(A, centre=10, k=2))
Run Code Online (Sandbox Code Playgroud)
[['jlkljkjlk',9.23,0.7699999999999996],['abc',12.3,2.3000000000000007]]
但是当dict具有更大的尺寸(数十万个项目)时,是否有Python内置方式来执行此操作和/或更优化的版本?
我有一些低细节图像,我正在渲染到屏幕上.我正在使用位图作为缓冲区.有没有办法在.net中重新调整位图的大小(使用"最近邻居")?
我正在使用VB.net,所以所有.net解决方案都可以接受.
我想了解 R kknn 包如何计算二元分类问题的权重、距离和类概率。在下面的 R 代码中,训练样本中有 3 个观察值,保留样本中有 1 个观察值。两个预测变量是身高和体重。使用欧几里德距离,训练样本中每个观测值的距离为:
sqrt((6-8)^2 + (4-5)^2) = 2.24
sqrt((6-3)^2 + (4-7)^2) = 4.24
sqrt((6-7)^2 + (4-3)^2) = 1.41。
当 k=3 且权重相等时,我得到的保留概率为:
(1/3 * 1) + (1/3 * 0) + (1/3 * 1) = 0.67。
当 k=2 且权重相等时,我得到的保留概率为:
(1/2 * 1) + (1/2 * 1) = 1.00。
我想了解 R kknn 包如何使用“三角形”、“高斯”和“逆”权重(以及更一般的)进行相同的计算。
library(kknn)
training <- data.frame(class = c(1, 0, 1), height = c(8, 3, 7), weight = c(5, 7, 3))
holdouts <- data.frame(class = 1, …
Run Code Online (Sandbox Code Playgroud) 所以我试图编码k最近邻算法.我的函数的输入是一组数据和一个要分类的样本.我只是想了解算法的工作原理.你能告诉我这个我想做的"伪代码"是否正确吗?
kNN (dataset, sample){
1. Go through each item in my dataset, and calculate the "distance" from that data item to my specific sample.
2. Out of those samples I pick the "k" ones that are most close to my sample, maybe in a premade array of "k" items?
}
Run Code Online (Sandbox Code Playgroud)
我感到困惑的部分是当我说"浏览我的数据集中的每个项目"时.我是否应该浏览数据集中的每个CLASS并找到k-最近邻居?然后从那里找到哪一个最接近我的样本,然后告诉我班级?
第2部分问题(ish),正在使用此算法,但没有样本.我如何计算数据集的"准确度"?
我真的在寻找广泛的单词答案,而不是具体细节,但任何有助于我理解的东西都表示赞赏.我在R中实现这一点
谢谢