模型定义

BigDL的代码架构模仿了Torch,神经网络的构建以Module为核心,具体运算则以Tensor为单位执行。

BigDL支持2套模型定义API

对一个同样的例子:

Linear -> Sigmoid -> Softmax

采用Sequential的形式定义为:

val model = Sequential()
model.add(Linear(...))
model.add(Sigmoid())
model.add(Softmax())

Functional的形式为:

val linear = Linear(...).inputs()
val sigmoid = Sigmoid().inputs(linear)
val softmax = Softmax().inputs(sigmoid)
val model = Graph(Seq[linear], Seq[softmax])

后者的形式比较直观。

关于模型定义的更多细节请参考BigDL的文档(需要认真看完):