我从这个问题及其答案中收集[feeding image data in tensorflow for transfer learning],为导入的图形添加新的操作会有所帮助,但我不清楚结果图是否会自动处理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})
在修改图表并在底部添加操作后,第二个语句是否有效?
答案 0 :(得分:2)
上一个问题的答案围绕将图表从JPEG转换为PNG。如果指定了网络,则无法同时处理这两种情况。
如果您需要处理这两种类型,您有几个选择。
使用PIL或TensorFlow自行处理解码,并将解码后的图像字节输入现有解码节点输出的图形中。
如果您对网络的馈送感到满意,那么请执行两步操作,重新检测输入以从变量读取,并创建两个将解码输出写入该变量的新节点。
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)
创建一个更复杂的条件输入路径,您可以在其中提供一个标志值,告诉它它是什么数据类型,并使用TF条件仅拉取指定的解码节点。
Write a new op根据数据开头的格式字符串,根据需要调度decode_png或decode_jpeg。
我希望我们会暴露一些字符串比较操作,以便你可以在纯TensorFlow中编写(4),但我没有任何时间表。