首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

14. 错误分析:查看开发集样本来评估ideas

当你使用猫咪APP的时候,注意到一些被错误,识别成猫咪的狗样本。一些狗长的像猫! 于是一个团队成员建议和第三方软件进行合作,使系统可以更好的处理狗样本。这些改变需要花一个月的时间,并且团队成员热衷于这一方案,你会让他们这样做吗? 在为这个任务投资一个月前,我建议你首先评估一下它实际上会提高多少系统 的准确率。然后你才能理性的选择是否值得花费这一个月的开发时间。 具体来说,你可以做这些事情: 1. 获取100个系统分类错误的样本 2. 手动查看这些样本,计算其中有多少比例是狗的图片 查看错误分类样例的这一过程称为:错误分析(error analysis)。在该案例中,如果你发现只有5%的错误分类图像是狗,那么无论你在狗的问题上做多少改进,可能你都无法消除这5%的错误。换句话说,这5%是上述建议能够达到的改进上限。因此,整个系统当前的准确率是90%(误差10%),这一改进可能得到最多90.5%的准确率(或9.5%的错误率,比原来的错误率少5%)。 相反,如果你发现50%的错误图像都是狗,那么你最好找一个第三方进行合作。它可以将准确率从90%提升到95%(误差相对减少50%,从10%降到5%)。 这种简单的错误分析的计算过程可以给你一个快速的方法来评估为“狗”的问题加入第三方软件是否值得。它为你决定是否做出这笔投资提供了一个定量的基准。 错误分析通常可以帮你找出不同想法有哪些前景。我看到很多工程师不愿意进行错误分析。相比于质疑这个想法是否值得花时间投入,直接实现一个然后查看效果可能会更好,这是一个常见的错误:可能会导致你的团队花费一个月的时间只能带来很少的收益。 手动检查100个样本不会花费太长的时间。即使你每分钟只看一张图,不到两小时你就可以完成,这不到两小时的时间可以为你节约一个月的白白努力时间,值得花费。 错误分析(error analysis)是指检测开发集中算法错误分类样本的过程,以便了解错误的深层原因。它不仅可以帮你重点发展你的项目,正如这个例子所述,还可以给你一些新的启发。下节将讨论该内容。接下来几个章节还将介绍一些错误分析的最佳实践。

08

资源分享之计算机网络虚拟实践

喜欢整理一些资源,之后放在知识库或是资源站里,等待着有缘人去发现,可等了许久发现:有的人需要它,可就是找不到;有些人不需要它,却误打误撞地看到了。反思之后以为,做了一些事情就要学会声明,比如我个人就可以直接发给我认为需要的人,或者像现在一样,发一篇文章,需要的同学可以收藏。 计算机网络是计算机核心课程之一,人们无时无刻不在享受计算机网络各种协议带来的便利,可这么庞大而又错综复杂的网络,是如何保证高校可用的呢?我的设备又是怎么在茫茫人海中找到我想要联系的那个她的呢?这些都可以在计算机网络的学习中找到答案。 学《计算机网络》这门课是在2018年年底的样子,到了2020年这门课已经成为省双一流建设学科了,虽然不知道有多厉害,但听其他老师说这门课有一个很庞大的备课团队,分工明确,水平极高。

03

Oracle的AWR报告分析

* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。 如何分析: * 在看awr报告的时候,我们并不需要知道所有性能指标的含义,就可以判断出问题的所在,这些性能指标其实代表了oracle内部实现,对oracle理解的越深,在看awr报告的时候,对数据库性能的判断也会越准确 * 在看性能指标的时候,心里先要明白,数据库出现性能问题,一般都在三个地方,io,内存,cpu,这三个又是息息相关的(ps:我们先假设这个三个地方都没有物理上的故障),当io负载增大时,肯定需要更多的内存来存放,同时也需要cpu花费更多的时间来过滤这些数据,相反,cpu时间花费多的话,有可能是解析sql语句,也可能是过滤太多的数据,到不一定是和io或内存有关系了 * 当我们把一条sql送到数据库去执行的时候,我们要知道,什么时候用到cpu,什么时候用到内存,什么时候用到io 1. cpu:解析sql语句,尝试多个执行计划,最后生成一个数据库认为是比较好的执行计划,不一定是最优的,因为关联表太多的时候,数据库并不会穷举所有的执行计划,这会消耗太多的时间,oracle怎么就知道这条数据时你要,另一个就不是你要的呢,这是需要cpu来过滤的 2. 内存:sql语句和执行计划都需要在内存保留一段时间,还有取到的数据,根据lru算法也会尽量在内存中保留,在执行sql语句过程中,各种表之间的连接,排序等操作也要占用内存 3. io:如果需要的数据在内存中没有,则需要到磁盘中去取,就会用到物理io了,还有表之间的连接数据太多,以及排序等操作内存放不下的时候,也需要用到临时表空间,也就用到物理io了 这里有一点说明的是,虽然oracle占用了8G的内存,但pga一般只占8G的20%,对于专用服务器模式,每次执行sql语句,表数据的运算等操作,都在pga中进行的,也就是说只能用1.6G左右的内存,如果多个用户都执行 多表关联,而且表数据又多,再加上关联不当的话,内存就成为瓶颈了,所有优化sql很重要的一点就是,减少逻辑读和物理读

01
领券