【问题标题】:Create new tensorflow image classification module using tensorflow hub使用 tensorflow hub 创建新的 tensorflow 图像分类模块
【发布时间】:2018-10-23 05:24:44
【问题描述】:

我是 tensorflow 新手,我正在尝试创建新的图像分类模块,我尝试使用 tensorflow hub 下面的示例。但它没有创建。是创建图像分类模块的任何简单示例

import tensorflow as tf
import tensorflow_hub as hub
import numpy as np

def module_fn():
    inputs = tf.placeholder(dtype=tf.float32, shape=[None, 50])
    layer1 = tf.layers.dense(inputs, 200)
    layer2 = tf.layers.dense(layer1, 100)
    outputs = dict(default=layer2, hidden_activations=layer1)
    # Add default signature.
    hub.add_signature(inputs=inputs, outputs=outputs)

spec = hub.create_module_spec(module_fn)
module=hub.Module(spec)
with tf.Graph().as_default():
      module=hub.Module('new_test_module')
      test=module(np.random.normal(0, 1, (1, 100)))
      with tf.Session() as session:
      img=session.run(test)

【问题讨论】:

    标签: tensorflow-hub


    【解决方案1】:

    TensorFlow Hubimage classification modules 是展示如何使用模型组件的示例集合。要自己创建图像分类组件,您可以查看 TensorFlow Hub API 指南Creating a New Module 部分。

    使用示例:

    要定义一个新模块,发布者使用函数module_fn 调用hub.create_module_spec()。此函数构造一个表示模块内部结构的图,使用tf.placeholder() 作为调用者提供的输入。然后它通过调用hub.add_signature(name, inputs, outputs) 一次或多次来定义签名。

    def module_fn():
        inputs = tf.placeholder(dtype=tf.float32, shape=[None, 50])
        layer1 = tf.layers.dense(inputs, 200)
        layer2 = tf.layers.dense(layer1, 100)
        outputs = dict(default=layer2, hidden_activations=layer1)
    
        # Add default signature.
        hub.add_signature(inputs=inputs, outputs=outputs)
    spec = hub.create_module_spec(module_fn)
    

    hub.create_module_spec() 的结果可用于在特定 TensorFlow 图中实例化模块对象,而不是路径。在这种情况下,没有检查点,模块实例将使用变量初始化器。

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 2019-11-15
      • 2019-04-28
      • 2020-10-05
      • 2016-09-23
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多