浅析deep深度选择器

之前在开发中遇到一个问题,vue项目结合element ui使用。 但是element ui的样式不一定符合我们的需求,这时我们就需要改变它的样式。 比如博主使用到了element ui的表格,但是表格有默认的背景色,鼠标滑过还有默认的高亮颜色。 我想要改变这个鼠标滑过的样式,所以我需要在页面中审查元素找到对应的标签。 但是当我找到并且复制,然后试图去改变它的样式时,怎么都没办法改变。 我以为是权重的问题,所以我加 ! important,但是也毫无作用。 当我审查元素发现此样式就没有作用到,就相当于它没有找到这个元素,所以也就不存在改不改变样式的问题了。 这时我们就需要一个选择器能深度的帮助我们找到这个元素,比如 deep(划重点) 1、这是我起初试图改变的方法(亲测无效): .el-table--enable-row-hover .el-table__body tr:hover>td { background: lightblue !important; color: #000; } 2、这是使用deep后的方法(亲测有效): .el-table--enable-row-hover /deep/ .el-table__body tr:hover>td { background: lightblue ; color: #000; } 原理就是通过找到父元素深度的找到我们需要改变的子元素,然后改变它的样式即可。 感觉发现了什么不得了的东西。 是不是意味着我使用第三方ui 库,就可以随意改变它的样式了。 好了,以上就是deep的一些基本用法,如需深入了解,请参考官方介绍。 博主后期也会了解更新,尽情期待。 如有问题,请指出,接受批评。

基于深度学习的语义匹配若干模型DSSM,ESIM, BIMPM, ABCNN

本项目介绍了语义匹配的几个模型,分别为: DSSM Learning Deep Structured Semantic Models for Web Search using Clickthrough Data ESIM Enhanced LSTM for Natural Language Inference Pair-CNN Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks ABCNN ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs BIMPM bilateral multi-perspective matching for natural language sentences 顺带介绍料WMD的相关知识 论文集在papers文件夹中 github:https://github.com/pengming617/text_matching 纯属个人学习 如有侵权 实在抱歉 请联系我 上文中介绍的Bimpm代码复制于 https://zhuanlan.zhihu.com/p/50184415,特此感谢 简枫 同学

Bean named ‘xxx’ is expected to be of type ‘cn.xxx’ but was actually of type ‘com.sun.proxy.$Proxy22

在学习spring aop中的动态代理时,碰到了一个问题: “名为“xxx”的Bean的类型应该是“com”.xxx’,但实际上是’com.sun.proxy.$Proxy22’类型的。” spring使用的动态代理有两种:JDK Proxy 和CGLIB。 使用前者必须实现至少一个接口才能实现对方法的拦截。 使用后者需要两个jar包:asm.jar和cglib.jar ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); System.out.println(ac); UserServiceImpl bean = ac.getBean("userService",UserServiceImpl.class); **问题出在这句代码上 UserServiceImpl bean = ac.getBean(“userService”,UserServiceImpl.class);不能用接口的实现类( UserServiceImpl)来转换Proxy的实现类,它们是同级,应该用共同的接口(UserService)来转换 ** 把代码改为 UserService bean = ac.getBean(“userService”,UserService.class); 简单地说就是要用该类的接口来转换,而且必须是该类的接口

《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data 》论文总结

