首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++:22 再议const的作用(上)

在C++:18篇里说过const的用法,这里有必要再提升进阶下const的理解。 因为你可能只知道他是怎么用的,但是他为什么这样用,其他用法? 首先回顾下const有什么主要的作用?...(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。同定义一样,可以做到不变则已,一变都变 (4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。...为什么? const可以用于集合,但编译器不能把一个集合存放在的符号表里,所以必须分配内存。在这种情况下,const意味着“不能改变的一块存储”。...也许这个话题太大了,那我们缩小一些:this指针是个什么类型的?......... }; 这个程序是正确的,看来上面的结论是错误的。 为什么会这样?这要涉及到接口的透明度问题。

83520

选择合适的innodb_log_file_size

然而设置太大了,就会增加恢复的时间,因此在MySQL崩溃或者突然断电等情况会令MySQL服务器花很长时间来恢复。 那么,怎么才能找到最佳的配置组合?...首先,让先来解释一下恢复都发生了什么事情以及为什么设置 innodb_log_file_size 的值太大了会让恢复过程变慢。...Innodb 数据表崩溃再次启动,MySQL 会扫描日志文件来找到那个只应用到内存中并且不存在的表空间的日志记录。那些没有没有放到表空间的修改日志记录就要被加进去。这叫做重做相位恢复。...由于有这么多因素,就很难产生通用的准绳,例如每10分钟恢复1GB数据的时长 — 相反地,应该在典型的应用中来确定负载,在MySQL崩溃的过程中来监查它是怎么恢复的。...另一个重要的方法是撤销相位 — 当日志文件应用完之后并且数据库处于 “物理一致性” 状态,Innodb 会回滚那些没提交的事务,但是已经对数据库所做的修改就不管了。

72520
您找到你想要的搜索结果了吗?
是的
没有找到

iOS中的预编译指令的初步探究

跟着用仿生学的角度去理解计算机,那么计算机程序是神马?教科书上怎么说?可以被计算机执行,那神马东西会被人执行的?...那么存在的意义是什么,我们是不是可以直接简化一下这个,把给去掉,变成这个样子?...比如你现在有这样的需求,的程序平时调试模式的时候需要打印一些log,但是发布模式的应用就不用再打印log了,怎么办?...其实很多代码并没有特别在意这样的比较,而且绝大多数时候,比较signed和unsigned也是没有太大问题的(当然不排除会有致命错误出现的情况)。...个人来说不喜欢使用这个设定,因为总是打断开发流程。很多时候并不可能把代码全写完再编译调试,相反地,更喜欢写一点就编译运行一下看看结果,这样在中间debug编译的时候会出现警告也不足为奇。

2.2K80

机器学习与大数据风控

雷锋网:今年人工智能很火,机器学习与深度学习等词甚至被很多非业内人熟知,那金融行业对机器学习的态度是怎么样的? 郑洲:讲这个话题之前,觉得我们需要先把一些名词稍微界定一下。...机器学习几乎在每一个有数据的场景都有应用主要是区别于纯粹人工经验去做决策。 雷锋网:目前来说,机器学习在大数据风控中是怎么样的地位?作用多大?...我们下面来举一个常见的应用场景,风险评分,预测一个事件在未来是否会发生。像这样的场景,无论是机器学习还是传统统计方法,评判指标并没有太大的差别。...这是任何新技术都会类似产生的问题,需要时间去探索和修正,可以说道路是曲折的,前景是光明的。 雷锋网:您对机器学习应用于风控模型缺乏可解释性怎么看?这一问题又该如何解决?...郑洲:机器学习应用于风控模型,缺乏可解释性是一个普遍的问题。 首先,为什么会出现缺乏可解释性?

1.8K80

正则化方法:L1和L2 regularization、数据集扩增、dropout

L2正则化项是怎么避免overfitting的?我们推导一下看看,先求导: ? 可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响: ?   ...当w为正时,更新后的w变小。当w为负,更新后的w变大——因此的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。   ...另外,上面没有提到一个问题,当w为0怎么办?...那么该做法的一个重点便是怎样认为validation accurary不再提高了?...可以简单地这样解释,运用了dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络(后面简称为“半数网络”),每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误

1.8K70

七.加速神经网络、激励函数和过拟合

我们甚至可以创造自己的激励函数,但需要保证它们是可以微分的,因为误差反向传递,只有这些可微分的激励函数才能把误差传递回去(不太理解)。 ?...那么,怎么解决过拟合? 方法一:增加数据量 大多数过拟合的原因是数据量太小,如果有成千上万数据,红线也会被拉直,没有这么扭曲,所以增加数据量能在一定程度上解决过拟合问题。...过拟合中W往往变化太大,为了让变化不会太大,我们在计算误差需要做些手脚。...SGD每次使用批量数据,虽然不能反映整体数据的情况,但在很大程度上加速神经网络的训练过程,而且不会丢失太多准确率。 ? ? 如果还是嫌SGD训练速度太慢,怎么?...rate)乘以校正值(dx),这种方法可能会让学习过程曲折无比,看起来就像一个喝醉酒的人回家摇摇晃晃走了很多弯路,所以我们把这个人从平地上放到斜坡上,只要他往下坡的方向走一点点,由于向下的惯性,他走的弯路也会不自觉的变小

