Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在clip_by_weight中以张量形式访问Keras层中的权重变量?

如何在clip_by_weight中以张量形式访问Keras层中的权重变量?
EN

Stack Overflow用户
提问于 2017-03-01 03:13:19
回答 1查看 2.9K关注 0票数 0

我正在实现WGAN,需要裁剪权重变量。

我目前正在使用带有Keras的Tensorflow作为高级API。因此,使用Keras构建层以避免手动创建和初始化变量。

问题是WGAN需要裁剪权重变量,一旦我得到了这些权重变量,就可以使用tf.clip_by_value(x, v0, v1)来完成,但是我不知道如何安全地获得它们。

一种可能的解决方案可能是使用tf.get_collection()获取所有可训练变量。但我不知道如何只得到权值变量,而没有偏差变量。

另一种解决方案是layer.get_weights(),但它获得了numpy数组,尽管我可以使用numpy API对它们进行剪辑,并使用layer.set_weights()设置它们,但这可能需要CPU-GPU公司,而且可能不是一个好的选择,因为需要在每个火车步骤上执行剪辑操作。

我知道的唯一方法是使用精确的变量名直接访问它们,这可以从TF低级API或TensorBoard获得,但这可能并不安全,因为Keras的命名规则并不一定是稳定的。

是否有任何干净的方法只在那些带有Tensorflow和Keras的clip_by_value上执行W

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-01 04:28:41

可以使用约束(这里)类对参数实现新的约束。

下面是如何轻松地实现权值剪辑并在模型中使用它的方法。

代码语言:javascript
运行
AI代码解释
复制
from keras.constraints import Constraint
from keras import backend as K

class WeightClip(Constraint):
    '''Clips the weights incident to each hidden unit to be inside a range
    '''
    def __init__(self, c=2):
        self.c = c

    def __call__(self, p):
        return K.clip(p, -self.c, self.c)

    def get_config(self):
        return {'name': self.__class__.__name__,
                'c': self.c}

import numpy as np
from keras.models import Sequential
from keras.layers import Dense

model = Sequential()
model.add(Dense(30, input_dim=100, W_constraint = WeightClip(2)))
model.add(Dense(1))

model.compile(loss='mse', optimizer='rmsprop')

X = np.random.random((1000,100))
Y = np.random.random((1000,1))

model.fit(X,Y)

我已经测试了上述代码的运行情况,但没有测试约束的有效性。您可以通过使用model.get_weights()model.layers[idx].get_weights()获得模型权重并检查其是否符合约束来实现。

注意:约束不是添加到所有模型权重中。但是,仅对其使用的特定层的权重,以及W_constraintW param和b_constraint添加到b (偏置) param的约束。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42530216

