我正在尝试使用SavedModel from the detection model zoo进行推理。我可以使用Object Detection Tutorial得到一个可行的示例。但是,它运行得很慢,我怀疑如果使用tfrecords作为输入可能会更快。此外,不幸的是,我无法使用Tensorflow 1.14。
feature_description = {'image_raw': tf.io.FixedLenFeature([], tf.string, default_value='')}
def _parse_function(example_proto):
# Parse the input `tf.Example` proto using the dictionary above.
return tf.io.parse_single_example(example_proto, feature_description)
sm_dir = '/faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28/saved_model'
sm = tf.saved_model.load_v2(sm_dir)
f = sm.signatures['serving_default']
tfr_loc = 'inputs.tfr'
raw_dataset = tf.data.TFRecordDataset(tfr_loc)
parsed_dataset = raw_dataset.map(_parse_function)
with tf.Session() as sess:
for tfr_i in parsed_dataset:
imgs_raw = tf.decode_raw(tfr_i['image_raw'], tf.float32)
imgs_raw = tf.reshape(imgs_raw, [-1, 1028, 768, 3])
inference = f(imgs_raw)
sess.run(inference)
这给了我以下错误:
tensorflow.python.framework.errors_impl.NotFoundError: Resource AnonymousIterator/AnonymousIterator0/N10tensorflow4data16IteratorResourceE does not exist.
答案 0 :(得分:0)
您需要在脚本的开头使用“急切执行”。
tf.enable_eager_execution()
参考:https://www.tensorflow.org/api_docs/python/tf/data/Dataset#iter