我是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)
答案 0 :(得分:1)
TensorFlow Hub 的image classification modules是一些示例集合,展示了如何使用模型组件。要自己创建图像分类组件,可以查看 TensorFlow Hub API指南的Creating a New Module部分。
使用率示例:
要定义新模块,发布者使用功能
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图内的模块对象。在这种情况下,没有检查点,模块实例将使用变量初始值设定项代替。