DL4J源码阅读(三):信号前传

    MultiLayerNetworkfit方法,使用DataSet next = iter.next()获取一个批次的数据。本例中batchSize = 50,所以一次取到50组数据,其中包括输入特征和标签(理想值)。setInput(next.getFeatureMatrix())setLabels(next.getLabels())语句分别设置输入特征和标签。调用solver.optimize()语句进行网络定型。在网络初始化阶段model.init()中调用MultiLayerNetworkpublic void init(INDArray parameters, boolean cloneParametersArray)方法时,新建了一个Solver对象,并赋给了solver变量。

    在Solver类中有一个方法public void initOptimizer(),是为Solver的核心变量optimizer赋值。这个方法很重要,要想正常使用Solver的对象,必须调用。如果将这个方法放到新建Solver的对象的方法中调用更好些。而不是交给应用自己调用。现在的情况是为了防止没有被调用过,反而到处调用。放到新建Solver的对象的方法中调用,每次新建都会自动调用,就不会有这个烦恼。

    本例中optimizer的具体类型是StochasticGradientDescent(随机梯度下降),当执行optimizer.optimize()时,会进入到StochasticGradientDescentoptimize()方法中。此方法开始是一个循环。

    代码读到这里可以发现有三处循环,分别对应数据处理时的三种粒度。StochasticGradientDescent

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值