Skip to content
Snippets Groups Projects
logerr.py 1.97 KiB
Newer Older
  • Learn to ignore specific revisions
  • Anna Neumann's avatar
    Anna Neumann committed
    def logerr_func(dblabel,X_predicted,I_sub,K_sub):
    
        import numpy as np
    
        # loading
    
        # file = '/media/aneumann/Harddisk/Datenbanken/PythonTest_5/Predicted_0_2_CNN_whole.npz'
        # content_predict = np.load(file)
        # dblabel_matrix, dbmixed_matrix, predictionError_matrix, X_predicted_matrix = content_predict['dblabel_matrix'], content_predict['dbmixed_matrix'], content_predict['predictionError_matrix'], content_predict['X_predicted_matrix']
        # o = 1
        # dbmixed = dbmixed_matrix[o]
        # X_predicted = X_predicted_matrix[o]
        # dblabel = dblabel_matrix[o]
        # predictionError = predictionError_matrix[o]
    
        # initialize
    
        logerr_mean = []
        logerr_over = []
        logerr_under = []
        logerr_var = []
    
        # reference label psd
    
        refpsd = dblabel[0:256,0:128]
    
        # estimated psd
    
        estpsd = X_predicted[0:256,0:128]
    
        # logerr mean
    
        deltadb_mean = np.absolute(np.subtract(refpsd,estpsd))
        # print(deltadb_mean)
    
        logerr_mean = np.mean(deltadb_mean)
        # print(logerr_mean)
    
        # logerr over
    
        deltadb = refpsd - estpsd
    
    
        condition_over = deltadb > 0
        arr_over = np.extract(condition_over, deltadb)
        logerr_over = np.mean(arr_over)
        # print(logerr_over)
    
        # logerr under
    
        condition_under = deltadb < 0
        arr_under = np.extract(condition_under, deltadb)
        logerr_under = np.mean(arr_under)
        # print(logerr_under)
    
        # logerr Var
    
        I_sub = 4
        K_sub = 4
    
        logerr_varki = np.zeros((int(deltadb_mean.shape[0]/K_sub),int(deltadb_mean.shape[1]/I_sub)))
        for i in range(0,int(deltadb_mean.shape[1]/I_sub)):
            for k in range(0,int(deltadb_mean.shape[0]/K_sub)):
                mu = (1/K_sub) * np.sum(deltadb_mean[k*K_sub:k*K_sub+(K_sub),:],axis=0)
                logerr_varki[k,i] = 1/(K_sub*I_sub) * np.sum(np.power((deltadb_mean[k*K_sub:k*K_sub+K_sub,i*I_sub:i*I_sub+I_sub]-mu[i*I_sub:i*I_sub+I_sub]),2))
        logerr_var = np.mean(logerr_varki)
        # print(logerr_var)
    
        return logerr_mean, logerr_over, logerr_under, logerr_var