Refefer / fastxml

FastXML / PFastXML / PFastreXML - Implementation of Extreme Multi-label Classification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Possible issue when computing unit norms

AlexGonRo opened this issue · 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 :)

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.