向Linus学习,让代码具有good taste】的更多相关文章

在最近关于 Linus Torvalds 的一个采访中,这位 Linux 的创始人,在采访过程中大约 14:20 的时候,提及了关于代码的 “good taste”.good taste?采访者请他展示更多的细节,于是,Linus Torvalds 展示了一张提前准备好的插图. 他展示的是一个代码片段.但这段代码并没有 “good taste”.这是一个具有 “poor taste” 的代码片段,把它作为例子,以提供一些初步的比较. 这是一个用 C 写的函数,作用是删除链表中的一个对象,它包含有…
---恢复内容开始--- 20145314郑凯杰 <Java程序设计>第2周学习总结 代码开始! 教材学习内容总结 跟着教材的顺序开始总结我学过的内容: 1编辑.编译.运行教材上代码 这部分的所有内容在我等一会的博客内容中会出现,也会将代码托管到开源中国. 运行结果1 10与5的关系 运行结果2 2的次方.我觉得除了上课和卢晓明说的那种改进方法之外,留着最后一个number=也不是一种方法,结果是一样的. 给个代码吧: package adc; public class adc { publi…
C++入职学习篇--代码规范(持续更新) 一.头文件规范 在头文件中大家一般会定义宏.引入库函数.声明.定义全局变量等,在设计时最后进行分类,代码示范(自己瞎琢磨的,请多多指点): #ifndef TEXT_H #define TEXT_H //------------------------------------------------ #include <string> #include <stdio.h> //--------------------------------…
Guava 已经学习的代码整理 Guava 依赖: compile group: 'com.google.guava', name: 'guava', version: '18.0' 以下是我自己在开发过程中使用到的谷歌 Guava 的一些例子,有些例子看起来确实没什么用,希望各位朋友们不吝赐教. 参考资料: 1.后悔当初的5年<Google Guava学习>专题 2.蓝学网 Guava 教程 3. 创建不可变集合 ImmutableSet<Integer> numbers = I…
背景 这一篇我们从基础的深度ctr模型谈起.我很喜欢Wide&Deep的框架感觉之后很多改进都可以纳入这个框架中.Wide负责样本中出现的频繁项挖掘,Deep负责样本中未出现的特征泛化.而后续的改进要么用不同的IFC让Deep更有效的提取特征交互信息,要么是让Wide更好的记忆样本信息 Embedding + MLP 点击率模型最初在深度学习上的尝试是从简单的MLP开始的.把高维稀疏的离散特征做Embedding处理,然后把Embedding拼接作为MLP的输入,经过多层全联接神经网络的非线性变…
这一节我们总结FM三兄弟FNN/PNN/DeepFM,由远及近,从最初把FM得到的隐向量和权重作为神经网络输入的FNN,到把向量内/外积从预训练直接迁移到神经网络中的PNN,再到参考wide&Deep框架把人工特征交互替换成FM的DeepFM,我们终于来到了2017年... FNN FNN算是把FM和深度学习最早的尝试之一.可以从两个角度去理解FNN:从之前Embedding+MLP的角看,FNN使用FM预训练的隐向量作为第一层可以加快模型收敛.从FM的角度来看,FM局限于二阶特征交互信息,想要…
这一节我们总结FM另外两个远亲NFM,AFM.NFM和AFM都是针对Wide&Deep 中Deep部分的改造.上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM就带着element-wise(hadamard) product来了.AFM则是引入了注意力机制把NFM的等权求和变成了加权求和. 以下代码针对Dense输入感觉更容易理解模型结构,针对spare输入的代码和完整代码…
之前总结了PNN,NFM,AFM这类两两向量乘积的方式,这一节我们换新的思路来看特征交互.DeepCrossing是最早在CTR模型中使用ResNet的前辈,DCN在ResNet上进一步创新,为高阶特征交互提供了新的方法并支持任意阶数的特征交叉. 以下代码针对Dense输入更容易理解模型结构,针对spare输入的代码和完整代码…
xDeepFM用改良的DCN替代了DeepFM的FM部分来学习组合特征信息,而FiBiNET则是应用SENET加入了特征权重比NFM,AFM更进了一步.在看两个model前建议对DeepFM, Deep&Cross, AFM,NFM都有简单了解,不熟悉的可以看下文章最后其他model的博客链接. 以下代码针对Dense输入更容易理解模型结构,针对spare输入的代码和完整代码 https://github.com/DSXiangLi/CTR xDeepFM 模型结构 看xDeepFM的名字和De…
代码块在其他的语言中都或多或少接触过一些,如perl中sort{$a<=>$b}keys,传入代码块实现按数值排序,在swift中用到闭包,更加深入学习到training closure.capturing value等代码风格,对代码块有了深入的了解,并且意识到代码块是引用类型(Reference Type),和Value Type有所区别,意识到代码块和类.方法等的相似之处. 在学习Ruby的过程中,对代码块的理解更加加深一步,不仅仅是简化代码的功能,还涉及到作用域.可调用对象等知识. 代…