使用数据阅读器在 tensorflow 中读取 tiff 文件的正确方法
Posted
技术标签:
【中文标题】使用数据阅读器在 tensorflow 中读取 tiff 文件的正确方法【英文标题】:Correct way to read tiff file in tensorflow using data reader 【发布时间】:2018-02-19 16:55:50 【问题描述】:我正在使用 tensorflow 读取一些 tiff 格式的地理空间图像数据。我想使用类似的东西:
images = tf.convert_to_tensor(image_list, dtype=tf.string)
img_contents = tf.read_file(images)
img = tf.image.decode_image(img_contents, channels=3)
我想我需要做的是自己编写一个解码函数。但是 img_contents 实际上是一个张量字符串,我不能直接使用它来访问文件。有什么方法可以读取 tiff 图像吗?
【问题讨论】:
【参考方案1】:您可以在 Python 中解析您的文件,并通过 feed_dict 传递给 TensorFlow 训练图,以下代码仅用于演示但不可运行:
def read_tiff_file(file_path):
#### code that read tiff_file content
return image_content # return the image content with 18 * 18 * 3
image_pl = tf.placeholder([18, 18, 3], tf.float32) # suppose your image is 18*18 with 3 channels
## constructing tf.graph with image_pl
## ...
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
with tf.Session as sess:
for file_name in file_name_list:
image_content = read_tiff_file(file_name)
sess.run(train_step, feed_dict=image_pl:image_content)
【讨论】:
只是想知道,有什么办法可以继续使用带有队列的 dataReader 吗? @QSMonk 没有 tiff_decode,所以我应该编写操作,否则不可能。以上是关于使用数据阅读器在 tensorflow 中读取 tiff 文件的正确方法的主要内容,如果未能解决你的问题,请参考以下文章
如何将多文件(b、t、f)形状的数据流式传输到 TensorFlow 数据集中