将 jpeg 和 png 图像同时提供给预训练的 inception3 模型?

Feeding both jpeg and png images to the pre-trained inception3 model?

我从这个问题及其答案 [ ] 中了解到,向导入的图形添加新操作会有所帮助,但我不清楚生成的图形是否可以同时处理 png 和 jpeg自动输入,同时输入。

上述问题的答案提示如下:

png_data = tf.placeholder(tf.string, shape=[])
decoded_png = tf.image.decode_png(png_data, channels=3)
# ...

graph_def = ... 
softmax_tensor = tf.import_graph_def(
    graph_def,
    input_map={'DecodeJpeg:0': decoded_png},
    return_elements=['softmax:0'])

sess.run(softmax_tensor, {png_data: ...})

这是否意味着 PNG 输入必须作为

传入
sess.run(softmax_tensor, {png_data: image_array})

并且必须将 JPEG 输入作为

提供给图形

sess.run(softmax_tensor, {'DecodeJpeg:0': image_array})

修改图形并在底部添加 op 后,第二个语句是否有效?

上一个问题的答案围绕着将图形从 JPEG 转换为 PNG。对于指定的网络,它无法同时处理这两者。

如果您需要处理这两种类型,您有几个选择。

  1. 使用 PIL 或 TensorFlow 自行处理解码,并将解码后的图像字节馈送到现有解码节点输出处的图中。

  2. 如果您愿意为网络提供数据,则执行两步操作,重新连接输入以从变量中读取,并创建两个新节点,将解码后的输出写入该节点变量。

    sess.run(feed_jpeg, feed_dict={in_jpg: my_jpg}) sess.run(the_network)

sess.run(feed_png, feed_dict={in_png: my_png})
sess.run(the_network)
  1. 创建一个更复杂的条件输入路径,您可以在其中提供一个标志值,告诉它它是什么数据类型,并使用 TF 条件仅拉取指定的解码节点。

  2. Write a new op 根据数据开头的格式字符串,根据需要分派到 decode_png 或 decode_jpeg。

我希望我们会公开一些字符串比较操作,以便您可以在纯 TensorFlow 中编写 (4),但我没有任何一个时间表。