zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    分布式锁的三种实现方式
    sharding-jdbc
    MySQL Proxy 实现 MySQL 读写分离提高并发负载
    python 使用流式游标 读取mysql怎么不会内存溢出
    数据仓库方案
    MySQL percona-toolkit工具详解
    percona-toolkit 主从工具 master-slave
    MySQL sql join 算发
    MySQL5.7.6 general tablespace
    MySQL Data Directory -- Creating file-per-table tablespaces outside the data directory
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/13132154.html
Copyright © 2011-2022 走看看