Keras神经网络集成技术

Posted wujianming-110117

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keras神经网络集成技术相关的知识,希望对你有一定的参考价值。

Keras神经网络集成技术

create_keras_neuropod

Keras模型打包为神经网络集成包。目前,上文已经支持TensorFlow后端。

create_keras_neuropod(

    neuropod_path,

    model_name,

    sess,

    model,

    node_name_mapping = None,

    input_spec = None,

    output_spec = None,

    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

模型名称

Sess

包含权重的TensorFlow会话(一般是keras.backend.get_session())

model

一种 Keras model 目标.

node_name_mapping

default: None

neuropod输入/输出名称到Keras输入/输出名称的可选映射。

Example:

{

    "x": "input_1",

    "out": "fc1000",

}

默认状态,用 Keras input/output 名称代替 neuropod input/output 名称。

input_spec

default: None

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

Example:

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

output_spec

default: None

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

Example:

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

input_tensor_device

default: None

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

Example:

{
    "x": np.arange(5),
    "y": np.arange(5),
}

test_expected_out

default: None

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

Example:

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

persist_test_data

default: True

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

以上是关于Keras神经网络集成技术的主要内容,如果未能解决你的问题,请参考以下文章

使用Keras快速构建集成卷积网络模型

将 Keras 集成到 SKLearn 管道?

keras-gpu的安装与配置

对比《Keras图像深度学习实战》PDF+《深度学习技术图像处理入门》PDF代码分析

图像识别 基于Keras的手写数字识别(含代码)

框架《Keras深度学习实战》中英文PDF+源代码分析