在上一篇文章中,我们已经讲了整个线性回归的数学原理,详细请见 DJL-Java开发者动手学深度学习之线性回归。在这里,我们就用DJL来实现利用线性回归来预测房价。
为了简单起见,我们利用生成数据加随机噪声的方式,来降低我们的学习成本。
生成数据
public static DataPoints syntheticData(NDManager manager, NDArray w, float b, int numExamples) {
NDArray X = manager.randomNormal(new Shape(numExamples, w.size()));
NDArray y = X.dot(w).add(b);
// Add noise
y = y.add(manager.randomNormal(0, 0.01f, y.getShape(), DataType.FLOAT32));
return new DataPoints(X, y);
}
定义模型
我们可以 DJL 预定义的 Block
。这使我们只需关注使用哪些层来构造模型,而不必关注层的实现细节。我们首先定义一个模型变量net
,它是一个 SequentialBlock
类的实例。 SequentialBlock
类为串联在一起的多个层定义了一个容器。当给定输入数据, SequentialBlock
实例将数据传入到第一层,然后将第一层的输出作为第二层的输入,依此类推。
//定义模式,一层神经网络
Model model = Model.newInstance("lin-reg");
SequentialBlock net =