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