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)-按順序分配名稱到圖中的輸出節點。