diff --git a/stl/mat.nas b/stl/mat.nas index 0fcc84b..11e0c06 100644 --- a/stl/mat.nas +++ b/stl/mat.nas @@ -31,6 +31,9 @@ var mat_print=func(a) { var add=func(a,b) { if(a.width!=b.width or a.height!=b.height) { + println("matrix a: ",a); + println("matrix b: ",b); + die("width and height must be the same"); return nil; } @@ -48,6 +51,9 @@ var add=func(a,b) { var sub=func(a,b) { if(a.width!=b.width or a.height!=b.height) { + println("matrix a: ",a); + println("matrix b: ",b); + die("width and height must be the same"); return nil; } @@ -65,6 +71,9 @@ var sub=func(a,b) { var hardamard=func(a,b) { if(a.width!=b.width or a.height!=b.height) { + println("matrix a: ",a); + println("matrix b: ",b); + die("width and height must be the same"); return nil; } @@ -131,6 +140,9 @@ var activate=func(a,f) { var mult=func(a,b) { if(a.width!=b.height) { + println("matrix a: ",a); + println("matrix b: ",b); + die("a.width must equal to b.height, but get a.width:"~str(a.width)~" and b.height"~str(b.height)); return nil; } @@ -170,26 +182,6 @@ var difftanh=func(x) { return 1-x*x; } -var test=func() { - for(var i=0;i<1e4;i+=1) { - var a=mat(4,20); - var b=mat(10,4); - var c=a; - rand_init(a); - rand_init(b); - mult(a,b); - add(a,c); - sub(a,c); - neg(a); - trans(a); - activate(a,sigmoid); - activate(a,tanh); - if(i-int(i/100)*100==0) { - print(i/1e4*100,"% \r"); - } - } -} - var bp_example=func() { srand(); var lr=0.01; diff --git a/test/bp.nas b/test/bp.nas index df2e965..fa72762 100644 --- a/test/bp.nas +++ b/test/bp.nas @@ -1,3 +1,5 @@ +import.stl.mat; + rand(time(0)); var new_neuron=func(){ @@ -123,4 +125,6 @@ if(cnt>=3e5){ foreach(var v;training_set){ run(v); print(v,': ',output[0].out,'\n'); -} \ No newline at end of file +} + +bp_example(); \ No newline at end of file