用于namedtuple大小的python表达式

时间:2017-07-05 18:14:50

标签: python namedtuple

我在python中遇到了以下表达式。我相信表达本身是合法的,它的结构实际上是有道理的。但是,从强类型背景来看,我想知道人们是否通常在python中这样做...即使用表示两个完全不同的概念的相同类(数据与数据大小元数据)

class AttentionDecoderOutput(
    namedtuple("DecoderOutput", [
        "logits", "predicted_ids", "cell_output", "attention_scores",
        "attention_context"
    ])):
  """Augmented decoder output that also includes the attention scores.
  """
  pass

AttentionDecoderOutput定义了一个数据结构。下面的output_size定义了namedtuple中每个元素的大小。

def output_size(self):
  return AttentionDecoderOutput(
    logits=self.vocab_size,
    predicted_ids=tf.TensorShape([]),
    cell_output=self.cell.output_size,
    attention_scores=tf.shape(self.attention_values)[1:-1],
    attention_context=self.attention_values.get_shape()[-1])

0 个答案:

没有答案