0

我是 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)
4

1 回答 1

1

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

使用示例:

为了定义一个新模块,发布者hub.create_module_spec()使用函数调用module_fn。该函数构造一个表示模块内部结构的图,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 图中实例化模块对象,而不是路径。在这种情况下,没有检查点,模块实例将使用变量初始化器。

于 2018-10-22T21:24:44.633 回答