下面以函数拟合为例,说明DL4J的程序结构。参考源代码:
org.deeplearning4j.examples.feedforward.regression.RegressionMathFunctions
1.生成数据
1.1自变量
//生成一维向量,共nSamples个值,范围在区间[-10, 10]中
//nSamples 为样本数量,官方例子中默认1000
final INDArray x = Nd4j.linspace(-10,10,nSamples).reshape(nSamples, 1);
1.2因变量
//计算sin(x),fn=sin(x)
final DataSetIterator iterator = getTrainingData(x,fn,batchSize,rng)
//函数getTrainingData()定义如下:
/** Create a DataSetIterator for training
* @param x X values
* @param function Function to evaluate
* @param batchSize Batch size (number of examples for every call of DataSetIterator.next())
* @param rng Random number generator (for repeatability)
*/
private stati