• PyTorch神经网络集成技术


    PyTorch神经网络集成技术

    create_python_neuropod

    将任意python代码打包为一个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,

    )

    参数

    neuropod_path

    neuropod输出路径

    model_name

    model名称

    data_paths

    包含需要打包的任何数据文件的路径的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

    包含入口点的python包(例如,some.package.something). 它必须包含下面指定的entrypoint函数。

    Entrypoint

    entrypoint_包中包含的函数的名称。此函数必须返回一个可调用函数,该函数接受输入规范input_spec中指定的输入,并返回一个包含输出规范output_spec中指定的输出的dict。entrypoint函数将提供指向包含打包数据的目录的路径作为其第一个参数。

    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列表。对于每个输入,如果shape设置为None,则不对该形状进行验证。如果shape是元组,则根据该元组验证输入的维度。任何维度的值为“无”表示将不检查该维度。数据类型可以是任何有效的numpy数据类型字符串。

    Example:

    [
        {"name": "x", "dtype": "float32", "shape": (None,)},
        {"name": "y", "dtype": "float32", "shape": (None,)},
    ]

    output_spec

    指定模型输出的dict列表。有关详细信息,请参阅input_spec参数的文档。

    Example:

    [
        {"name": "out", "dtype": "float32", "shape": (None,)},
    ]

    input_tensor_device

    default: None

    dict将输入张量名称映射到模型希望它们在其上的设备。这可以是GPU或CPU。此映射中未指定的输入规格input_spec中的任何张量都将使用下面指定的默认输入张量设备default_input_tensor_device。             

    如果在推断时选择了GPU,则在运行模型之前,神经网络集成软件会将张量移动到适当的设备。否则,它将尝试在CPU上运行模型,并将所有张量(和模型)移到CPU上。             

    有关更多信息,请参阅load_neurood的文档字符串。

    Example:

    {"x": "GPU"}

    default_input_tensor_device

    default: GPU

    输入张量的默认设备应该打开。这可以是GPU或CPU。

    custom_ops

    default: []

    要包含在打包的neuropod中的自定义op共享库的路径列表。             

    注意:包括定制操作将您的neuropod绑定到定制操作为之构建的特定平台(如Mac、Linux)。用户有责任确保为正确的平台构建自定义操作。

    Example:

    ["/path/to/my/custom_op.so"]

    package_as_zip

    default: True

    是将neuropod打包为一个文件还是一个目录。

    test_input_data

    default: None

    可选样本输入数据。这是一个将输入名称映射到值的dict。如果提供了这一点,则在包装后立即在隔离环境中运行推断,以确保成功创建了神经网络集成软件。如果提供了预期的测试test_expected_out,则必须提供。             

    如果推断失败,则引发ValueError。

    test_expected_out

    default: None

    可选的预期输出。如果模型推断的输出与预期的输出不匹配,则引发ValueError。

    Example:

    {
        "out": np.arange(5) + np.arange(5)
    }

    persist_test_data

    default: True

    可选地将测试数据保存在包装好的神经网络集成软件内。

  • 相关阅读:
    简明Python3教程 12.问题解决
    简明Python3教程 11.数据结构
    【SPOJ 694】Distinct Substrings
    【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
    【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
    【CF Manthan, Codefest 17 A】Tom Riddle's Diary
    【SPOJ 220】 PHRASES
    【POJ 3261】Milk Patterns
    【POJ 3294】Life Forms
    【POJ 1226】Substrings
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/13132154.html
Copyright © 2020-2023  润新知