
我已经
saved_model.pb在docker容器之外进行了工作(用于对象检测,而不是分类-但它们应该是相似的,更改的输出以及输入
tf1.14),这是如何做的:
import cv2import tensorflow as tfcv2.imread(filepath)flag, bts = cv.imenpre('.jpg', img)inp = [bts[:,0].tobytes()]with tf.Session(graph=tf.Graph()) as sess: tf.saved_model.loader.load(sess, ['serve'], 'directory_of_saved_model') graph = tf.get_default_graph() out = sess.run([sess.graph.get_tensor_by_name('num_detections:0'), sess.graph.get_tensor_by_name('detection_scores:0'), sess.graph.get_tensor_by_name('detection_boxes:0'), sess.graph.get_tensor_by_name('detection_classes:0')],feed_dict={'enpred_image_string_tensor:0': inp})import cv2import tensorflow as tfimport numpy as npwith tf.Session(graph=tf.Graph()) as sess: tf.saved_model.loader.load(sess, ['serve'], 'directory_of_saved_model') graph = tf.get_default_graph() # Read and preprocess an image. img = cv2.imread(filepath) # Run the model out = sess.run([sess.graph.get_tensor_by_name('num_detections:0'), sess.graph.get_tensor_by_name('detection_scores:0'), sess.graph.get_tensor_by_name('detection_boxes:0'), sess.graph.get_tensor_by_name('detection_classes:0')], feed_dict={'map/TensorArrayStack/TensorArrayGatherV3:0': img[np.newaxis, :, :, :]})我使用netron查找我的输入。
import cv2import tensorflow as tfimg = cv2.imread('path_to_image_file')flag, bts = cv2.imenpre('.jpg', img)inp = [bts[:,0].tobytes()]loaded = tf.saved_model.load(export_dir='directory_of_saved_model')infer = loaded.signatures["serving_default"]out = infer(key=tf.constant('something_unique'), image_bytes=tf.constant(inp))