1.背景 DSSM是Deep Structured Semantic Model的缩写,即我们通常说的基于深度网络的语义模型,其核心思想是将query和doc映射到到共同维度的语义空间中,通过最大化query和doc语义向量之间的余弦相似度,从而训练得到隐含语义模型,达到检索的目的。DSSM有很广泛的应用,比如:搜索引擎检索,广告相关性,问答系统,机器翻译等。 2. DSSM 2.1简介 DSSM [1](Deep Structured Semantic Models)的原理很简单,通过搜索引擎里 Query 和 Title 的海量的点击曝光日志,用 DNN 把 Query 和 Title 表达为低纬语义向量,并通过 cosine 距离来计算两个语义向量的距离,最终训练出语义相似度模型。该模型既可以用来预测两个句子的语义相似度,又可以获得某句子的低纬语义向量表达。 DSSM 从下往上可以分为三层结构:输入层、表示层、匹配层 典型的DNN结构是将原始的文本特征映射为在语义空间上表示的特征。DNN在搜索引擎排序中主要是有下面2个作用: 将query中term的高维向量映射为低维语义向量 根据语义向量计算query与doc之间的相关性分数 通常, x用来表示输入的term向量, y表示输出向量, l_{i},i=1,…,N-1 表示隐藏层, Wi表示第 i层的参数矩 阵, bi表示 第 i个偏置项。 我们使用 tanh作为输出层和隐藏层的激活函数,有下列公式。 在搜索排序中,我们使用 Q来表示一个query, D来表示一个doc,那么他们的相关性分数可以用下面的公式衡量: 其中, yQ与 yD是query与doc的语义向量。在搜索引擎中,给定一个query,会返回一些按照相关性分数排序的文档。 通常情况下,输入的term向量使用最原始的bag of words特征,通过one-hot进行编码。但是在实际场景中,词典的大小将会非常大,如果直接将该数据输入给DNN,神经网络是无法进行训练和预测的。因此,在DSSM中引入了word hashing的方法,并且作为DNN中的第一层。 2.2 word hashing word hashing方法是用来减少输入向量的维度,该方法基于字母的 -gram。给定一个单词(good),我们首先增加词的开始和结束部分(#good#),然后将该词转换为字母 -gram的形式(假设为trigrams:#go,goo,ood,od#)。最后该词使用字母 -gram的向量来表示。 这种方法的问题在于有可能造成冲突,因为两个不同的词可能有相同的 -gram向量来表示。下图显示了word hashing在2个词典中的统计。与原始的ont-hot向量表示的词典大小相比,word hashing明显降低了向量表示的维度。 2.3 DSSM的学习 点击日志里通常包含了用户搜索的query和用户点击的doc,可以假定如果用户在当前query下对doc进行了点击,则该query与doc是相关的。通过该规则,可以通过点击日志构造训练集与测试集。 首先,通过softmax 函数可以把query 与样本 doc 的语义相似性转化为一个后验概率:

unity网格合并后位置会变的问题

根据以上代码,引用unity提供的CombineInstance接口进行了mesh合并,但是合并后发现如果需要合并的对象的父物体坐标不为Reset后的值时,会发生偏移 父物体坐标reset后 后来有看到一篇问答https://ask.csdn.net/questions/175622 combine[i].transform = meshFilters[i].transform.localToWorldMatrix; 这句话改为 combine[i].transform = transform.worldToLocalMatrix * meshFilters[i].transform.localToWorldMatrix;可以解决此问题

【译】媒体查询特性 – 适应用户偏好 | perfers-reduced-motion | prefers-color-scheme | Save data

为了践行新的一年能翻译12+的国外技术博客文章的目标,今天就让我们开始第一篇。 本篇文章翻译自一位专注于H5、CSS、web性能的自由开发者: Michael Scharnagl。 译者引言: 当我们在使用APP时,我们在 设置中常会发现这么一项操作:如无图模式、夜间模式等等,这些设置项来自对用户偏好的考量。为了打造轻应用的进展中,在web中也将逐步实现这样的特性。今天,我们就来了解一下关于在web中打造用户偏好的特性。 适应用户偏好 在过去的几年里,浏览器实现了各种功能,可以使用CSS、JavaScript或检查服务器端的首选项来响应web上的用户偏好。在本文中,将展示浏览器当前公开的用户偏好、处理它们的最佳方式,以及对未来的展望,以了解可能很快就会出现什么。 perfers-reduced-motion 让我们从减少运动媒体查询(perfers-reduced-motion)开始。这项特性是在Safari10.1中引入的,目前在Safari、IOS Safari、Firefox和Chrome的最新版本中得到支持。 perfers-reduced-motion这项特性被用于检测用户是否需要系统将其使用的动画或运动最小化。你可以用下面的方式检测: @media (perfers-reduced-motion: reduce) { /* disable animations/transitions 禁用动画或过渡*/ } 或者使用另一种方式: var motionQuery = matchMedia('(perfers-reduced-motion)'); function handleReduceMotionChanged() { if (motionQuery.matches) { /*disabled animations/transitions 禁用动画或过渡*/ }else { /*enable animations/transitions 开启动画或过渡*/ } } motionQuery.addListenet(handleReduceMotionChanged); handleReduceMotionChanged(); 但是,对所有CSS 动画(animation)和过渡(transition)禁用perfers-reduced-motion:reduce的方式是: @media (perfers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } } 但是,这样做并不会触发动画开始/结束事件或关键帧(animation start/end events or keyframe states)状态。所以,如果你的代码依赖于这些事件,你还需要这么做: @media (perfers-reduced-motion: reduce) { * { transition-duration: 0.

Jetson TX2的各种坑.md

最近在使用Jetson TX2 在跑实验,然后遇到下面问题,做笔记,记录一下。 内存出错无法,中断 # 出现下面那种错误 2019-01-11 19:41:46.959970: E tensorflow/stream_executor/cuda/cuda_driver.cc:1068] failed to synchronize the stop event: CUDA_ERROR_LAUNCH_FAILED 2019-01-11 19:41:46.960033: E tensorflow/stream_executor/cuda/cuda_timer.cc:54] Internal: error destroying CUDA event in context 0x367c800: CUDA_ERROR_LAUNCH_FAILED 2019-01-11 19:41:46.960059: E tensorflow/stream_executor/cuda/cuda_timer.cc:59] Internal: error destroying CUDA event in context 0x367c800: CUDA_ERROR_LAUNCH_FAILED 2019-01-11 19:41:46.960185: F tensorflow/stream_executor/cuda/cuda_dnn.cc:2045] failed to enqueue convolution on stream: CUDNN_STATUS_EXECUTION_FAILED [1] 10332 abort (core dumped) python monodepth_simple.py --image_path ./data/training/image_2/000000_10.jpg 解决办法: config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True #加多这一行 sess = tf.

知识图谱一 — 知识图谱架构、DeepDive中文抽取示例

一. DeepDive DeepDive (http://deepdive.stanford.edu/) 是斯坦福大学开发的信息抽取系统,能处理文本、表格、图表、图片等多种格式的无结构数据,从中抽取结构化的信息。系统集成了文件分析、信息提取、信息整合、概率预测等功能。Deepdive的主要应用是特定领域的信息抽取,系统构建至今,已在交通、考古、地理、医疗等多个领域的项目实践中取得了良好的效果;在开放领域的应用,如TAC-KBP竞赛、维基百科的infobox信息自动增补等项目中也有不错的表现。 deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统,开源地址:https://github.com/HazyResearch/deepdive 本文用的支持中文的deepdive来自于http://www.openkg.cn/dataset/cn-deepdive,修改了自然语言处理的model包,使它支持中文。 DeepDive的数据(包括输入,输出,中间media)全都存在关系数据库中,支持数据库类型:postgresql(建议)、mysql、postgresql-xl、greenplum DeepDive的系统架构如下图所示,大致分为数据处理、数据标注、学习推理和交互迭代四个流程: 二. 知识图谱构建流程 知识图谱的架构,包括知识图谱自身的逻辑结构以及构建知识图谱所采用的技术(体系)结构。 知识图谱的逻辑结构分为两个层次:数据层和模式层。 在知识图谱的数据层,知识以事实(fact)为单位存储在图数据库。如果以『实体-关系-实体』或者『实体-属性-值』三元组作为事实的基本表达方式,则存储在图数据库中的所有数据将构成庞大的实体关系网络,形成知识的图谱。 模式层在数据层之上,是知识图谱的核心,在模式层存储的是经过提炼的知识,通常采用本体库来管理知识图谱的模式层,借助本体库对公理、规则和约束条件的支持能力来规范实体、关系以及实体的类型和属性等对象之间的联系。本体库在知识图谱中的地位相当于知识库的模具,拥有本体库的知识库冗余知识较少 举例: 模式层:实体-关系-实体;实体-属性-性值 数据层:比尔盖茨-配偶-梅琳达;比尔盖茨-总裁-微软 知识图谱有自顶向下和自底向上2种构建方式。所谓自顶向下构建是借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库中;所谓自底向上构建,则是借助一定的技术手段,从公开采集的数据中提取出资源模式,选择其中置信度较高的新模式,经人工审核之后,加入到知识库中。 目前知识图谱大多采用自底向上的方式构建,本文也主要介绍自底向上的知识图谱构建技术,按照知识获取的过程分为3个层次:信息抽取、知识融合以及知识加工。 2.1 知识图谱的构建技术 采用自底向上的方式构建知识图谱的过程是一个迭代更新的过程,每一轮更新包括3个步骤: 信息抽取,即从各种类型的数据源中提取出实体(概念)、属性以及实体间的相互关系,在此基础上形成本体化的知识表达 知识融合,在获得新知识后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等 知识加工,对于经过融合的新知识,需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分加入到知识库中,以确保知识库的质量,新增数据之后,可以进行知识推理、拓展现有知识、得到新知识 2.1.1 信息抽取 信息抽取是知识图谱构建的第一步,其中的关键问题是如何从异构数据源中自动抽取信息得到候选知识单元。信息抽取是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术。涉及的关键技术包括:命名实体识别、关系抽取和属性抽取。 1. 命名实体识别(实体抽取) 命名实体识别(named entity recognition,NER)也称实体抽取,是指从文本数据集中自动识别出命名实体。实体抽取的质量(准确率和召回率)对后续的知识获取效率和质量影响极大,因此是信息抽取中最为基础和关键的部分。 2012年Ling等人归纳出112种实体类别,并基于条件随机场CRF进行实体边界识别,最后采用自适应感知机算法实现了对实体的自动分类,取得了不错的效果。 但是随着互联网中内容的动态变化,采用人工预定义实体分类体系的方式已经很难适应时代的需求,因此提出了面向开放域的实体识别和分类研究。 在面向开放域的实体识别和分类研究中,不需要(也不可能)为每个领域或者每个实体类别建立单独的语料库作为训练集。因此,该领域面临的主要挑战是如何从给定的少量实体实例中自动发现具有区分力的模型。 一种思路是根据已知的实体实例进行特征建模,利用该模型处理海量数据集得到新的命名实体列表,然后针对新实体建模,迭代地生成实体标注语料库。 另一种思路是利用搜索引擎的服务器日志,事先并不给出实体分类等信息,而是基于实体的语义特征从搜索日志中识别出命名实体,然后采用聚类算法对识别出的实体对象进行聚类。 2. 关系抽取 文本语料经过实体抽取,得到的是一系列离散的命名实体,为了得到语义信息,还需要从相关的语料中提取出实体之间的关联关系,通过关联关系将实体(概念)联系起来,才能够形成网状的知识结构,研究关系抽取技术的目的,就是解决如何从文本语料中抽取实体间的关系这一基本问题。 早期的关系抽取研究方法主要是通过人工构造语法和语义规则。随后,出现了大量基于特征向量或者核函数的有监督学习方法,关系抽取的准确性也不断提高。但以上研究成果的共同特点是需要预先定义实体关系类型,如雇佣关系、整体部分关系以及位置关系等。 与之相对的,Banko等人提出了面向开放域的信息抽取方法框架(open information extraction,OIE),并发布了基于自监督(self-supervised)学习方式的开放信息抽取原型系统(TextRunner),该系统采用少量人工标记数据作为训练集,据此得到一个实体关系分类模型,再依据该模型对开放数据进行分类,依据分类结果训练朴素贝叶斯模型来识别『实体-关系-实体』三元组,经过大规模真实数据测试,取得了显著优于同时期其他方法的结果。 TextRunner系统中错误的部分主要是一些无意义或者不和逻辑的实体关系三元组,据此引入语法限制条件和字典约束,采用先识别关系指示词,然后再对实体进行识别的策略,有效提高了关系识别准确率。 研究历程简单总结: 人工构造语法和语义规则–模式匹配 统计机器学习方法 基于特征向量或核函数的有监督方法 研究重点转向半监督和无监督 开放领域的信息抽取 将面向开放域的信息抽取方法和面向封闭领域的传统方法结合 3. 属性抽取 属性抽取的目标是从不同信息源中采集特定实体的属性信息。例如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。属性抽取技术能够从多种数据来源中汇集这些信息,实现对实体属性的完整勾画。 由于可以将实体的属性视为实体与属性值之间的一种名词性关系,因此也可以将属性抽取问题视为关系抽取问题。 百科类网站提供的半结构化数据是当前实体属性抽取研究的主要数据来源。但是还有大量的实体属性数据隐藏在非结构化的公开数据中。 一种解决方案是基于百科类网站的半结构化数据,通过自动抽取生成训练语料,用于训练实体属性标注模型,然后将其应用于对非结构化数据的实体属性抽取; 另一种方案是采用数据挖掘的方法直接从文本中挖掘实体属性与属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。这种方法的基本假设是属性名和属性值之间在位置上有关联关系,事实上在真实语言环境中,许多实体属性值附近都存在一些用于限制和界定该属性值含义的关键词(属性名),在自然语言处理技术中将这类属性称为有名属性,因此可以利用这些关键字来定位有名属性的属性值。 2.2 知识融合 通过信息抽取,实现了从非结构化和半结构化数据中获取实体、关系以及实体属性信息的目标,然而,这些结果中可能包含大量的冗余和错误信息,数据之间的关系也是扁平化的,缺乏层次性和逻辑性,因此有必要对其进行清理和整合。知识融合包含2部分内容:实体链接和知识合并。 2.2.1 实体链接 实体链接(entity linking)是指对于从文本中抽取得到的实体对象,将其链接到知识库中对应的正确实体对象的操作。 实体链接的基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象。

华为magicbook电脑看久了眼睛累的问题

华为magicbook电脑看久了眼睛累的问题 华为magicbook intel版屏幕的pwm频率太低,导致看久了眼睛酸疼,眼睛累。本文着重解决华为magicbook intel版出现的这个问题。 如果你的手从背景调为白色的屏幕前面快速划过,可以看到很多重影,那么恭喜你中招了,看下来吧! 开始的开始 magicbook确实无疑是整个5000以下价格区间里面的性价比最好的一款。当初看上这款笔记本也是因为性价比高,特别是电池容量大。并且intel版的续航时间长,所以买了intel版的。这样买台这个超极本以后就可以泡自习室一天了,从此不用到处找插头了。事实证明,这款笔记本续航是真的棒,能用到9小时以上,自习从早上到晚上完全没问题。 问题的出现 但是说起华为magicbook这款电脑的屏幕,就比较无语了。 到手之后,感觉各方面其实都挺好的。其他的方面是真的可以,然而当我带着笔记本自习一天后。第二天起床发现:啊!我的眼睛,怎么酸溜溜地疼。 起初以为是看屏幕太久了的原因,但是为什么我用原来的电脑就没有这种现象呢?然后怀疑到了这款屏幕上面来。通过查阅资料,发现是屏幕pwm调光的问题。建议正在看本文的网友仔细看看下文,这是一篇详细介绍pwm调光的科普文。 pwm调光原理: http://www.igao7.com/news/201807/oJMDaPCKHbeufGdI.html 也可以搜索关键字: 屏幕pwm调光 好了,科普完了,我们可以得出结论,出现这个问题就是由于pwm频率太低造成的。 一个具体简单的判断pwm频率太低的方法: 用手从背景调为白色的屏幕前面快速划过,然后看看能不能看到很多明显的重影。 问题解决方案 找到原因之后,在网上搜了搜是否能够有软件修改pwm频率的方法。结果还真的搜到了,网上有关于软件怎样调节pwm频率的方法。原理是intel核显里面有一个寄存器,是专门管pwm频率的,只要修改掉那个寄存器的值就行,找着找着,不仅找到了理论方法,还发现了网上有现成的代码。代码原理确实简单,如果实现核心功能的话,几行代码就能搞定。 修改的源代码: https://github.com/lixiaobai09/PWMHelper 我的编译好的可执行文件: https://github.com/lixiaobai09/PWMHelper/raw/master/bin/x64/Debug/PWMHelper.exe 可执行文件md5值: b66b7fb34216b783765c2bfbe1f78581 这里非常感谢github上面的anatoliis以及tpurtell,anatoliis是从tpurtell那里来的灵感。而我的代码只不过在anatoliis上进行了精简。anatoliis的代码写的确实很优美。这几个版本读者可以自行选择。 下载下来之后,在window运行里面输入: shell:startup 然后将exe文件放入开机启动文件夹里面,就能每次开机后马上进行修改了。 至此,这个pwm问题就算被解决了。 最后 其实,我一直不太清楚这个应该是屏幕厂商的问题,还是华为电脑驱动的问题。我给华为客服打过电话,他们告诉我解决这个问题需要换屏幕,然而我换过屏幕之后还是这个问题,不过换的屏幕还是京东方的屏。所以最后还是没搞清楚是屏幕的问题还是华为驱动的问题。可怜我花了300+大洋换的屏幕啊,300+的屏幕应该不差了吧? 再去骚扰骚扰售后,看看怎么解决。

python实现图像模糊

代码:高斯模糊 from PIL import Image, ImageFilter import numpy as np img = Image.open("./1.jpg").filter(ImageFilter.GaussianBlur) img.save("1_.jpg") 原图: 高斯模糊: