In TensorFlow wird die Merkmalmengenextraktion mithilfe des Inception-v3-Modells durchgeführt.
Schreiben Sie "IMG_PATH" und "MODEL_PATH" entsprechend Ihrer Umgebung neu.
import tensorflow as tf
import numpy as np
IMG_PATH = 'path/to/input/image.jpg'
MODEL_PATH = 'path/to/classify_image_graph_def.pb'
# Geladenes trainiertes Modell laden
inception_v3 = tf.gfile.FastGFile(MODEL_PATH, 'rb')
graph_def =tf.GraphDef()
graph_def.ParseFromString(inception_v3.read())
tf.import_graph_def(graph_def, name='')
with tf.Session() as sess:
# Angabe der Extraktionsschicht
pool3 = sess.graph.get_tensor_by_name('pool_3:0')
# Eingabebild lesen
image_data = tf.gfile.FastGFile(IMG_PATH, 'rb').read()
# Extraktion von Features
features = sess.run(pool3, {'DecodeJpeg/contents:0': image_data})
print(np.squeeze(features))
Das Obige akzeptiert nur die Eingabe von JPEG-Dateien. Wenn Sie eine PNG-Datei eingeben möchten, geben Sie beim Extrahieren des Feature-Betrags den Knoten 'DecodeJpeg: 0' an, wie unten gezeigt.
features = sess.run(pool3, {'DecodeJpeg:0':image_data})
Recommended Posts