02 2023 档案
摘要:通信 一、通信机制 分布式机器学习和单机的最大区别就是需要协同多个机器来共同完成模型的训练任务。分布式机器学习一般的分布式计算相比,主要有两个重要的不同点,1)机器学习算法是迭代式的,所以通信频率往往会很高;2)机器学习的优化算法对数据的容错性很高,即少量的数据错误和丢失并不会影响最后的结果,反而可
阅读全文
摘要:一、数据划分 就数据划分而言,一般有两个维度,一个是对训练样本进行划分,另一个是对每个特征的维度进行划分; 训练样本的划分一般有两种方式:1)第一种是基于随机采样的方法,即有放回的随机采样(有放回才能等价于采样的数据和整体是独立同分布的),对每一个worker采样足够的训练数据;2)第二种是基于置乱
阅读全文
摘要:1. 数据库类型 1.1 基本概念 关系型数据库 - sql 操作数据必须要使用sql语句 数据存储在磁盘 存储的数据量大 举例: mysql oracle sqlite - 文件数据库 sql server 非关系数据库 - nosql 操作不使用sql语句 命令 数据默认存储在内存 速度快, 效
阅读全文
摘要:首先什么是架构,作者引了一个人类集体生活的例子,形象生动,容易理解,由这个例子,把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。通过例子,作者解
阅读全文
摘要:模式中的开-闭原则 1.工厂方法(简单工厂 )2. 抽象工厂 3. 建造者模式1.桥接模式 2.外观模式1.中介者模式 2.迭代器模式 3.策略模式(完美支持) 设计模式中,对迪米特法则进行应用的设计模式有外观模式和中介者模式 设计模式的两大主题:系统复用与系统扩展 填空题 1、设计模式分为创建
阅读全文
摘要:代码实现: 在标准大气压下,水在 0 ~ 100 度之间时,会呈现液态;在 0 度以下会变成固态;100 度以上会变成气态。 物质在不同的条件下呈现不同的状态,对象可能也会像这样存在很多种状态,在不同的状态下可能会有不同的行为,可以通过状态模式来实现这样的效果。 下面以水的三种状态对应的不同行为来介
阅读全文
摘要:准备一组算法,并将每一个算法封装起来,使得它们可以互换 代码实现: 生活中会面临很多抉择,每一个抉择会导向不同的结果,这时就会出现策略的选择。 程序中也是一样,而且更加复杂,生活中的抉择一般只有几个,但程序中可能有十多个甚至数十个,也就是我们常用的 if-else 或者 switch。当只有少量选择
阅读全文
摘要:代码实现: 生活中经常会有这样的情况,同样的事物不同人有完全不同的感受,正所谓一千个读者一千个哈姆雷特。 程序中也是一样,往往不同的访问者会有不同的行为以及结果,这就是访问者模式。 这里以李白和苏轼对庐山不同的感受为例介绍访问者模式:1、定义庐山/** * 庐山 */public class L
阅读全文
摘要:程序虽然来源于生活,有时候也能高于生活,比如遗憾,在程序中就是能补救的。游戏中有存档和读档,设计模式中也有备忘录模式可以实现。 备忘录模式就是为程序提供了一个可回溯的时间节点,如果程序在运行过程中某一步出现了错误,就可以回到之前的某个被保存的节点上重新来过(就像艾克的大招)。平时编辑文本的时候,当编
阅读全文
摘要:观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。 在 Java 中,一个对象的状态发生改变,就可能会影响到其他的对象,与之相关的对象可能也会联动的进行改变。 比如监听器机制,当具体的事件触发时,可以
阅读全文
摘要:代码实现: 一提到中介,大家都非常熟悉,生活中最常见的就是房屋中介。 虽然中介要收取一定费用,但却能给房东和租客都提供大量遍历,房东只需要把房屋信息提供给中介,租客也只需要将租金交给中介,由中介处理中介环节,给两方都提供了便利。这就是中介模式的应用。 这里以房屋中介来介绍中介模式:1、定义用户(房
阅读全文
摘要:责任链,即责任的链条,在生活中是很常见的。 比如在工作中提交审批,会经历责任人的层层审批,最后才会通过,这一审批流程就是责任链。 再比如,JavaWeb 中学习的 Filter 过滤器,正是采用的责任链模式,通过将请求一级一级不断向下传递,来对所需要的请求进行过滤和处理。 运用责任链模式,可以让整个
阅读全文
摘要:现在各大电子厂商都在推智能家居,即可以通过手机这一个终端控制多个家用电器,比之前的单个设备智能由对应遥控器控制的方案要方便很多。这其实就是命令模式的应用。 命令模式将请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 代码
阅读全文
摘要:迭代器模式是 Java 中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,而不需要知道集合对象的底层表示。 迭代器是学习 Java 语言的基础,没有迭代器,集合类的遍历就成了问题,正是因为有迭代器的存在,才能更加优雅的使用 foreach 语法。 代码实现: Java 中的增强 for 循环
阅读全文
摘要:提高了代码的复用性 和 扩展性 比如去医院看病,挂号和排队这两个步骤是固定的,不管是什么病到了医院都得遵循这两个步骤;但是后续的检查和治疗这两个步骤是变化的,不同的病需要采用不同的检查方式,然后采取不同的治疗手段。 针对这一情况,在设计去医院看病这一程序时可以这样实现:定义一个抽象类,固定的步骤用普
阅读全文
摘要:就比如编译器可以将源码编译解释为机器码, 让 CPU 能进行识别并运行。解释器模式的作用其实与编译器一样,都是将一些固定的语法进行解释,构建出一个解释句子的解释器。 解释器是一个语法分析工具,它可以识别句子语义,分离终结符号和非终结符号,提取出需要的信息,针对不同的信息做出相应的处理。其核心思想是识
阅读全文
摘要:享元模式 Flyweight Pattern 大家都知道围棋有黑白子,用程序定义一局围棋时,如果给每颗黑子和每颗白子都定义一个对象,那一局围棋会产生大量的对象,这样有必要吗?每颗黑子都是类似的,每颗白子也是类似的,完全可以只定义一颗黑子对象和一颗白子对象,其余的棋子都复用这两个对象,这样不仅节省空间
阅读全文