Talk is cheap, show me the values. 业务团队 要正视我们并不能实现所有的功能特性,进行引导而不是任其发展。事情很少会按计划发展,基于活动阶段的产品是一块搬不动的巨石。 Talk is cheap, show me the features. 产品迭代 采用短周期迭代方法开发完整的小产品,细化产品的愿景,总是将价值可能最大的任务列为下一个目标。 Talk is cheap, show me the deliverables. 测试开发 良好的过程控制可以有效地减少代码中的bug,产品的构建是由数量不断增长的能够正确运行的功能特性组成。 Talk is cheap, show me the codes. 敏捷管理 管理层从总体上决定要做什么,由谁来做,控制好自己所参与的产品和项目的数量。没有固定的目标,一切都是为了能够获得最好的结果。 Talk is cheap, show me the tests。
就突然想到,程序员的粉丝都是程序员,当一个程序员看另一个程序员的代码时...嗯,你懂得
做IT的,会写代码的都应该听说过这句名言,中文翻译:能说算不上什么,有本事就把你的代码给我看看。这句话是Linux 的创始人 Linus Torvalds 在 2000-08-25 给linux-kernel 邮件列表的一封邮件提到的。
由于内存和计算资源有限,很难在嵌入式设备上部署卷积神经网络(CNN)。特征图中的冗余是那些成功的CNN的重要特点,但很少在神经体系结构设计中进行研究。本文提出了一种新颖的Ghost模块,可以通过简单的操作生成更多的特征图。基于一系列内在的特征图,我们应用了一系列简单的线性变换以生成许多ghost特征图,这些ghost特征图可以充分揭示内部特征的信息。提出的Ghost模块可以作为即插即用组件来升级现有的卷积神经网络。Ghost boottlenecks 旨在堆叠Ghost模块,然后可以轻松建立轻量级的GhostNet。实验表明:我们的GhostNet可以实现比MobileNetV3更高的识别性能(例如75.7%top-1精度)。
随着越来越多人使用海外代理IP,随手一查,像 ipdodo、stormproxies、PYPROXY、LunaProxy、abcproxy、dataimpulse、proxy cheap 这一类的名字就蹦出来一堆
在前面一篇文章我们讲到了理解分布式一致性:Paxos协议之Multi-Paxos,本篇文章我会讲解Paxos协议的另外两个变种:Cheap Paxos和Fast Paxos。 Cheap Paxos Cheap Paxos 是Basic Paxos 的继承版本。其实所有的Paxos变种都来自与Basic Paxos,都是基于它来进行改进的。 那么Cheap Paxos有什么特点呢? 在Basic Paxos中,我们知道,共识如果想要正常进行的话,出错的节点数目必须小于n/2, 也就是说必须要有大于n/2的节点正常运行才能共识成功。 办法就是Cheap Paxos:我们在Cheap Paxos里面引入了辅助节点的概念,辅助节点只有在必须需要它来达成共识的情况下才会启动。 Message flow: Cheap Multi-Paxos 下图是3个正常节点+1个辅助节点的流程,如果系统规定的共识节点个数是3个,那么当一个正常节点挂掉之后,辅助节点会起来帮助完成共识工作。
毕竟,程序员更信奉那句名言:Talk is cheap. Show me the code.
+ ++ no 转换过的代码(仅限行) cheap-module-eval-source-map o ++ no 原始源代码(仅限行) eval-source-map – + no 原始源代码 cheap-source-map + o no 转换过的代码(仅限行) cheap-module-source-map o – no 原始源代码(仅限行) inline-cheap-source-map + o no 转换过的代码(仅限行 cheap-module-eval-source-map – 类似 cheap-eval-source-map,并且,在这种情况下,源自 loader 的 source map 会得到更好的处理结果。 inline-cheap-source-map – 类似 cheap-source-map,但是 source map 转换为 DataUrl 后添加到 bundle 中。 inline-cheap-module-source-map – 类似 cheap-module-source-map,但是 source mapp 转换为 DataUrl 添加到 bundle 中。
= self.cheap_operation[0] if relu: self.relu = nn.SiLU(inplace=False) else: _fuse_bn_tensor(self.cheap_operation[0], self.cheap_operation[1]) for conv, bn in zip(self.fusion_conv =self.cheap_operation[0].kernel_size, padding=self.cheap_operation groups=self.cheap_operation[0].groups, bias=True) self.cheap_operation.weight.data = kernel self.cheap_operation.bias.data = bias self.
PUT /logs/_doc/1 { "Name":"燕麦", "Desc":"燕麦商品描述", "Price":111, "Tags":["Breakfast","Carbon","Cheap PUT /logs/_doc/3 { "Name":"面包", "Desc":"牛奶商品描述", "Price":333, "Tags":["Breakfast","Barley","Cheap /logs/_doc/4 { "Name":"玉米", "Desc":"玉米商品描述", "Price":444, "Tags":["Breakfast","Vegetables","Cheap "Price": 111, "Tags": [ "Breakfast", "Carbon", "Cheap , "Price":111, "Items":{ "Name":"子名称", "Price":222 }, "Tags":["Breakfast","Carbon","Cheap
又出现了cheap operations,到底是啥?这个图并没有给答案,只告诉了大家cheap operations就是那个小扳手(皮...),继续看吧。 cheap operations反复出现多次,但是到底是什么操作,还是不知道,下面看第三个问题。 问题3:Linear transformations 和 Cheap operations 是什么? 其实,从上文就知道 linear operations 等价于 cheap operations,它们是一回事。 ghost-vgg16的第二个卷积部分的primary和cheap的卷积特征图如下: ? 在这里发现cheap conv中有死神经元,输出是全黑的,不知道是哪个地方出错了,是否是这里导致模型指标达不到论文的水平呢?
options.devtool.includes("inline"); const evalWrapped = options.devtool.includes("eval"); const cheap = options.devtool.includes("cheap"); const moduleMaps = options.devtool.includes("module"); true : cheap ? false : true, columns: cheap ? module: 包含 loader 直接转换的 sourcemap(比如 jsx to js ,babel 的 sourcemap),否则无法定义源文件 cheap: 该字段影响两个地方,一个当不包含module 字段且不包含cheap时与包含module控制功能生效;另一个是决定了定位时是否映射定位到对应列,包含则不映射定位。
它有很多选择,各有优劣: devtool build rebuild production quality eval +++ +++ no generated code cheap-eval-source-map + ++ no transformed code (lines only) cheap-source-map + o yes transformed code (lines only) cheap-module-eval-source-map 个人建议:开发环境使用 cheap-module-eval-source-map ;开发环境使用 cheap-module-source-map 。 ", // 没有模块映射(module mappings)的 SourceMap 低级变体(cheap-variant) // devtool: "cheap-module-source-map", // 有模块映射(module mappings)的 SourceMap 低级变体 devtool: "cheap-module-eval-source-map", }; webpack-dev-server
官网一共提供了多种Sourcemap模式:[官网链接](Devtool | webpack 中文文档 (docschina.org)) 这么多种配置项其实只是五个关键字 eval、source-map、cheap 下面列出它们的意义: 「关键字」 「含义」 特点 source-map 产生.map 文件 定位信息最全,但也.map 文件最大,效率最低 eval 使用 eval 包裹模块代码 利用字符串可缓存从而提效 cheap sourcemap 精准度降低换取文件内容的缩小 module 包含 loader 的 sourcemap(比如 jsx to js ,babel 的 sourcemap),否则无法定义源文件 解决对于使用cheap cheap-source-map module.exports = { // 开启 source map // 生产环境一般不开启 sourcemap devtool: ' cheap-module-source-map Webpack会利用loader将所有非js模块转化为webpack可处理的js模块,而增加上面的cheap配置后也不会有loader模块之间对应的sourceMap
博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限,如果发现错误,一定要及时告知作者哦 package book; /** * truth:talk is cheap, show me the code * * @author KC萧寒 * @description * @createDate 我们使用userSized变量记录书架上的已有的书籍 package booklist; import book.Book; /** * truth:talk is cheap, show me package operation; import booklist.BookList; /** * truth:talk is cheap, show me the code * * @author package user; import booklist.BookList; import operation.IOperations; /** * truth:talk is cheap, show
Webpack中配置source map是devtool字段,有很多不同配置,比如常用的source-map、eval-source-map、cheap-module-source-map等。 去官网看,那么多配置其实就是几个关键字的各种组合: source-map、cheap、eval、module、hidden、nosource、inline。 source-map:产生.map文件 eval:产生的代码用eval包裹,会在末尾追加注释 //@ sourceURL,通过sourceUrl定位原始代码,不产生.map文件,而且是转换后的代码 cheap 我是觉得,常用的source-map、cheap、eval知道一下就好,如果真的线上环境需要的话,建议就是配置cheap-module-source-map,定位到行,然后体积也会小一些,够用,开发的话配置 cheap-module-eval-source-map,全一些,列当然也是没什么用。
4.3.1 cheap 关键字 作用: 顾名思义,低配的。不包含列信息,也不包含loader的sourcemap。可搭配大部分其他关键字使用。 4.3.2 module 关键字 module关键字仅在 cheap 关键字存在的情况下使用。用来提升映射信息品质,输出模块映射的行信息。 devtool: "cheap-module-source-map" ? image.png ? cheap 降低映射信息品质,没有列信息,没有loader的映射信息 module 必须与cheap搭配,仍然没有列信息,但是会映射loader的行信息 基于以上特征,我们在生产和开发中的最佳搭配模式如下 : 开发:cheap-module-eval-source-map 生产:cheap-module-source-map 补充 原理后续研究一下。
.*.food | | my.topic | test.fanout | xtest | | my.topic | test.topic | cheap.# | +--- test.topic | 0 | +-------------+----------+ [root@h102 rabbitmq]# rabbitmqadmin publish routing_key=cheap.soft.food test.topic | 1 | +-------------+----------+ [root@h102 rabbitmq]# rabbitmqadmin publish routing_key=cheap.hard.drink test.topic | 2 | +-------------+----------+ [root@h102 rabbitmq]# rabbitmqadmin publish routing_key=cheap.hard.food
而华为的Ghostnet则是聚焦于「特征图冗余」,希望通过少量的计算(即论文里的cheap operation)得到大量特征图。 Resnet-50模型进行了特征图可视化 这里作者标出了三组特征图,认为这些特征图彼此是类似的,我们可以用一些cheap operation来得到 因此我们从这里入手,以一种更高效的方式生成这些"Ghost out = torch.cat([x1,x2], dim=1) return out[:,:self.oup,:,:] 代码中primary_conv就是常规的卷积,而cheap 最后这里的近似做个说明, dxd计算量于k*k类似,而c代表的通道数远大于s,因此最终近似结果为s 3.1 其中的一个疑问 那么既然前面说了cheap operation是个线性变换,但是在代码实现中 着眼于特征图生成,用更cheap的Depthwise卷积来进一步生成特征图。论文中实验结果也是十分理想的,超越了大部分移动端SOTA网络。」
操作对于GPU既不cheap也不够高效。 我们首先定义一个包含n个block的阶段,其输出表示 ,我们将其中的"complicated"特征表示为 ,"ghost"特征表示为 ( ),分别通过如下方式生成: 注:这里的C表示Cheap 尽管简单特征可以通过cheap操作生成,然而 可能缺乏需要多层才能提取的深度信息。 为补偿信息缺失,我们提出采用"complicated"分支的中间特征增强cheap操作的表达能力。 从"complicated"分支,我们将可收集到的特征表示为 ,这些中间特征可以为cheap操作提供丰富的信息补充。 上表给出了本文所构建的G-GhostNet架构配置,它采用 卷积作为cheap操作,G-Ghost的超参 ,bottleneck的扩展比例设为3,同时每个模块中均使用了SE模块,激活函数采用了最简单的