PyTorch神经网络集成技术
PyTorch神經(jīng)網(wǎng)絡(luò)集成技術(shù)
create_python_neuropod
將任意python代碼打包為一個(gè)neurood包。
create_python_neuropod(
neuropod_path,model_name,data_paths,code_path_spec,entrypoint_package,entrypoint,input_spec,output_spec,input_tensor_device = None,default_input_tensor_device = GPU,custom_ops = [],package_as_zip = True,test_input_data = None,test_expected_out = None,persist_test_data = True,
)
參數(shù)
neuropod_path
neuropod輸出路徑
model_name
model名稱
data_paths
包含需要打包的任何數(shù)據(jù)文件的路徑的dict列表。
Example:
[{
path: “/path/to/myfile.txt”,
packaged_name: “newfilename.txt”
}]
code_path_spec
將要打包的所有代碼的文件夾路徑。請注意,*.pyc文件被忽略。
This
is specified as follows:
[{ “python_root”: “/some/path/to/a/python/root”, “dirs_to_package”: [“relative/path/to/package”]}, …]
entrypoint_package
包含入口點(diǎn)的python包(例如,some.package.something). 它必須包含下面指定的entrypoint函數(shù)。
Entrypoint
entrypoint_包中包含的函數(shù)的名稱。此函數(shù)必須返回一個(gè)可調(diào)用函數(shù),該函數(shù)接受輸入規(guī)范input_spec中指定的輸入,并返回一個(gè)包含輸出規(guī)范output_spec中指定的輸出的dict。entrypoint函數(shù)將提供指向包含打包數(shù)據(jù)的目錄的路徑作為其第一個(gè)參數(shù)。
For
example, a function like:
def neuropod_init(data_path): def addition_model(x, y): return { “output”: x + y } return addition_model
包含在包裹里“my.awesome.addition_model”本來
entrypoint_package=‘my.awesome.addition_model’ and entrypoint=‘neuropod_init’
input_spec
指定模型輸入的dict列表。對于每個(gè)輸入,如果shape設(shè)置為None,則不對該形狀進(jìn)行驗(yàn)證。如果shape是元組,則根據(jù)該元組驗(yàn)證輸入的維度。任何維度的值為“無”表示將不檢查該維度。數(shù)據(jù)類型可以是任何有效的numpy數(shù)據(jù)類型字符串。
Example:
[ {“name”: “x”, “dtype”: “float32”, “shape”: (None,)}, {“name”: “y”, “dtype”: “float32”, “shape”: (None,)},]
output_spec
指定模型輸出的dict列表。有關(guān)詳細(xì)信息,請參閱input_spec參數(shù)的文檔。
Example:
[ {“name”: “out”, “dtype”: “float32”, “shape”: (None,)},]
input_tensor_device
default: None
dict將輸入張量名稱映射到模型希望它們在其上的設(shè)備。這可以是GPU或CPU。此映射中未指定的輸入規(guī)格input_spec中的任何張量都將使用下面指定的默認(rèn)輸入張量設(shè)備default_input_tensor_device。
如果在推斷時(shí)選擇了GPU,則在運(yùn)行模型之前,神經(jīng)網(wǎng)絡(luò)集成軟件會將張量移動(dòng)到適當(dāng)?shù)脑O(shè)備。否則,它將嘗試在CPU上運(yùn)行模型,并將所有張量(和模型)移到CPU上。
有關(guān)更多信息,請參閱load_neurood的文檔字符串。
Example:
{“x”: “GPU”}
default_input_tensor_device?
default: GPU
輸入張量的默認(rèn)設(shè)備應(yīng)該打開。這可以是GPU或CPU。
custom_ops?
default: []
要包含在打包的neuropod中的自定義op共享庫的路徑列表。
注意:包括定制操作將您的neuropod綁定到定制操作為之構(gòu)建的特定平臺(如Mac、Linux)。用戶有責(zé)任確保為正確的平臺構(gòu)建自定義操作。
Example:
["/path/to/my/custom_op.so"]
package_as_zip?
default: True
是將neuropod打包為一個(gè)文件還是一個(gè)目錄。
test_input_data?
default: None
可選樣本輸入數(shù)據(jù)。這是一個(gè)將輸入名稱映射到值的dict。如果提供了這一點(diǎn),則在包裝后立即在隔離環(huán)境中運(yùn)行推斷,以確保成功創(chuàng)建了神經(jīng)網(wǎng)絡(luò)集成軟件。如果提供了預(yù)期的測試test_expected_out,則必須提供。
如果推斷失敗,則引發(fā)ValueError。
test_expected_out?
default: None
可選的預(yù)期輸出。如果模型推斷的輸出與預(yù)期的輸出不匹配,則引發(fā)ValueError。
Example:
{ “out”: np.arange(5) + np.arange(5)}
persist_test_data?
default: True
可選地將測試數(shù)據(jù)保存在包裝好的神經(jīng)網(wǎng)絡(luò)集成軟件內(nèi)。
總結(jié)
以上是生活随笔為你收集整理的PyTorch神经网络集成技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Keras神经网络集成技术
- 下一篇: TorchScript神经网络集成技术