我确定我在这里遗漏了一些东西,但我觉得这很奇怪。
在pdb
我进入下一步......
Importing data...
> /usr/local/lib/python2.7/dist-packages/tensorflow/tensorflow/scroll/marching_cube.py(111)read_data()
-> n_cubes = int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))
当我计算作业的右侧时,我得到774
- 这是正确的值。我可以直接在pdb
...
(Pdb) int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))
774
但请注意这一点......当我通过n
命令转到下一行时,n_cubes
会突然分配值836
...
> /usr/local/lib/python2.7/dist-packages/tensorflow/tensorflow/scroll/marching_cube.py(111)read_data()
-> n_cubes = int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))
(Pdb) int((n_slices - n_input_z) * int(math.ceil((x_dimension - n_input_x)/step_size)) * int(math.ceil((y_dimension - n_input_y)/step_size)))
774
(Pdb) n
> /usr/local/lib/python2.7/dist-packages/tensorflow/tensorflow/scroll/marching_cube.py(112)read_data()
-> input_4d_volume = np.empty((n_cubes,n_input_z,n_input_x,n_input_y))
(Pdb) n_cubes
836
为了证明计算应该是774
,我将打印出计算中涉及的所有变量......
(Pdb) n_slices
49
(Pdb) n_input_z
48
(Pdb) x_dimension
396
(Pdb) n_input_x
48
(Pdb) step_size
8
(Pdb) y_dimension
198
(Pdb) n_input_y
48
答案 0 :(得分:0)
尝试在作为线程运行的函数的开头设置断点,或者在while true:
循环中设置断点(如果有),添加:
import pdb
pdb.set_trace()
然后正常运行脚本(不到pdb
)并在线程启动时执行将进入调试器。以这种方式设置断点允许pdb
在子线程中运行,它可以访问n_cubes's
值。