#needs output tensor types from obj_ty import * from obj_operator import * import math def toStr(name,var, maxdiff,sumdiff): # f = open("results_tmp.txt", 'a+') #f.write("\n\n **********") #print (name) x= " max diff: "+str(round(maxdiff,4))+" sumdiff: "+str(round(sumdiff,4)) #print "x",x #f.write(name) if (maxdiff<=0.01): rtn = "Results: "+var+": good" # f.write("\n\t\t"+rtn) #f.close() #print rtn return (rtn,1,0,0,0) elif (maxdiff<=0.1): rtn = "Results: "+var+": eh "+x #f.write("\n\t\t"+rtn) #f.close() #print rtn return (rtn,0,1,0,0) else: rtn = "Results: "+var+": terrible "+x #f.write("\n\t\t"+rtn) #f.close() #print rtn return (rtn,0,0,1,0) #difference and error between observed data and correct data #output is length 1 def checkdiff_1(name, obv, cor): maxdiff = 0 sumdiff = 0 length = 0 for (o,c) in zip(obv,cor): #print ("observed:",o,"correct:",c) length+=1 if (o==0): break else: diff=abs(c-o) sumdiff+=diff if(diff>maxdiff): maxdiff=diff #print("current maximal difference", maxdiff, "c: ", c, " o:",o) return toStr(name,"x", maxdiff,sumdiff/length) def checkdiff(name, obv, cor): no = len(obv) nc = len(cor) if(no!=nc): raise ("different size for data- observed: "+str(n0)+"correct: "+str(nc)) maxdiff=0 sumdiff = 0 length = 0 size =len(obv[0]) #print "no ",no," size: ",size for i in range(no): for j in range(size): length+=1 o1=obv[i][j] if(o1=="nan"): print"found nan" rtn = "results is nan sumdiff up to now "+str(round(sumdiff/length,4)) return (rtn,0,0,1,0) #c1=round(cor[i][j], 4) c1= cor[i][j] if (o1==0): break diff=abs(o1-c1) sumdiff += diff if(diff > maxdiff): maxdiff = diff #print("current maximal difference", maxdiff, "c: ", c1, " o:",o1) if(c1==0): break print "made it here" return toStr(name,"x0", maxdiff,sumdiff/length) #chose function based on length of output def compare(app, obv, cor): ex_otype = fty.get_tensorType(app.oty) print "inside compare" if(ty_scalarT==ex_otype): return checkdiff_1(app.name, obv, cor) else: return checkdiff(app.name, obv, cor)
Click to toggle
does not end with </html> tag
does not end with </body> tag
The output has ended thus: return checkdiff_1(app.name, obv, cor) else: return checkdiff(app.name, obv, cor)