前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tf37:tensorflow中将模型的权重值限定范围

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

作者头像
MachineLP
发布2022-05-09 15:03:52
6490
发布2022-05-09 15:03:52
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

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

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

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

代码语言:javascript
复制
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)

代码如下:

代码语言:javascript
复制
    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时候经过严格的理论推导,当理论不充分时,在使用的时候需要多实验室,实验出好的结果,可以再找理论支撑嘛,哈哈丷

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档