Yes, that should work.
A more convenient method would be:
def set_bn_eval(m):
    if isinstance(m, nn.modules.batchnorm._BatchNorm):
        m.eval()
        
model.apply(set_bn_eval)

EDIT: Note that in your weight init code you are not initializing nn.BatchNorm1d using the specified method, but only nn.BatchNorm3d. My condition should work on both layer types, in case you need it.