Python pdb跳过硬编码断点

时间:2016-12-13 22:37:04

标签: python-2.7 pdb

我在pdb中运行Tensorflow的序列到序列教程来弄清楚它是如何工作的。我正在尝试在需要多行参数的函数内硬编码断点,这样我就不必通过所有参数进行调试。但是,pdb似乎只是跳过了硬编码的断点。

主文件是translate.py,我在seq2seq_model.py中调用构造函数。相关代码如下所示:

# Sampled softmax only makes sense if we sample less than vocabulary size.
pdb.set_trace()
if num_samples > 0 and num_samples < self.target_vocab_size:
  w_t = tf.get_variable("proj_w",[self.target_vocab_size,size],dtype=dtype)
  w = tf.transpose(w_t)
  b = tf.get_variable("proj_b", [self.target_vocab_size], dtype=dtype)
  output_projection = (w, b)

  def sampled_loss(labels, inputs):
    labels = tf.reshape(labels, [-1, 1])
    # We need to compute the sampled_softmax_loss using 32bit floats to
    # avoid numerical instabilities.
    local_w_t = tf.cast(w_t, tf.float32)
    local_b = tf.cast(b, tf.float32)
    local_inputs = tf.cast(inputs, tf.float32)
    return tf.cast(
          tf.nn.sampled_softmax_loss(local_w_t, local_b, local_inputs, labels,
                                   num_samples, self.target_vocab_size), dtype)
  softmax_loss_function = sampled_loss

更新:当我在调试器中键入pdb.set_trace()时,带有被调用函数的文件中的list行不会出现。我认为这个问题与此有关。

0 个答案:

没有答案