68020

尝试克服一下小伙伴对神经网络的恐惧No.26

这两天仔细研究了一下神经网络,简单的结构其实没想象中那么恐怖,只是我们自己吓自己,今天希望能把理解到的东西分享给大家,克服一下大家的恐惧,使用的框架是Tensorflow。...然后用训练集进行训练网络,测试集进行测试,如果效果还不错,我们就把这个训练完网络直接应用到实时预测当中去。再说一遍:训练完的网络可以直接应用到实时预测中。 那怎么去构建这个网络以及怎么训练?...一个叫损失函数的原名叫交叉熵小东西出现了,咱整个神经网络的目标,就是把这个值变小变小变小,越小越好最好全局最小。 ?...cross_entropy = - tf.reduce_sum( y_ * tf.log(y)) 怎么变小?定义一个训练的步,专门用来训练的。...该给它投食了,该投多少食自己看着办,这里投1000次,每次投100个数据。训练的过程就是每次拿一些数据,求损失函数最小值,然后把这个得到最小值的w和b,以加权的形式合并到原有的变量w和b上面去。

55760

【算法】正则化方法

2 正则化如何应用? 3 L1和L2有什么区别? 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining,常常会导致overfitting(过拟合)。...L2正则化项是怎么避免overfitting的?我们推导一下看看,先求导: ? 可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响: ?...当w为正时,更新后的w变小。当w为负,更新后的w变大——因此的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。 另外,上面没有提到一个问题,当w为0怎么办?...的流程如下: ? 假设我们要训练上图这个网络,在训练开始,我们随机地“删除”一半的隐层单元,视它们为不存在,得到如下的网络: ?...可以简单地这样解释,运用了dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络(后面简称为“半数网络”),每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误

895140

Easy Tech:什么是I帧、P帧和B帧?

1.首先,可以查看帧1,并找到相匹配的块。似乎移动了一个帧宽(知道要少一些)的距离,并与帧2中像素块的高度大约相同。好的,运动矢量出现了。...如果想要压缩帧2中包含蓝色球体的块,我们该怎么? 在同一帧内搜索,还是在前面的编码帧中搜索?...2.编码器可以在同一帧内(帧内预测)和相邻帧内(帧间预测)搜到匹配的块。 3.它比较每个块的帧间和帧内预测结果,并选出最佳结果。这个过程被称为“模式选择”,认为这是视频编码器最核心的部分。...但如果某一帧要参考未来显示的一帧,你要怎么?这是我们在使用B帧压缩时经常遇到的情况。...如果想在一个视频中快进快退,则在视频开始需要一个I帧,对吧? 假设你搜索到的是P帧或者B帧,但解码器已经从内存中删除了参考帧,你该怎么重建它们

2.9K20

(预编译)详解

3.2.3#define替换规则 在程序中扩展#define定义符号和, 需要涉及这几个步骤: 1.在调用,首先对参数进行检查,看看是否包含任何由#define定义的符号,如果是,他们首先被替换...注意: 1.参数和#define定义中可以出现其他的#define定义符号,但是对于,不能出现递归。...我们来思考另一个问题:如果两个参数的类型不一样,如何能用一条语句实现,比如,想要一个a为int 型,b 为float型,这样看来printf函数还是不能实现,难道还可以吗,没错,就是能一劳永逸!...2)##的作用: ##可以把位于两边的符号合成一个符号,允许定义从分离的文本片段创建标识符。 这句话是什么意思?...函数代码只出现于一个地方;每 次使用这个函数,都调用那个 地方的同一份代码 执 行 速

