안녕하세요 이번에 CoAtNet 이라는 convolution 과 attention layer 가 결합된 모델을 사용하고 있습니다.
해당 모델을 학습하고
onnx로 아래와 같이 변환을 수행 했는데요
batch_size = 64
x = torch.randn(batch_size, 1, 144, 256, requires_grad=True).cuda()
torch.onnx.export(model.to('cpu'), # 실행될 모델
x.to('cpu'), # 모델 입력값 (튜플 또는 여러 입력값들도 가능)
"/workspace/trespass_utils/{}.onnx".format(file_name), # 모델 저장 경로 (파일 또는 파일과 유사한 객체 모두 가능)
export_params=True, # 모델 파일 안에 학습된 모델 가중치를 저장할지의 여부
opset_version=13, # 모델을 변환할 때 사용할 ONNX 버전
do_constant_folding=True, # 최적하시 상수폴딩을 사용할지의 여부
input_names = ['input'], # 모델의 입력값을 가리키는 이름
output_names = ['output'], # 모델의 출력값을 가리키는 이름
dynamic_axes={'input' : {0 : 'batch_size'}, # 가변적인 길이를 가진 차원
'output' : {0 : 'batch_size'}}
)
resnet 으로 변환할 때와는 달리
pytorch 모델의 출력 결과와
onnx 의 출력 결과가
상이한 부분이 보입니다.
원인을 알 수 있을까요?