private void runMethod(object obj) { //TwoLayerNet.Test(); //testRiceNet.Test(obj as Form1); //testRiceNet.Detection(); //testCustomNet.Test(obj as Form1); //testCustomNet.Detection(); //goodNet.Test(obj as Form1); TestRice rice = new TestRice(); //rice.Test(); rice.StartTrain(50); }
public void TestTest() { LLayer layer = new LLayer(); TestRice test = new TestRice(); test.LayerInfo = new LayerParamsInfo[1]; test.LayerInfo[0] = new LayerParamsInfo(); test.LayerInfo[0].Bias = new double[2]; test.LayerInfo[0].DBias = new double[2]; test.LayerInfo[0].WehtInfo = new WehtInfo[2][]; test.LayerInfo[0].WehtInfo[0] = new WehtInfo[3]; test.LayerInfo[0].WehtInfo[0][0] = new WehtInfo(); test.LayerInfo[0].WehtInfo[0][1] = new WehtInfo(); test.LayerInfo[0].WehtInfo[0][2] = new WehtInfo(); test.LayerInfo[0].WehtInfo[0][0].W = new double[, ] { { 0.7, -0.1, 1.2 }, { 0.2, 0.6, -1.3 }, { 0.2, 0.6, -1.3 }, }; test.LayerInfo[0].WehtInfo[0][1].W = new double[, ] { { 0.8, -0.1, 1.2 }, { 0.2, -0.1, -1.3 }, { 0.2, 0.6, -1.3 }, }; test.LayerInfo[0].WehtInfo[0][2].W = new double[, ] { { 0.1, 0.1, 1.2 }, { 3.2, -0.1, -1.3 }, { 0.2, 1.6, -0.3 }, }; test.LayerInfo[0].WehtInfo[1] = new WehtInfo[3]; test.LayerInfo[0].WehtInfo[1][0] = new WehtInfo(); test.LayerInfo[0].WehtInfo[1][1] = new WehtInfo(); test.LayerInfo[0].WehtInfo[1][2] = new WehtInfo(); test.LayerInfo[0].WehtInfo[1][0].W = new double[, ] { { 0.7, -0.1, 1.2 }, { 0.2, 0.6, -1.3 }, { 0.2, 0.6, -1.3 }, }; test.LayerInfo[0].WehtInfo[1][1].W = new double[, ] { { 0.8, -0.1, 1.2 }, { 0.2, -0.1, -1.3 }, { 0.2, 0.6, -1.3 }, }; test.LayerInfo[0].WehtInfo[1][2].W = new double[, ] { { 0.1, 0.1, 1.2 }, { 3.2, -0.1, -1.3 }, { 0.2, 1.6, -0.3 }, }; test.LayerInfo[0].Bias[0] = 0.21; test.LayerInfo[0].Bias[1] = 0.03; var input = CreateInput(); var res = test.forward(input, 0); layer.CheckResult(res, "正向传播结果"); var backres = test.backward(res, 0); //layer.CheckResult(test.LayerInfo[0].DBias, "偏置求导值"); //layer.CheckResult(test.LayerInfo[0].WehtInfo, "权重求导值"); layer.CheckResult(backres, "反向传播结果"); //layer.CheckResult(input.GetNextDimVal(0).Flatten(), "矩阵展开结果"); Assert.Fail(); }