11110

requestAnimationFrame,终结定时器动画时代!

前言 风和日丽,饶有兴致,翻开之前写的一个简单的动画插件,发现是用定时器写的,但是作为有追求的前端,一个问题怎么能有一种解决方案?...传统动画实现 在我们前端的传统中,在古老的ie称霸的年代,我们想要实现动画,必须要借助setTimeout或setInterval这两个函数,下面我们来思考一个问题: 我们让一个数字从0开始逐渐变大,到达100在逐渐变小...,如此往复 那么,传统的定时器的写法应该怎么?...,当播放速率过快,便形成了动画效果,而我们的显示器在播放图片时,一般有一个播放的频率标准,我们叫做屏幕刷新率,即图像在屏幕上更新的速度,也即屏幕上的图像每秒钟出现的次数,的单位是赫兹(Hz)。...那requestAnimationFrame怎么使用

1.4K20

【编解码】从零开始写H264解码器(1) 总纲

有些小功能,知道是知道,并不知道的意义和作用,时间一长也会慢慢忘记。...反思了一下,或许很多东西,还是需要自己动手做一遍,会理解的更深更透彻一些,就像费曼学习法,你能讲出来,说明懂了,这个也一样,你能把功能实现出来,说明你真的明白了里面的流程和逻辑。...自己这个工程,应该就是单纯的一个学习工程吧,估计最后再怎么优化也达不到这些大名鼎鼎的工程的效果和功能,但是那又怎么过程和经历也很棒,不是吗?...如果知识点太大,可能会单独写一篇来总结。 2....解析协议里每个成员的意义 PPS: 解析协议里每个成员的意义 SEI:解析协议里每个成员的意义 SLICE Header:解析Header SLICE data:解析slice数据 MarcoBlock:怎么还原出一个块完整的

89010

管理者不做老好人

操作难度:★★★☆ 案例: 主管王最近遇到棘手的事情,他的下属小明童鞋上班经常迟到,做事也不认真,经常出现不该出现错误。...开始常给他暗示,希望他能够改正,但一直没有太大改善,那些显而易见的错误仍然经常出现,这样的状况让王非常苦恼,他也向经理反映了这个情况,经理给他的建议是:你应该找他认真谈谈,也许要给他严厉的批评,...本期话题:如何指出员工的错误,批评员工的不合理行为(或者技巧),甚至在对方不改变的情况下将其辞退? 本期案例问题:作为管理者面对这样的情况,你该怎么做?...然后自己提出改正措施,进行监督是否改正,如果没有改正,就按照团队,公司的规则,来执行; C:在有规则的情况下,就按照规则来走,违反了直接参考规则执行,但如果刚好是管团队,然后团队也没什么规则,都是属于"自由"状态,怎么做...,管理不仅关注过程,还关注这个过程,因为管理的是团队,是有相互影响的。

25230

原生JS灵魂之问(下), 冲刺进阶最后一公里(附个人成长经验分享)

够小吧,不过也很好理解,新生代中的变量存活时间短,来了马上就走,不容易产生太大的内存负担,因此可以将它设的足够小。 那好了,新生代的垃圾回收是怎么做的? 首先将新生代内存空间一分为二: ?...这个阶段暂且叫timer。 轮询(英文叫poll)阶段。因为在node代码中难免会有异步操作,比如文件I/O,网络I/O等等,那么当这些异步操作做完了,就会来通知JS主线程,怎么通知?...这样就把等待的时间充分利用了起来,提高了执行效率,但是同时又会产生一个问题,nodejs 应用程序怎么知道操作系统已经完成了 I/O 操作?...这解决的是多层嵌套的问题,那另一个问题,即每次任务执行结束后分别处理成功和失败的情况怎么解决的? Promise 采用了错误冒泡的方式。...那完成的东西放在哪? OK,这就得具体介绍一下这份知识体系了,放在了GitHub上,虽然是一个并不起眼的开源项目,但是也将是凝聚很长一段时间心血的系统建设工程。

1.9K10

TASK 6 resnet

