I was wondering how would causality be applied for conv3d:
self.frontend3D = nn.Sequential(
nn.Conv3d(1, self.frontend_nout, kernel_size=(5, 7, 7), stride=(1, 2, 2), padding=(2, 3, 3), bias=False),
nn.BatchNorm3d(self.frontend_nout),
frontend_relu,
nn.MaxPool3d(kernel_size=(1, 3, 3), stride=(1, 2, 2), padding=(0, 1, 1)))
def forward(self, x, lengths):
B, C, T, H, W = x.size()
if type(lengths) == int:
lengths = [lengths] * B
x = self.frontend3D(x)