模型构建
我们通常将一个深度学习模型视为一个计算图,所以在Lumos中一个深度学习模型就是一个计算图,我们需要首先创建一个计算图类的实例
1Graph *g = create_graph()
在此之后您需要创建不同的计算层,并确定它们的链接方式
1Layer *l1 = make_convolutional_layer(6, 5, 1, 0, 1, "relu");
2Layer *l2 = make_avgpool_layer(2, 2, 0);
3Layer *l3 = make_convolutional_layer(16, 5, 1, 0, 1, "relu");
4Layer *l4 = make_avgpool_layer(2, 2, 0);
5Layer *l5 = make_convolutional_layer(120, 5, 1, 0, 1, "relu");
6Layer *l6 = make_im2col_layer();
7Layer *l7 = make_connect_layer(84, 1, "relu");
8Layer *l8 = make_connect_layer(10, 1, "relu");
9Layer *l9 = make_softmax_layer(10);
10Layer *l10 = make_mse_layer(10);
1append_layer2grpah(g, l1);
2append_layer2grpah(g, l2);
3append_layer2grpah(g, l3);
4append_layer2grpah(g, l4);
5append_layer2grpah(g, l5);
6append_layer2grpah(g, l6);
7append_layer2grpah(g, l7);
8append_layer2grpah(g, l8);
9append_layer2grpah(g, l9);
10append_layer2grpah(g, l10);
append_layer2grpah将您创建的计算层按顺序添加到计算图中,此时我们创建的计算图g,就是一个完整的静态深度学习模型
完成模型创建后,我们需要调度模型进行计算,Lumos提供Session会话类来完成全部的计算调度,首先我们需要实例化一个会话
1Session *sess = create_session(g, 32, 32, 1, 10, type, path);
并设置训练超参数
1set_train_params(sess, 15, 16, 16, 0.1);
在训练开始前,Lumos需要完成内存等训练环境初始化
1init_session(sess, "./data/mnist/train.txt", "./data/mnist/train_label.txt");
现在一切准备就绪,可以开始训练了
1train(sess);