的图像如下: 的导函数图像如下: 该函数的导数最大值为0.25,且当取值的绝对值变大,输出会变小。...2. resnet学习 2.1 提出背景 ResNet最根本的动机就是所谓的“退化”问题,即当模型的层次加深错误率却提高了。...上图所示的残差块能够明确地使完成这一点。 另外,resNet还采用了reLU方式激活,reLU函数在取值变大不会发生梯度变小的情况,所以也缓解了梯度消失。...2.3 两种Shortcut Connection方式 有人会问,如果F(x)和x的channel个数不同怎么办,因为F(x)和x是按照channel维度相加的,channel不同怎么相加?...正是因为虚拟机预先安装的cuda和cudnn版本不高,只能安装低版本的tf。

59040

基础渲染系列(七)——阴影

在逐步调试帧,你会看到此信息。你还可以看到阴影在实际投射阴影的对象之前出现。当然,这些错误只会在渲染帧出现。完成后,图像是正确的。 ?...这可以减少自阴影,但也会使阴影变小,并可能导致在阴影中出现孔洞。 那么最佳偏置设置是什么? 没有最佳设置。你必须自己进行调校。Unity的默认设置可能会起作用,但是它们也会产生不可接受的结果。...(没有AA,MSAA4,FXAA) 依靠图像后处理的抗锯齿方法(例如FXAA)不会出现此问题,因为它们是在渲染整个场景之后应用的。 这是否意味着无法将MSAA与定向阴影结合使用?...请注意,仅当同时定义了UNITY_NO_SCREENSPACE_SHADOWS和SHADOWS_NATIVE使用阴影坐标的Z分量。...在下面的代码中,仅显示了这四个示例中的第一个。 ? ? 5 点光源阴影 现在尝试点光源。当为点光源启用阴影,会遇到编译错误

3.9K30

常见的C编程段错误及对策

再有一点就是,参数出现错误并非本函数有问题,而是调用者传过来的实参有问题。assert 可以帮助我们定位错误,而不是排除错误。...但是,问题就来了,不管怎么调试,他所需要的这种字体效果总是不出来。在检查了他的代码之后,没有发现什么问题,于是单步调试。在观察这个结构体变量的内存,发现有几个成员的值为乱码。...这种错误经常是由于操作数组或指针出现“多1”或“少1”。...也许对于一般的应用软件来说,这个问题似乎不是那么突出,重启一下也不会造成太大损失。但是如果你开发的是嵌入式系统软件?比如汽车制动系统,心脏起搏器等对安全要求非常高的系统。...1、告老还乡求良田 怎么去理解这个内存分配和释放过程?先看下面这段对话: 万岁爷:爱卿,你为朕立下了汗马功劳,想要何赏赐啊? 某功臣:万岁,黄金白银,臣视之如粪土。臣年岁已老,欲告老还乡。

1.4K41

肝了三个视频:Rust 编程系列

之后,业余时间基本上都在更新在极客时间上的《Rust 第一课》。上个月终于结课,慢慢有更多业余时间得以继续更新公众号,以及做些视频。...非常希望通过视频,不仅介绍知识本身,还能把在 live coding 过程中做出的选择,无论是思路上的选择,设计上的选择,还是重构的选择给表现出来,这样对自己,对读者朋友们都更加有帮助。...大概一年前看的那个视频,受益匪浅。...希望通过这个系列,可以让你对编程不再畏惧。 不过凡事有两面。大家需要注意的是,编程是你撰写代码最后的手段。当一个功能可以用函数表达,不要用。...不要过分迷信于编译的处理,不要把当成提高性能的手段。虽然撰写并不困难,但会为别人理解你的代码,使用你的代码带来额外的负担。

53710

防御性编程

应用防御性编程技术,你可以侦测到可能被忽略的错误,防止可能会导致灾难性后果的“小毛病”的出现,在时间的运行过程中为你节约大量的调试时间。 ...防御性编程并不是: 检查错误 如果代码中存在可能出现错误的情况,无论如何你都应该检查这些错误。这并不是防御性编码。只是一种好的做法,是编写正确代码的一部分。...不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。 2)使用断言对函数的参数进行确认。 3)在编写函数,要进行反复的考查,并且自问:“打算做哪些假定?”...这个通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。...(在C中,ASSERT是而不是函数),使用ASSERT“断言”容易在debug输出程序错误所在。

1.3K80
领券