自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kongshuchen的博客

一个菜鸟中的菜鸟

  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 Pytorch学习笔记(六)

(10)使用Pytorch实现ResNet ResNet要解决的问题 深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好,但是事实上却不是这样,常规的网络的堆叠(plain network)在网络很深的时候,效果却越来越差了。 其中的原因之一即是网络越深,梯度消失的现象就越来越明显,网络的训练效果也不会很好。 但是现在浅层的网络(shallower

2017-05-16 16:40:24 19344 7

原创 Pytorch学习笔记(五)

(9)在Pytorch中使用LSTM 学习Pytorch的RNN使用时最好去官方文档看一下API是如何使用的:(http://pytorch.org/docs/nn.html#recurrent-layers)。一个需要注意的地方是在Pytorch中RNN的输入input的shape的三维分别是 (seq_len, batch, input_size),隐藏层h_0的shape三维分别是 (n

2017-05-16 14:48:37 10237 2

原创 Pytorch学习笔记(四)

(8)迁移学习(Transfer Learning) 接下来将会使用ResNet进行迁移学习,完成图片分类。目前迁移学习的方式主要有两种,一种是fineturning,就是只改变pretrain网络最后一层或者几层的网络结构,对于pretrain网络的全局参数在原来的基础上进行微调;另外一种是将ConvNet当做一个特征提取器(Feature Extractor),结构方面只改变pretrain网

2017-05-16 10:05:13 6937 3

原创 Pytorch学习笔记(三)

(6)在Pytorch中实现自己定义的层: 在Pytorch中实现自己定义的层需要继承torch.autograd.Function类,然后实现其中的forward和backward方法,代码如下所示:# -*- coding:utf-8 -*-import torchfrom torch.autograd import Variableclass MyReLU(torch.autograd.

2017-05-16 00:15:27 2846

原创 Pytorch学习笔记(二)

(3)批训练包装器DataLoader Pytorch 中提供了一种帮你整理你的数据结构的好东西, 叫做 DataLoader, 我们能用它来包装自己的数据, 进行批训练.import torchimport torch.utils.data as DataBATCH_SIZE = 5x = torch.linspace(1, 10, 10)y = torch.linspace(10, 1,

2017-05-15 23:00:57 3090

原创 Pytorch学习笔记(一)

最近,Torch7 团队开源了 PyTorch。据该项目官网介绍,PyTorch 是一个 Python 优先的深度学习框架,能够在强大的 GPU 加速基础上实现张量和动态神经网络。 官网:http://pytorch.org/ github:https://github.com/pytorch/pytorch 官方文档:http://pytorch.org/docs/tensors.html

2017-05-15 21:34:48 22126 1

原创 jvm入门(4)

1.垃圾收集器: 在java虚拟机中,垃圾回收器不仅仅只有一种,什么情况下该使用哪种,对性能又有什么样的影响,这都是我们需要了解的。 串行垃圾回收器 并行垃圾回收器 CMS回收器(主流) G1回收器2.串行垃圾回收器 串行回收器是指使用单线程进行垃圾回收的回收器。每次回收时,串行回收器只有一个工作线程,对于并行能力较弱的计算机来说,串行回收器的专注性和独占性往往有更好的性能表现。串行回收

2016-08-09 16:58:18 482

原创 jvm入门(3)

1.垃圾回收概念及其算法: 谈到垃圾回收(Garbage Collection,简称GC),需要先澄清什么是垃圾,类比日常生活中的垃圾,我们会把他们丢入垃圾桶,然后倒掉。GC中的垃圾,特指存于内存中、不会再被使用的对象,而回收就是相当于把垃圾“倒掉”。 垃圾回收有很多种算法:如引用计数法、标记压缩法、复制算法、分代、分区的思想。2.垃圾收集算法 (1)引用计数法: 引用计数法:这是个比较古老

2016-08-09 15:44:08 349

原创 jvm入门(2)

1.java虚拟机参数 在虚拟机运行的过程中,如果可以跟踪系统的运行状态,那么对于问题的故障排查会有一定的帮助,为此,虚拟机提供了一些跟踪系统状态的参数,使用给定的参数执行java虚拟机,就可以在系统运行时打印相关日志,用于分析实际问题。我们进行虚拟机参数配置,其实主要就是围绕着堆、栈、方法区进行配置。2.堆分配参数 1) -XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会

2016-08-09 10:28:05 689

原创 jvm入门(1)

1.java虚拟机原理: 所谓虚拟机,就是一台虚拟的机器。它是一款软件,用来执行一系列虚拟计算机指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机,大名鼎鼎的Visual Box、VMare就属于系统虚拟机,他们完全是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。程序虚拟机典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在java虚拟机中执行的指令会成为java字节码指令

2016-08-09 08:57:07 1175

原创 备忘录模式(memento)

备忘录模式的核心: 就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。 备忘录模式的结构: 1.源发器类Originator:负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态; 2.备忘录类Memento:负责存储Originator对象的内部状态,并可以防止Originator以外的其他对象访问备忘录Memento; 3.

2016-07-29 21:51:01 336

原创 观察者模式(Observer)

观察者模式主要用于1:N的通知。当一个对象(目标对象Subject或Objservable)的状态变化时,他需要及时告知一系列对象(观察者对象Observer),令它们做出响应。通知观察者的方式: 1.推:每次都会把通知以广播的形式发送给所有观察者,所有观察者只能被动的接收。 2.拉:观察者只要知道有情况即可。至于什么时候获取内容,获取什么内容,都可以自主决定。下面用代码来说明: 1.创建目标

2016-07-29 18:27:55 357

原创 状态模式(state)

状态模式的核心:用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。应用场景:当需要频繁的修改状态时,考虑使用状态模式。状态模式的结构: 1.Context环境类:环境类中维护一个State对象,它是定义了当前的状态; 2.State抽象状态类; 3.ConcreteState具体状态类:每一个类封装了一个状态对应的行为。下面用代码来说明: 1.创建State接口与不同的State

2016-07-29 17:29:56 277

原创 模板方法模式(template method)

模板方法模式是编程中常用的模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。模板方法模式的核心: 处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用工厂方法模式,将这个节点的代码实现转移给子类完成。即:处理步骤父类中定义好,具体实现延迟到子类中定义。下面用代码说明:public

2016-07-29 16:18:14 411

原创 策略模式(strategy)

策略模式对应于解决某一问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便的更换算法或者增加新的算法,并且由客户端选择调用哪个算法。 本质:分离算法,选择实现。下面是代码实现: 1.首先,创建Strategy接口:public interface Strategy { public double getPrice(double standardPrice);}

2016-07-29 15:33:42 454

原创 命令模式(command)

命令模式:将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作Action模式,事务Transaction模式。命令模式的结构: 1.Command 抽象命令类 2.ConcreteCommand 具体命令类 3.Invoker 调用者/请求者:请求的发送者,它通过命令对象来执行一个请求。一个调用者并不需要再设计的

2016-07-29 14:29:25 365

原创 中介者模式(Mediator)

中介者模式的核心:如果一个系统中对象之间的联系呈现为网状结构,对象之间存在大量多对多关系,将导致关系及其复杂,这些对象称为“同事对象”。这里可以引入一个中介者对象,使各个同事只跟中介者对象打交道,将复杂的网络结构化解成星型结构。用公司部门管理的例子来说明: 1.创建中介者接口与部门接口:public interface Mediator { void register(String dnam

2016-07-29 13:33:12 387

原创 迭代器模式(Iterator)

迭代器模式的定义:提供一种可以遍历聚合对象的方式,又称为:游标cursor模式。其中聚合对象负责存储数据;迭代器负责遍历数据。下面用代码来实现自定义的迭代器: 1.创建迭代器接口:/** * 自定义的迭代器接口 * @author Administrator * */public interface MyIterator { void first(); //将游标指向第一个

2016-07-29 11:32:55 279

原创 责任链模式(chain of responsibility)

责任链模式定义:将能够处理同一类请求的对象连成一条链,所提及的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。责任链属于行为型模式的一种。行为型模式关注系统中对象之间的相互交互,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责。下面使用公司请假的例子来说明: 1.创建请假请求者public class LeaveRequest

2016-07-29 11:10:08 231

原创 享元模式(FlyWeight)

享元模式使用场景: 内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的对象,我们可以用通过享元模式,节省内存。享元模式的核心: 1.享元模式以共享的方式高效的支持大量细粒度对象的重用。 2.享元对象能做到共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而改变;外部状态:不可以共享,会随环境变化而改变。享元模式的实现: 1.FlyWeight享元工厂类:创建并

2016-07-29 10:10:17 395

原创 外观模式

首先介绍一下迪米特法则(最少知识原则): 一个软件实体应当尽可能少的与其他实体发送相互作用。 外观模式就是迪米特法则的体现,它为系统提供统一的入口。封装子系统的复杂性,便于客户端调用。用代码来说明: 1.如果有人需要开店,那么他就需要到工商局,税务局,银行,质监局办理各种手续,创建上面的各种类:public interface 工商局 { void checkName(); //核

2016-07-29 08:54:31 222

原创 装饰模式(decorator)

装饰模式(decorator)也叫包装器模式(Wrapper)。它可用降低系统的耦合度,可用动态的增减或者删除对象的职责,并使得需要装饰的具体构建类和具体装饰类可以独立变化,以便增加新的具体构建类和具体装饰类。装饰模式的职责: 1.动态的为一个对象增加新的功能; 2.装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时可以避免

2016-07-29 08:16:56 248

原创 组合模式(composite)

组合模式的使用场景: 把部分和整体的关系用树型结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。 组合模式的核心: 抽象构件(Component)角色:定义了叶子和容器的共同点; 叶子(Leaf)构件角色:无子节点; 容器(Composite)构件角色:有容器特征,可以包含子节点;下面用代码来说明: 创建各种抽象组件:/** * 抽象组件 * @author Admi

2016-07-28 23:50:19 306

原创 桥接模式

桥接模式的要点:处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。 首先看一个常见的例子: 未使用桥接模式的类图如下: 实现的代码如下:public interface Computer { void sale();}class Desktop implements Computer { @Override public

2016-07-28 22:05:57 391

原创 代理模式(Proxy)二 动态代理

介绍一下jdk自带动态代理。 java.lang.reflect.Proxy和java.lang.reflect.InvocationHandler 使用动态代理,还可以完成对实现了某些接口的类的特定方法进行改造。 下面用代码来说明: 1.首先还是创建Star接口和真实明星的对象:package com.bjsxt.proxy.dynamicProxy;public interface St

2016-07-28 16:46:22 319

原创 代理模式(Proxy)一 静态代理

代理模式的作用:通过代理,控制某个对象的访问,可以详细的控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理,即AOP的微观实现。代理模式也是AOP编程的核心实现机制。 代理模式的核心角色: 1.抽象角色:定义代理角色和真实角色的公共对外方法; 2.真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。 3.代理角色:实现抽象角色,是真实角色

2016-07-28 16:35:48 413

原创 适配器模式(Adapter模式)

适配器模式也是结构型模式的一种。 结构型模式的核心作用是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。 结构型模式的分类有: 1.适配器模式,代理模式,桥接模式; 2.装饰模式,组合模式,外观模式,享元模式;适配器模式可以将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 适配器模式中的角色有

2016-07-28 15:48:24 513

原创 原型模式深入--使用序列化机制实现对象的深克隆

其实对象的深克隆还可以通过序列化来实现,直接上代码,对象使用的还是之前的sheep对象,但是要实现Serializable的接口:public class Client3 { public static void main(String[] args) throws CloneNotSupportedException, Exception { Date date = new

2016-07-28 12:54:54 936

原创 原型模式(Prototype)

原型模式的要点: 1.如果通过new去产生一个对象需要非常繁琐的数据准备和访问权限,则可以使用原型模式; 2.其实原型模式就是java中的克隆技术,以某个对象为原型,复制出新的对象。显然,新的对象具备原型对象的特点。优势有:效率高(直接克隆,避免了重新执行构造过程的步骤)。 3.克隆类似于new,但是不同于new。new创建新的对象属性采用的是默认值。克隆出的对象属性完全和原型对象相同。并且克

2016-07-28 12:08:52 341

原创 建造者模式

建造者模式的本质: 1.分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。 2.由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法与装配算法的解耦,实现了更好的复用。下面用建造飞船的例子来

2016-07-28 11:07:47 305

原创 工厂模式三 抽象工厂模式

抽象工厂模式可以用来生产不同产品族的全部产品。(对于新增加的产品,无能为力;但是支持增加产品族) 抽象工厂模式其实是工厂方法模式的升级版本,在有多个业务品种和分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方案。首先创建发动机引擎的接口与不同层次引擎的实现类:public interface Engine { void run(); void start();}//高端引

2016-07-28 10:02:16 208

原创 工厂模式二 工厂方法模式

工厂方法模式的要点: 1.为了避免简单工厂模式的缺点,不完全满足开闭原则; 2.工厂方法模式与简单工厂模式最大的不同在于,简单工厂模式只有一个(对于一个项目或一个模块而言)工厂类,而工厂方法模式有一组实现了相同接口的工厂类; 首先还是写一个Car的接口和两个实现类:public interface Car { void run();}public class Audi impleme

2016-07-28 09:39:25 339

原创 工厂设计模式一 简单工厂模式

工厂设计模式实现了创建者和调用者的分离。 类别: 1.简单工厂模式; 2.工厂方法模式; 3.抽象工厂模式;遵循的设计原则: 1.OCP(开闭原则,Open-Closed Principle):一个软件的实体应当那个对扩展开放,对修改关闭; 2.DIP(依赖倒置原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程; 3.LoD(迪米特法

2016-07-28 09:23:36 271

原创 Spark的job触发流程原理与stage划分算法分析

Spark的application中有多个action操作,每个action操作都会触发RDD的runJob操作,每个job以action操作为界限,而RDD的runJob则在SparkContext的runJob中调用,SparkContext的runJob底层会调用dagScheduler的runJob方法。 在DAGScheduler中,会将每个job划分成多个stage,每个stage会创

2016-07-26 15:28:49 4069

原创 Spark的worker运行分析

Master在启动的时候,会调用LaunchDriver和LaunchExecutor方法,要求Worker启动Driver和Executor。 在Worker内部,接收到消息后,会调用DriverRunner,它的内部启动了一个线程,去创建Driver的工作目录,创建好工作目录后,封装启动Driver的命令,用ProcessBuilder启动Driver。Worker启动Driver的一个基本原

2016-07-26 09:12:05 1561

原创 Spark的Master分析3(Master状态改变机制分析)

在Master.scala源码下进行模式匹配,匹配到DriverStateChanged,如果driver的状态是错误,完成,被杀掉,失败,那么就移除driver。在removeDriver方法中,用scala的find高阶函数去找到driverId对应的driver,如果找到了,Some样例类(Option),将driver从内存缓存中清除。向completeDrivers中加入driver;使用

2016-07-25 10:49:40 828

原创 Spark的Master分析2(Master注册机制原理分析)

1.Worker的注册过程 Spark的Worker在启动之后,就会主动向Master进行注册。Master会对Worker进行过滤,将状态为DEAD的Worker过滤掉;对于状态为UNKNOWN的Worker,清理掉旧的Worker信息,替换为新的Worker信息。然后Master会把完成过滤条件的Worker加入内存缓存(HashMap)中,用持久化引擎将Worker信息进行持久化(文件系统或

2016-07-25 00:10:55 1023

原创 Spark的Master分析1(主备切换机制原理分析)

Master实际上可以配置两个,那么Spark原生的standalone模式是支持Master主备切换的。也就是说,当Active Master节点挂掉时,可以将StandBy master节点切换为Active Master。 Spark Master主备切换可以基于两种机制,一种是基于文件系统的,一种是基于Zookeeper的。基于文件系统的主备切换机制,需要在Active Master挂掉之

2016-07-24 23:19:29 2395

原创 SparkContext启动分析

SparkContext是所有spark程序的引擎,它的配置参数由SparkConf负责。SparkConf内部主要是通过ConcurrentHashMap来维护Spark配置属性。 SparkContext的初始化步骤如下: 1.创建Saprk执行环境SparkEnv; 2.创建RDD清理器metadataCleaner; 3.创建并初始化SparkUI; 4.Hadoop相关配置及Ex

2016-07-24 18:46:20 1157

原创 Spark-submit模式yarn-cluster和yarn-client的区别

1.yarn-client用于测试,因为ta的Driver运行在本地客户端,会与yarn集群产生较大的网络通信,从而导致网卡流量激增;它的好处在于直接执行时,在本地可以查看到所有的log,方便调试; 2.yarn-cluster用于生产环境,因为Driver运行在NodeManager,相当于一个ApplicationMaster,没有网卡流量激增的问题;缺点在于调试不方便,本地用spark-su

2016-07-24 15:48:48 4802

一键安装web.doc

在服务器上一键安装web服务,非常方便,不再需要复杂的配置

2014-11-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除