tf37:tensorflow中将模型的权重值限定范围

MachineLP的Github(欢迎follow):https://github.com/MachineLP

我们在搭建模型的时候,受到一些收敛条件的限制,像wgan_loss需要讲权重设置在[-0.01, 0.01],这个操作在TF中是这样完成中。

首先, 需要获得你搭建net的左右变量:

D_vars = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, 'Discriminator_dcgan')

    其中,'Discriminator_dcgan' 是net的名字,其下一层包含很多变量的名字。

然后,遍历每一个变量,将其限定在一定的范围:即小于-1的值设定在-1,大于1的值设定在1。

最后,在每个batch更新完参数后,需要run一下: _ = sess.run(clip_disc_weights)


代码如下:

    D_vars = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, 'Discriminator_dcgan')
    clip_ops = []
    for var in D_vars:
        clip_bounds = [-.01, .01]
        clip_ops.append(
            tf.assign(
                var, 
                tf.clip_by_value(var, clip_bounds[0], clip_bounds[1])
            )
        )
    clip_disc_weights = tf.group(*clip_ops)
    ......
    _ = session.run(clip_disc_weights)


总结,wgan_loss不加入权重限制不会收敛,同时wgan时候经过严格的理论推导,当理论不充分时,在使用的时候需要多实验室,实验出好的结果,可以再找理论支撑嘛,哈哈丷

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MachineLP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值