模型定义
BigDL的代码架构模仿了Torch,神经网络的构建以Module
为核心,具体运算则以Tensor
为单位执行。
BigDL支持2套模型定义API
- Sequential
- Functional
对一个同样的例子:
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的文档(需要认真看完):