链式调用中的Python装饰器

时间:2019-06-03 20:16:44

标签: python decorator python-decorators

我正在尝试通过一系列电话创建一个装饰器。语法似乎不支持它。

def rev_entropy(x):
        def row_entropy(row):
            _, _, count = tf.unique_with_counts(row)
            count = tf.cast(count,tf.float32)
            prob = count / tf.reduce_sum(count)
            prob = tf.cast(prob,tf.float32)
            rev = -tf.reduce_sum(prob * tf.log(prob))
            return rev

        nw = tf.reduce_sum(x,axis=1)
        rev = tf.map_fn(row_entropy, x)
        rev = tf.where(tf.is_nan(rev), tf.zeros_like(rev), rev)
        rev = tf.cast(rev, tf.float32)
        max_entropy = tf.log(tf.clip_by_value(nw,2,LATENT_SIZE))
        concentration = (max_entropy/(1+rev))
        new_x = x * (tf.reshape(concentration, [BATCH_SIZE, 1]))
        return new_x

我想念什么吗?由于某些原因,这样的事情在我的项目中将非常有用。

谢谢

1 个答案:

答案 0 :(得分:3)

您可以这样做:

wrapper = foo().wrapper()

@wrapper
def foo():
  pass