fastxml
fastxml copied to clipboard
Possible issue when computing unit norms
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.