我一直试图在我继承的cython程序中追踪段错误的来源。我已经在python3下实现了gdb,执行gdb python3
然后执行run my_file.py
并得到了这个:
Program received signal SIGSEGV, Segmentation fault.
__pyx_f_7sklearn_5utils_25graph_shortest_path_leftmost_sibling (__pyx_v_node=<optimised out>)
at /home/my_name/.pyxbld/temp.linux-x86_64-3.4/pyrex/sklearn/utils/graph_shortest_path_strat.c:3195
3195 __pyx_t_1 = (__pyx_v_temp->left_sibling != 0);
谢谢@Veedrac 电话会议如下:
landmark_points=[random.randint(0,kng.shape[0]) for r in range(self.number_landmark_points)]
self.dist_matrix_=graph_shortest_path_strat(kng,landmark_points,method=self.path_method,directed=False).
基本上不是计算图中每个点之间的距离,而是想计算所有点之间的距离和数组中定义的有限数量的点。其中landmark_points是一个整数数组,kng是最近邻居的图表
kng = kneighbors_graph(self.nbrs_, self.n_neighbors,mode='distance')
graph_shortest_path是.pyx代码。我使用的版本是0.15.1
答案 0 :(得分:0)
@Veedrac感谢您的帮助。我实际上追溯到我使用random.randint的事实,当我应该用random.sample生成唯一的随机整数时。