add error report info in stl/mat

This commit is contained in:
ValKmjolnir 2023-03-02 00:26:52 +08:00
parent 99434df819
commit f9cbd0b426
2 changed files with 17 additions and 21 deletions

View File

@ -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;

View File

@ -1,3 +1,5 @@
import.stl.mat;
rand(time(0));
var new_neuron=func(){
@ -124,3 +126,5 @@ foreach(var v;training_set){
run(v);
print(v,': ',output[0].out,'\n');
}
bp_example();