当前位置:   article > 正文

python静态函数_python 静态函数

python 静态函数

最近在学python中发现,在类中声明为静态函数的函数在类内调用时可以不用跟上参数

例如这一段的self.msr_error函数声明为静态,compute_cost中调用此函数时不必声明参数,直接用self.msr_error就能调用

 def compute_cost(self):
        #losses = tf.losses.mean_squared_error(labels=self.ys, predictions=self.pred)
        #求出的是每一步的loss
        tf.reshape(self.pred,[-1,1])
        tf.reshape(self.ys,[-1,1])
        losses = tf.contrib.legacy_seq2seq.sequence_loss_by_example(
            [tf.reshape(self.pred, [-1], name='reshape_pred')],
            [tf.reshape(self.ys, [-1], name='reshape_target')],
            [tf.ones([self.batch_size * self.n_steps], dtype=tf.float32)],
            average_across_timesteps=True,
            softmax_loss_function=self.msr_error,
            name='losses'
        )
        # 计算batch_size内的平均的loss的值
        with tf.name_scope('average_cost'):
            self.cost = tf.div(
                tf.reduce_sum(losses, name='losses_num'),
                tf.cast(self.batch_size, tf.float32),
                name='average_cost')
            tf.summary.scalar('cost', self.cost)

    @staticmethod
    def msr_error(labels, logits):
        return tf.square(tf.subtract(labels, logits))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/903475
推荐阅读
相关标签
  

闽ICP备14008679号