Как использовать tf.data.Dataset в выводе обнаружения, как dataloader в Pytorch? - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь использовать обнаружение для фильтрации большого набора данных, поэтому я хочу использовать tf.data.Dataset, чтобы изображения можно было группировать и затем выводить в пакетном режиме, у меня был файл модели .pb, и мой обычный вывод в один кадр: 1 загрузить файл .pb в график

    with tf.gfile.GFile(pb_path, 'rb') as f:
        graph_def = tf.GraphDef()
        # Parses a serialized binary message into the current message.
        graph_def.ParseFromString(f.read())
        # Import a serialized TensorFlow `GraphDef` protocol buffer
        # and place into the current default `Graph`.
        _ = tf.import_graph_def(graph_def, name='')

2 3 выходных тензора, соответствующих ограничительной рамке, баллу, результату надписи и входному тензору для изображения:

input_tensor = sess.graph.get_tensor_by_name('input_1:0')
output_tensor1 = sess.graph.get_tensor_by_name('output_1:0')
output_tensor2 = sess.graph.get_tensor_by_name('output_2:0')
output_tensor3 = sess.graph.get_tensor_by_name('output_3:0')

3 Затем я использую sess.run() с feed_dict для вывода:

results = sess.run([output_tensor1, output_tensor2, output_tensor3], {input_tensor: [image]}

Однако я заметил, что tf.data.Dataset обычно использовал iterator в sess.run(), например:

dataset = tf.data.Dataset.from_tensor_slices((tf.constant(image_names)))
op = dataset.make_one_shot_iterator().get_next()
sess.run(op, feed_dict)

ТАК, как я могу отредактировать код в этой части sess.run(), чтобы он работал в моей задаче обнаружения? Я не знаю, как переключить output_tensors на iterators В Pytorch легко использовать Dataloader API и собирать образцы изображений в наборе данных, так что насчет TF?

...