复制
相关文章
DCF:立体视觉的视差计算系统
视差图是立体视觉系统的重要组成部分,因为它们会对两个或多个图像的位移进行编码。不过,以前的工作只提供了一些实现细节,处理步骤上不太好定义,并且很少讨论软件设计。与之相反,DCF是对立体视觉系统的主要组件进行标准化,并进行了集成,以促进视差图的构建。因此,DCF算法可以被参数化或使用先前定义的配置来执行。因此,DCF输出可以定向到不同的应用,例如基准测试方案、计算机和机器人应用、三角测量和3D重建。
一点人工一点智能
2023/03/22
8400
DCF:立体视觉的视差计算系统
DCF:立体视觉的视差计算系统
视差图是立体视觉系统的重要组成部分,因为它们会对两个或多个图像的位移进行编码。不过,以前的工作只提供了一些实现细节,处理步骤上不太好定义,并且很少讨论软件设计。与之相反,DCF是对立体视觉系统的主要组件进行标准化,并进行了集成,以促进视差图的构建。因此,DCF算法可以被参数化或使用先前定义的配置来执行。因此,DCF输出可以定向到不同的应用,例如基准测试方案、计算机和机器人应用、三角测量和3D重建。
一点人工一点智能
2023/08/25
2330
DCF:立体视觉的视差计算系统
【FinTech】什么是金融科技(它是如何演变的)?
一般来说,FinTech(金融科技)可以应用于任何金融服务或用于帮助公司管理其业务的财务方面的技术,包括新软件和应用程序,流程和业务模型。
陆勤_数据人网
2018/07/30
2.1K0
【FinTech】什么是金融科技(它是如何演变的)?
区块链:它是什么,它是如何工作的
编者按:本报告是由《威胁镜头》,Stratfor的独特保护情报产品制作的。以企业安全领导者的头脑设计,威胁镜头使行业专业人士能够预测、识别、衡量和减轻世界各地的人们和资产面临的威胁。
架构师研究会
2018/07/25
6390
区块链:它是什么,它是如何工作的
如何用OpenCV制作一个低成本的立体相机
AR/VR的兴起,让我们喜欢上了3D电影和视频,前提是你需要戴上一副3D眼镜才能感受到3D效果。那么,它是如何工作的?当屏幕只是平面时,我们如何体验3D效果?其实,这些是通过一个叫立体相机的玩意儿来捕获的。
小白学视觉
2021/02/22
1.6K0
如何用OpenCV制作一个低成本的立体相机
什么是立体车库?立体车库企业是如何管理业务流程的?
立体车库是用来最大量存取储放车辆的机械或机械设备系统。针对专业停车场管理公司提高停车场容量、提高收益、增加停车费收入的有效工具。最早的立体车库建于1918年,位于美国伊利诺斯州芝加哥市华盛顿西大街215号的一家宾馆的停车库。1997年被引进我国上海、广州、深圳等地。
informat低代码
2021/12/22
7720
什么是立体车库?立体车库企业是如何管理业务流程的?
小白系列(5)| 计算机视觉:3D立体视觉
本文中,我们将讨论立体视觉,这是一种使用两个或多个摄像机来生成全视场三维测量的机器视觉技术。
一点人工一点智能
2023/09/08
4650
小白系列(5)| 计算机视觉:3D立体视觉
小白系列(5)| 计算机视觉:3D立体视觉
本文中,我们将讨论立体视觉,这是一种使用两个或多个摄像机来生成全视场三维测量的机器视觉技术。
一点人工一点智能
2023/09/04
8580
小白系列(5)| 计算机视觉:3D立体视觉
自动驾驶汽车的伪激光雷达-双目立体视觉
双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。
点云PCL博主
2022/02/10
1.4K0
自动驾驶汽车的伪激光雷达-双目立体视觉
伪激光雷达:无人驾驶的立体视觉
激光雷达成本高,用廉价的立体视觉替代它可行吗? 作者:Jeremy Cohen 编译:McGL
McGL
2020/09/21
1.4K0
伪激光雷达:无人驾驶的立体视觉
IPsec 是什么?它是如何工作的?
IPsec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,它是V**(Virtual Private Network,虚拟专用网)中常用的一种技术。由于IP报文本身没有集成任何安全特性,IP数据包在公用网络如Internet中传输可能会面临被伪造、窃取或篡改的风险。通信双方通过IPsec建立一条IPsec隧道,IP数据包通过IPsec隧道进行加密传输,有效保证了数据在不安全的网络环境如Internet中传输的安全性。
Ponnie
2022/01/13
1.3K0
IPsec 是什么?它是如何工作的?
立体匹配导论
转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/51531333, 来自: shiter编写程序的艺术
流川疯
2019/01/18
1.7K0
区块链2018:什么是区块链技术,它是如何工作的?
作为金融技术和在线服务领域最受关注的技术,BLOCKCHAIN已经在2017年底迅速出现。 但是区块链究竟是什么?它是如何工作的? 资深商业策略师Don Tapscott在2016年TED Talk上表示,区块链已经到来,永远塑造未来。 区块链自2008年推出比特币以来可能一直存在,但直到近十年后,该技术才真正达到了主流意识水平。 Tapscott先生说:“未来几十年可能产生最大影响的技术已经到来。 这不是社交媒体,它不是大数据,它不是机器人,它甚至不是AI。 “你会惊奇地发现,这是比特币等数字货币的
架构师研究会
2018/04/09
2.8K0
立体匹配的研究背景以及意义
转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/51533549, 来自: shiter编写程序的艺术
流川疯
2019/01/18
1.5K0
什么是引力波?它是怎么被发现的?
法拉第(见图4-1)认识到,遍布于整个空间的电磁场是电磁力的载体。这个观点改变了我们对物理世界的理解。
IT阅读排行榜
2020/08/07
6990
什么是引力波?它是怎么被发现的?
Linux 黑话解释:什么是包管理器?它是如何工作的?
简单来说,“ 包管理器(package manager)”(或“软件包管理器”)是一种工具,它允许用户在操作系统上安装、删除、升级、配置和管理软件包。软件包管理器可以是像“软件中心”这样的图形化应用,也可以是像 apt-get 或 pacman 这样的命令行工具。
用户1880875
2021/09/13
1.1K0
基于图论的立体匹配方法研究----绪论
计算机视觉是一门通过研究使用计算机来模拟人的视觉系统的学科。“一图胜千言”,人类对于图像中的信息感知效率远超文字等其他媒介,人类获取的信息总量中更是有高达80%依靠视觉系统[1]。相对于人类高效的图像信息提取能力,计算机在图像信息的理解上仍然效率低下。
流川疯
2019/01/18
8440
一文详解双目立体视觉系统的精度提升方法!
双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法1。
3D视觉工坊
2021/07/01
3.1K0
一文详解双目立体视觉系统的精度提升方法!
MVC 是什么?它是如何工作的?-15
MVC 由三个基本部分组成 - 模型(Model),视图(View)和控制器(Controller)。 它是用于实现应用程序的用户界面层的架构设计模式。 一个典型的实际应用程序通常具有以下层:
角落的白板报
2019/05/15
2.2K0
MVC 是什么?它是如何工作的?-15
一篇文章认识《双目立体视觉》
双目立体视觉,由两个摄像头组成,像人的眼睛能看到三维的物体,获取物体长度、宽度信息,和深度的信息;单目视觉获取二维的物体信息,即长度、宽度。
一颗小树x
2021/05/15
10.3K1
一篇文章认识《双目立体视觉》

相似问题

如何确定立体视觉的视差值

11

视差映射中的立体视觉

11

立体视差图生成

12

立体匹配中的视差图和视差图像有什么不同?

21

如何找到像素视差,像素大小(立体视觉中的深度估计)

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档