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))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值