Hi  Miguelvr,
We have been using Time distributed layer that is developed by you.
I declared the Time distributed layer as follows :
1. Declared linear layer then give that output to the time distributed layer in the module
class CRNN(nn.Module):
def init(self):
super(CRNN, self).init()
# 1D CovNet for learning the Spectral features
self.conv1      = nn.Conv1d(in_channels=1, out_channels=128, kernel_size=(32,))
self.bn1        = nn.BatchNorm1d(128)
self.maxpool1   = nn.MaxPool1d(kernel_size=1, stride=97)
self.dropout1   = nn.Dropout(0.3)
# 1D LSTM for learning the temporal aggregation
self.lstm       = nn.LSTM(input_size=128, hidden_size=128, num_layers=2, dropout=0.3)
# Fully Connected layer
#self.fc3        = nn.Linear(128, 128)
#self.bn3        = nn.BatchNorm1d(128)
# Get posterior probability for target event class
self.fc4         = nn.Linear(128, 1)
self.timedist    = TimeDistributed(self.fc4)
But my doubt is When I the print the weight parameters of NN.
Time Distributor layer prints two times as follows
fc4.weight       torch.Size([1, 128])
fc4.bias         torch.Size([1])
timedist.module.weight   torch.Size([1, 128])
timedist.module.bias     torch.Size([1])
is it correct or any mistakes in the implementation.
Thanks