【神經網絡量化】ONNX介紹與用法


ONNX學習

框架共用的模型文件格式

使用protobuf二進制格式來序列化模型,可以提供更好的傳輸性能。

函數

torch.onnx.export(model, args, f, export_params=True, verbose=False, training=False, input_names=None, output_names=None)

將一個模型導出到ONNX格式。該exporter會運行一次你的模型,以便於記錄模型的執行軌跡,並將其導出;目前,exporter還不支持動態模型(例如,RNNs)。

另請參閱:onnx-export

參數:

  • model(torch.nn.Module)-要被導出的模型
  • args(參數的集合)-模型的輸入,例如,這種model(*args)方式是對模型的有效調用。任何非Variable參數都將硬編碼到導出的模型中;任何Variable參數都將成為導出的模型的輸入,並按照他們在args中出現的順序輸入。如果args是一個Variable,這等價於用包含這個Variable的1-ary元組調用它。(注意:現在不支持向模型傳遞關鍵字參數。)
  • f-一個類文件的對象(必須實現文件描述符的返回)或一個包含文件名字符串。一個二進制Protobuf將會寫入這個文件中。
  • export_params(bool,default True)-如果指定,所有參數都會被導出。如果你只想導出一個未訓練的模型,就將此參數設置為False。在這種情況下,導出的模型將首先把所有parameters作為參arguments,順序由model.state_dict().values()指定。
  • verbose(bool,default False)-如果指定,將會輸出被導出的軌跡的調試描述。
  • training(bool,default False)-導出訓練模型下的模型。目前,ONNX只面向推斷模型的導出,所以一般不需要將該項設置為True。
  • input_names(list of strings, default empty list)-按順序分配名稱到圖中的輸入節點。
  • output_names(list of strings, default empty list)-按順序分配名稱到圖中的輸出節點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM