运行调度

当前您完成了一个静态模型的构建,模型本身无法运行,我们需要借助一个Session会话来完成计算,首先需要创建一个会话实例

1Session *sess = create_session(g, 1, 2, 1, 2, type, path);

create_session接口定义如下

1Session *create_session(Graph *graph, int h, int w, int c, int truth_num, char *type, char *path)

接口参数说明如下

graph

计算图

h

输入图像数据的height

w

输入图像数据的width

c

输入图像数据的channel

truth_num

离散标签数据个数

type

运行内核选择CPU/GPU

path

权重文件路径

Lumos允许您在预训练模型基础上完成训练,path参数即预训练权重文件路径,如果您需要从零开始训练,path参数设置为NULL

您需要通过会话配置训练超参数

1set_train_params(sess, 50, 2, 2, 0.1);

set_train_params接口定义如下

1void set_train_params(Session *sess, int epoch, int batch, int subdivision, float learning_rate)

接口参数说明如下

sess

会话实例

epoch

训练轮次

batch

随机梯度下降批次大小

subdivision

批次分割大小

learning_rate

步长(学习率)

在图像识别算法中,内存需求非常大,您可能没有符合运行要求的内存空间,subdivision参数设置子批次计算大小,可以实现多个小批次计算来完成完整batch运算,有限的解决内存问题,batch值必须能被subdivision整除

现在您需要调度会话,完成运行前的初始化

1init_session(sess, "./data/xor/data.txt", "./data/xor/label.txt");

在这里您需要提供训练数据和标签数据的路径文件,详细数据格式可参考[数据处理]()

完成上述过程后,您就可以开始训练了

1train(sess);

训练完成后,权重文件将保存于运行路径目录下,文件名为LuWeights