-
-
Notifications
You must be signed in to change notification settings - Fork 23
Description
I have a matrix

This the equation 4 from the NMFD paper.
I understand that I need to add an extra dimension to the torch.Size([1, 513, 15]), I called net = torchnmf.nmf.NMFD(V_tensor.shape, rank=2, T=15) and net.fit(V_tensor). (Note: V_tensor is the tensor version of my V)
However, the function torchnmf.nmf.NMFD() only returns an H whose dimension is only H should be
It seems that in your reconstruct(H, W) function of the NMFD class you calculate the 1d convolution between H and W.
return F.conv1d(H, W.flip(2), padding=pad_size)
In my opinion, this reconstruct is not the same as equation 4 of the original paper. If you expand the summation of equation 4, you can find the non-first column of W_0H[:, 1:]) has a contribution to the estimated W_1H[:, 2:]) has a contribution to the estimated H should not be padded with 0's left and right during the reconstruct function.
Please let me know if I misunderstood it, or if it is actually a bug. I am trying to use your torchnmf.nmf.NMFD() to do some audio analysis. I am very happy to have further discussions with you.
Thank you!
Metadata
Metadata
Assignees
Labels
Projects
Status