Hello all,
Wanted to stop by and check if things are working as expected before making an issue on the timm Github page.
In short, I am getting non-reproducible results when networks have a BlurPool module from timm. Other networks (without BlurPool) are exactly reproducible after setting the seed across the needed libraries (numpy, random, torch, torch.cuda, etc).
It is the strangest thing, since there is nothing in the module that screams hidden randomness:
  

      github.com
  

  
    rwightman/pytorch-image-models/blob/master/timm/models/layers/blur_pool.py 4


    """
BlurPool layer inspired by
 - Kornia's Max_BlurPool2d
 - Making Convolutional Networks Shift-Invariant Again :cite:`zhang2019shiftinvar`

Hacked together by Chris Ha and Ross Wightman
"""

import torch
import torch.nn as nn
import torch.nn.functional as F
import numpy as np
from .padding import get_padding


class BlurPool2d(nn.Module):
    r"""Creates a module that computes blurs and downsample a given feature map.
    See :cite:`zhang2019shiftinvar` for more details.
    Corresponds to the Downsample class, which does blurring and subsampling




  This file has been truncated. show original

  

  
    
    
  

  


I’ve confirmed this on several machines with different environments and versions of CUDA.
Has anyone seen something similar, or have some suggestions about what is going on?
Or is this expected behavior from BlurPool?
Thanks much for any help in advance, please let me know if more details are needed.
Ty!