我有以下图表
:
如您所见,有两个自然集群.我想找出一种方法将这些聚类分成两个图.
当然,关键的一步是计算正确的分裂.我想插入两个节点n1和n2,将它们连接起来e(n1,n2),然后移动它们,最大限度地减少边缘交叉的数量(当然,将所有节点/边缘精确地固定在它们所在的位置).
谁能在这里提供任何帮助?我不认为graphviz有任何能让我这样做的东西.
在我的C OpenCL代码中,我clSetKernelArg用来创建'可变大小' __local内存以供在我的内核中使用,这在OpenCL本身并不可用.看我的例子:
clSetKernelArg(clKernel, ArgCounter++, sizeof(cl_mem), (void *)&d_B);
...
clSetKernelArg(clKernel, ArgCounter++, sizeof(float)*block_size*block_size, NULL);
...
kernel="
matrixMul(__global float* C,
...
__local float* A_temp,
...
)"
{...
Run Code Online (Sandbox Code Playgroud)
我的问题是现在,如何在pyopencl中做同样的事情?
我查看了pyopencl附带的示例,但我唯一能找到的是使用模板的方法,这对我来说就像我所理解的那样是一种矫枉过正.见例子.
kernel = """
__kernel void matrixMul(__global float* C,...){
...
__local float A_temp[ %(mem_size) ];
...
}
Run Code Online (Sandbox Code Playgroud)
您有什么推荐的吗?
我有一个像这样的 numpy 数组:
[ 1024 303 392 4847 7628 6303 8898 10546 11290
12489 19262 18710 20735 24553 24577 28010 31608 32196
32500 32809 37077 37647 44153 46045 47562 48642 50134
50030 52700 52628 51720 53844 56640 56856 57945 58639
57997 63326 64145 65734 67148 68086 68779 68697 70132
71014 72830 77288 77502 77537 78042 79623 81151 81584
81426 84030 86879 86171 89771 88367 90440 92640 93369
93818 97085 98787 98867 100471 101473 101788 102828 104558
105144 107242 107970 109785 …Run Code Online (Sandbox Code Playgroud) python ×3
arrays ×1
graph-theory ×1
graphviz ×1
numpy ×1
opencl ×1
pygraphviz ×1
pyopencl ×1
scipy ×1