首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏源懒由码

    C++11 move 语义

    默认的构造函数,就会依次对应赋值,这样就会出现一个问题,如果给起赋值的是一个临时变量 MyTest t = temp,那么,表达式结束以后,temp.d释放掉,t.d就会成为野指针不安全。

    77331发布于 2020-10-10
  • 来自专栏全栈程序员必看

    什么是语义分割_词法分析语法分析语义分析

    且慢,下面举个例子: 假如:宠物店有10只动物,其中6只狗,4只猫(真实值),现有一个模型将这10只动物进行分类,分类结果为(预测结果为):5只狗,5只猫(预测值),对分类结果画出对应混淆矩阵进行分析 (那就对了…) 分析混淆矩阵的3个要点:(参考链接) ①矩阵对角线上的数字,为当前类别预测正确的类别数目;非对角线数字,预测都是错误的! 比如:第2列,模型对猫(类别2)预测了1+4=5只(此时,不看预测对与错),再分析,第2列第1行非对角线元素,预测错误(预测值是猫,实际是狗),第2列第2行为对角元素,预测正确(预测值是猫,实际是猫), 上面分析了一大堆,最终还是不够精炼,于是大佬们定义了几个公式: 准确率(Accuracy),对应:语义分割的像素准确率 PA 公式:Accuracy = (TP + TN) / (TP + TN + ——IoU 语义分割代码阅读—评价指标mIoU的计算 深度学习图像分割评测指标MIOU之python代码详解 语义分割常用指标详解(附代码) 【语义分割】评价指标总结及代码实现 numpy.bincount

    1.8K20编辑于 2022-09-25
  • 词法分析、语法分析语义分析

    语义分析(Syntax analysis)   语义分析是编译过程的一个逻辑阶段. 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查.例如一个C程序片断:   int arr[2],b;   b = arr * 10;    源程序的结构是正确的.     语义分析将审查类型并报告错误:不能在表达式中使用一个数组变量,赋值语句的右端和左端的类型不匹配. Lex    一个词法分析程序的自动生成工具。 它接受语言的文法,构造一个LALR(1)分析程序.因为它采用语法制导翻译的思想,还可以接受用C语言描述的语义动作,从而构造一个编译程序. 中间语言(中间表示)(Intermediate language(representation))    在进行了语法分析语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间表示或中间代码

    59310编辑于 2025-04-05
  • 来自专栏YIN_尹的博客

    【C++11】右值引用和移动语义

    move是库里面的一个函数,它可以把传入的参数arg转换为右值引用(移动语义) 大家先了解一下,move我们后面还会说。 2. 有些场景下,可能真的需要用右值去引用左值实现移动语义。 当需要用右值引用引用一个左值时,可以通过move函数将左值转化为右值引用。 C++11中,std::move()函数位于头文件中,该函数名字具有迷惑性,它并不搬移任何东西,唯一的功能就是返回参数的右值引用(并不会真正改变参数的属性),然后实现移动语义。 那C++11有了右值引用之后呢? C++11给STL中的容器都增加了移动构造和移动赋值。

    42110编辑于 2024-01-23
  • 来自专栏C/C++基础

    C++11移动语义与右值引用

    1.移动语义 C++11新标准中一个最主要的特性就是提供了移动而非拷贝对象的能力。如此做的好处就是,在某些情况下,对象拷贝后就立即被销毁了,此时如果移动而非拷贝对象会大幅提升性能。 vector是一个常用的容器了,我们可以很容易的分析这这两次拷贝构造的时机: (1)第一次是在函数foo中通过临时Obj的对象Obj()构造一个Obj对象并入vector中; (2)第二次是通过从函数 但第二次拷贝构造,在C++ 11中就是可以避免的了。 函数名称具有一定迷惑性,实际上std::move并没有移动任何东西,本质上就是一个static_cast<T&&>,它唯一的功能是将一个左值强制转化为右值引用,进而可以使用右值引用使用该值,以用于移动语义 C++11[M].3.3右值引用:移动语义和完美转发 [5](原创)C++11改进我们的程序之move和完美转发 [6]详解C++11中移动语义(std::move)和完美转发(std::forward

    1.3K20发布于 2019-02-22
  • 来自专栏可涵的从小白到大牛的征程

    C++11 右值引用与移动语义

    前言: 我们首先汇总一下在C++11中新的变化: 1、新容器 —— unodered_xxx 2、新接口 cbegin等,无关痛痒 initializer_list系列的构造 push_xxx / insert C++11之前,编译器已经做了不小的努力去减少拷贝。但是并没有从本质上解决问题。 为了真正解决问题就需要我们的右值引用! 移动构造 string(string&& s) :_str(nullptr) ,_size(0) ,_capacity(0) { cout << "string(string&& s) -- 移动语义 C++11后,所有容器都增加了移动构造和移动赋值 问题:右值不能改变,那怎么转移你的资源呢? 答: 右值被右值引用后,右值引用的属性是左值,可以被改变,这样资源才能被转移! 就构成了我们的移动语义

    19210编辑于 2024-10-16
  • 来自专栏C++11

    《C++11》移动语义:std::move()函数详解

    在C++11中,引入了一种新的语言特性,即移动语义,它为C++编程带来了新的可能性。其中,std::move()函数就是一个常用的工具,它可以将左值强制转换为右值。 std::move()函数std::move()函数是C++11中引入的一个新特性,它可以将左值强制转换为右值。 总结std::move()函数是C++11中的一个重要特性,它可以将左值强制转换为右值,从而实现资源的高效转移。

    92310编辑于 2025-01-09
  • 来自专栏我的博客

    【C++11】右值引用和移动语义

    而到了C++11标准,为了支持移动语义和完美转发等新特性,新增加了右值引用(Rvalue Reference)这一重要语法特性,使用"&&"符号表示。 为了区分这两种引用类型,在C++11之后,我们把传统的引用称为左值引用(Lvalue Reference)。 ,C++11还引入了引用折叠规则和通用引用(Universal Reference)的概念,进一步丰富了引用的使用方式。 222222222222222222222222222"); cout << ret.c_str() << endl; return 0; } 右值对象构造场景:仅存在拷贝构造函数,未定义移动构造函数的情况分析 理解这一优化需要从局部对象生命周期和栈帧的角度进行分析,如图3所示。

    34510编辑于 2025-12-22
  • 来自专栏小白技术社

    关于语义分析的方法(上)

    语义分析,本文指运用各种机器学习方法,挖掘与学习文本、图片等的深层次概念。 本文主要由以下四部分组成:文本基本处理,文本语义分析,图片语义分析语义分析小结。 先讲述文本处理的基本方法,这构成了语义分析的基础。接着分文本和图片两节讲述各自语义分析的一些方法,值得注意的是,虽说分为两节,但文本和图片在语义分析方法上有很多共通与关联。 最后我们简单介绍下语义分析在广点通“用户广告匹配”上的应用,并展望一下未来的语义分析方法 1 文本基本处理 在讲文本语义分析之前,我们先说下文本基本处理,因为它构成了语义分析的基础。 N-Gram语言模型简单有效,但是它只考虑了词的位置关系,没有考虑词之间的相似度,词语法和词语义,并且还存在数据稀疏的问题,所以后来,又逐渐提出更多的语言模型,例如Class-based ngram model

    1.3K10发布于 2020-07-08
  • 来自专栏深度学习和计算机视觉

    PSPNet | 语义分割及场景分析

    语义分割的目标仅仅是获知已知对象的每个像素的类别标签。 场景解析是基于语义分割的,它的目标是获知图像内所有像素的类别标签。

    87510编辑于 2022-09-28
  • 来自专栏数据饕餮

    NLP专题:LSA浅层语义分析

    原文地址:http://en.wikipedia.org/wiki/Latent_semantic_analysis 前言 浅层语义分析(LSA)是一种自然语言处理中用到的方法,其通过“矢量语义空间”来提取文档与词中的 “概念”,进而分析文档与词之间的关系。 词-文档矩阵和传统的语义模型相比并没有实质上的区别,只是因为传统的语义模型并不是使用“矩阵”这种数学语言来进行描述。 将其映射到语义空间,再与文档进行比较。 应用 低维的语义空间可以用于以下几个方面: 在低维语义空间可对文档进行比较,进而可用于文档聚类和文档分类。 通过查询映射到语义空间,可进行信息检索。 从语义的角度发现词语的相关性,可用于“选择题回答模型”(multi choice qustions answering model)。

    2K20发布于 2019-06-14
  • 来自专栏AI科技评论

    PSPNet ——语义分割及场景分析

    语义分割的目标仅仅是获知已知对象的每个像素的类别标签。 场景解析是基于语义分割的,它的目标是获知图像内所有像素的类别标签。

    4.1K20发布于 2019-08-21
  • 来自专栏CSDN社区搬运

    基于BERT的语义分析实现

    BERT作为一种预训练语言模型,它具有很好的兼容性,能够运用在各种下游任务中,本文的主要目的是利用数据集来对BERT进行训练,从而实现一个语义分类的模型。 语义分类 语义分类是自然语言处理任务中的一种,包含文本分类、情感分析 文本分类 文本分类是指给定文本a,将文本分类为n个类别中的一个或多个。 情感分类 情感分析是自然语言处理中常见的场景,比如商品评价等。通过情感分析,可以挖掘产品在各个维度的优劣。情感分类其实也是一种特殊的文本分类,只是他更聚焦于情感匹配词典。 本文将以情感二分类为例,实现如何利用BERT进行语义分析。 实现原理 首先,基于BERT预训练模型,能将一个文本转换成向量,作为模型的输入。 --train_acc: tensor(0.9443, device='cuda:1') --test_acc tensor(0.9103, device='cuda:1') --epoch 11

    41410编辑于 2024-11-30
  • 来自专栏AI科技评论

    总结 | 邹炎炎:语义分析介绍及跨语言信息在语义分析中的应用

    近年来,随着人工智能的发展,语义分析也越发重要。 word embedding 是很常见的 input feature,能够很大程度地提升语义分析模型的性能。 然而,对于 output 对语义分析模型性能的影响,大家的关注度却并不是很高。 分享主题:语义分析介绍及跨语言信息在语义分析中的应用 分享提纲: 1.semantic parsing 背景介绍 2.semantic parsing 模型介绍 3. 为了让大家更好地区分语法分析语义分析的不同点,我先介绍一下两种分析的任务: Dependency parsing :比如输入一句话「I saw a girl with a telescope」,Dependency 最后做一下总结,本次我们分享了语义分析的基本背景知识,我们实验室工作中用到的一些语义分析模型、ACL 2018 会议中的短文《跨语言信息在语义分析中的应用》以及语义分析的一些表现。

    1.6K30发布于 2018-10-25
  • 来自专栏C/C++、数据结构、算法

    C++11:新特性&右值引用&移动语义

    请看下面的右值引用和移动语义章节的讲解。 另外emplace还涉及模板的可变参数, 五、右值引用和移动语义 5.1 区分左值引用和右值引用 传统C++语法就有引用的概念,而在C++11之后新增了一个右值引用的语法特性,在我们区分左值和右值之前 右值(将亡值)在赋值和拷贝的时候,为了节省空间,我们可以通过右值引用+移动语义将资源转移。 C++11中,std::move()函数位于 头文件中,该函数名字具有迷惑性,它并不搬移任何东西,唯一的功能就是将一个左值强制转化为右值引用(只是暂时的),然后实现移动语义。 具体的一些用法分析,请参照多态文章。

    37310编辑于 2024-12-24
  • 来自专栏Michael阿明学习之路

    潜在语义分析(Latent Semantic Analysis,LSA)

    一种无监督学习方法,主要用于文本的话题分析 其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系 最初应用于文本信息检索,也被称为潜在语义索引(latent semantic indexing, LSI),在推荐系统、图像处理、生物信息学等领域也有广泛应用 文本信息处理中: 传统的方法以单词向量表示文本的语义内容,以单词向量空间的度量表示文本之间的语义相似度 潜在语义分析 旨在 解决这种方法不能准确表示语义的问题 ,试图从大量的文本数据中发现潜在的话题 以话题向量表示文本的语义内容,以话题向量空间的度量更准确地表示文本之间的语义相似度 潜在语义分析使用的是非概率的话题分析模型 将文本集合表示为单词-文本矩阵 对单词 非负矩阵分解也可以用于话题分析。 1. 单词向量空间、话题向量空间 1.1 单词向量空间 文本信息处理的一个核心问题是对文本的语义内容进行表示,并进行文本之间的语义相似度计算。 潜在语义分析算法 潜在语义分析 利用 矩阵奇异值分解(SVD),对单词-文本矩阵进行奇异值分解 左矩阵 作为话题向量空间 对角矩阵 与 右矩阵的乘积 作为 文本在话题向量空间的表示 潜在语义分析 根据

    3.7K30发布于 2020-07-13
  • 来自专栏机器学习爱好者社区

    语义分割之Dice Loss深度分析

    来自文章VNet(V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation),旨在应对语义分割中正负样本强烈不平衡的场景 sum(predictive) + torch.sum(target) + ep loss = 1 - intersection / union return loss 梯度分析 从dice 因此分析起来比较复杂,这里我们简化一下,首先从loss曲线和求导曲线对单点输出方式分析。然后对于多点输出的情况,利用模拟预测输出来分析其梯度。 多点情况分析 dice loss 是应用于语义分割而不是分类任务,并且是一个区域相关的loss,因此更适合针对多点的情况进行分析。 这点和单点的情况分析不同。这里求偏导,当 时: 可以看出, 背景区域的梯度是存在的,只有预测值命中的区域极小时, 背景梯度才会很小. 「dice loss 为何训练会很不稳定?」

    3.6K30发布于 2020-08-25
  • 来自专栏登神长阶

    【C++11】C++11新纪元:深入探索右值引用与移动语义

    C++11引入的右值引用,正是为了填补这一空白,它允许我们直接引用即将被销毁的临时对象,从而开启了C++编程的新纪元 本篇将带您深入探索C++11中的右值引用及其相关特性,包括移动语义(MoveSemantics 可维护的代码 C++11介绍 2. 移动语义 移动语义允许对象通过转移其资源(如动态分配的内存)而不是复制它们来初始化或赋值另一个对象。这通常是通过一个特殊的成员函数——移动构造函数和移动赋值操作符来实现的。 那么这里就是一个移动语义 有些场景下,可能真的需要用右值去引用左值实现移动语义。当需要用右值引用引用一个左值时,可以通过move函数将左值转化为右值。 总结 在探索C++11的广阔特性时,右值引用无疑是一个令人兴奋且意义深远的新特性。它不仅为C++带来了移动语义和完美转发的能力,还极大地增强了C++代码的性能和灵活性。

    44010编辑于 2024-08-05
  • 来自专栏福大大架构师每日一题

    2020-11-12:java中as-if-serial语义和happen-before语义有什么区别?

    2020-11-12:java中as-if-serial语义和happen-before语义有什么区别? 2020-11-12:java中as-if-serial语义和happen-before语义有什么区别? 福哥答案2020-11-12: as-if-serial语义单线程执行结果不被改变。 happen-before语义正确同步的多线程执行结果不被改变。

    31110发布于 2020-11-12
  • 《C++进阶之C++11》【移动语义 + 完美转发】

    (゚Д゚)ノ 特别是我们要深入探讨的 “移动语义”,作为 C++11 标准重磅引入的特性,它直击了之前 C++ 代码中一个非常棘手的性能痛点—— 比如我们在使用拷贝构造、函数返回值传递大型对象(像是包含海量数据的 C++11引入的新特性一定可以解决这个问题吧!” 当然也一定会有一些认真看了上面内容的小伙伴回答:“移动语义才是解决该问题的关键!” 移动语义(Move Semantics):是 C++11 引入的一项重要特性,主要用于提高程序性能,特别是在对象拷贝和赋值操作频繁的场景下,通过避免不必要的深拷贝,实现资源的高效转移。 2. 这在处理大型对象(如:传值返回的拷贝等)时,会带来较高的性能开销 为了解决类似“传值返回的拷贝开销” 这样的问题,C++11 引入了 移动语义 移动语义让传值返回的对象可以通过 “移动” 而非 “拷贝” ,避免资源泄露和不必要的资源复制 总的来说:移动语义是 C++11 中一项非常强大的特性,它让 C++ 程序在处理对象拷贝和资源管理时更加高效,是编写高性能 C++ 代码的重要手段之一。

    25410编辑于 2025-12-18
领券