fastxml icon indicating copy to clipboard operation
fastxml copied to clipboard

Possible issue when computing unit norms

Open AlexGonRo opened this issue 7 years ago • 1 comments

I wanted to report a small bug I found when going a bit deeper into the code.

In trainer.py there is a function for computing the unit norm of the training data. This is the function:

def compute_unit_norms(X):
    norms = np.zeros(X[0].shape[1])
    for Xi in X:
        for i, ind in enumerate(Xi.indices):
            norms[ind] = Xi.data[i] ** 2

    norms = norms ** .5
    norms[np.where(norms == 0)] = 1.0
    return norms.astype('float32')

My question here is the following: aren't you missing a += instead of a =inside the for loop?. The forth line of the code then would be

norms[ind] += Xi.data[i] ** 2

And thank you guys for sharing the library :)

AlexGonRo avatar Oct 24 '17 11:10 AlexGonRo

Thanks for the report and good question; I don't remember off the top of my head. Let me take a look at it tonight.

Refefer avatar Oct 24 '17 16:10 Refefer