Questions ondynamic_axes of torchl.onnx.export()

here I have another question, more detailed on dynamic axes , my model is

import torch
import numpy as np
model = torch.nn.Linear(3, 2)

w, b = model.state_dict()['weight'], model.state_dict()['bias']
# w, b = model.weight, model.bias
with torch.no_grad():
    w.copy_(torch.tensor([[1., 2., 3.], [4., 5., 6.]]))
    b.copy_(torch.tensor([-1., -2.]))
model.cuda()

# Export to ONNX
model.eval()
x = torch.randn(1, 3, requires_grad=True, device='cuda')

#Export model2.onnx with dynamic batch_size
print('\nExporting model2.onnx ...')
torch.onnx.export(model,
                  x,
                  'model2.onnx',
                  #opset_version=11,
                  verbose=True,
                  export_params=True,
                  input_names=['input'],
                  output_names=['output'],
                  dynamic_axes={'input': {0: 'batch_size'},  # variable lenght axes
                                'output': {0: 'batch_size'}} # change from 0 to 1
                  )

if I set

dynamic_axes={'input': {0: 'batch_size'}, 
              'output': {0: 'batch_size'}} 

the input is [bacth_size, 3], the output is [ batch_size,2], it is ok

if I set

dynamic_axes={'input': {1: 'batch_size'}, 
              'output': {1: 'batch_size'}} 

the input is [1,bacth_size], the output is [1, batch_size], it is not what I want
input: [3,batch_size], output: [2, batch_size]

if I set

   dynamic_axes={'input': {0: 'batch_size',1:'time'}, 
                 'output': {0: 'batch_size',1:'time'}}      

the input is [bacth_size, time], the output is [ batch_size,time], it is not what I want
input [batch_size,time, 3] ,output [batch,time, 2],

1, how to write correct dynamic_axes?
2, for

       dynamic_axes={'input': {0: 'batch_size'}, 
                     'output': {0: 'batch_size'}} 

what’s the meaning of ‘0’? if I set 0 to 1, 2,3, …, what happened?