使用数据阅读器在 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 数据集中

在 Tensorflow 中使用 BigQueryReader 读取数据

Tensorflow csv数据集使用情况

TensorFlow中数据读取之tfrecords

TensorFlow学习笔记读取数据

如何*实际上*在 TensorFlow 中读取 CSV 数据?