nnunetv1 .model to .onnx

 动态输入batch_size:

就是在末尾加上
        dynamic_axes = {'input': {0: 'batch_size'},'output': {0: 'batch_size'}}

为什么是input  output

因为我的输入和输出都只有一个,且名字是我个人命名为

        input_names=['input'],
        output_names=['output'],

import torch
from torch import nn
import  pickle
from nnunet.training.model_restore import load_model_and_checkpoint_files
import os
import numpy as np

if __name__ == "__main__":

    #convert .model to .onnx
    Model_path = "RESULTS_FOLDER/nnUNet/3d_fullres/Task001_LiTS/nnUNetTrainerV2__nnUNetPlansv2.1"
    folds='all'
    checkpoint_name = "model_final_checkpoint" 

    trainer, params = load_model_and_checkpoint_files(Model_path, folds=folds, mixed_precision=True, checkpoint_name=checkpoint_name)  
    net = trainer.network
   
    checkpoint = torch.load(os.path.join( Model_path , folds, checkpoint_name +".model"))

    net.load_state_dict(checkpoint['state_dict'])
    net.eval()
    #(1,1,10,20,30)是我i任意写的,你要按照自己的输入数组维度更换
    dummy_input = torch.randn(1, 1, 10,20,30).to("cuda")
    torch.onnx.export(
        net,
        dummy_input,
        'dynamic-1.onnx',
        input_names=['input'],
        output_names=['output'],
        dynamic_axes = {'input': {0: 'batch_size'},'output': {0: 'batch_size'}}
        )

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值