读取TIFF图像时出现AttributeError:“解码”

时间:2020-05-28 12:04:06

标签: python tensorflow tiff sys python-imageio

这是我尝试运行的代码的一部分:

import numpy as np
import os
import tensorflow as tf
import imageio
import sys
    #Create tensorflowflow dataset
    dataset = tf.data.Dataset.from_tensor_slices((image_paths, labels))

    if not is_test:
        dataset = dataset.shuffle(num_of_samples)
        dataset = dataset.repeat(None)

    dataset = dataset.map(self._parse_dataset)

    if not is_test:
        batched_dataset = dataset.batch(self.batch_size, drop_remainder=True).prefetch(20)
    else:
        batched_dataset = dataset.batch(self.test_batch_size)
    #Create the iterator
    return batched_dataset, num_of_samples, path_strings

def get_batch(self, subset="train"):
    batch_of_images = self.iterators[subset].get_next()
    return batch_of_images

def _read_tif(self, file_path):
    file_path = file_path.decode(sys.getdefaultencoding())
    try :
        im = imageio.imread(file_path)
    except:
         im = np.zeros((self.width, self.height, 3))
    if len(im.shape) != 3:
        im = np.repeat(im[:, :, np.newaxis], 3, axis=2)
    return im

def _read_image(self, file_path):
    return tf.py_function(func=self._read_tif, inp=[file_path], Tout=tf.uint8)

并且出现以下错误:

File "C:\PROJECTS_RUNNING2\pipeline\data_loader\data_generator.py", line 131, in _read_tif
    file_path = file_path.decode(sys.getdefaultencoding())

AttributeError: 'tensorflow.python.framework.ops.EagerTensor' object has no attribute 'decode'

file_path在run.py中定义,如下所示:

def main(config_file_path):

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
config =tf.ConfigProto(gpu_options=gpu_options)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
tf.reset_default_graph()

config = parse_config_file(config_file_path)

#Create the experiment output folders, this is where the outputs will be saved
output_folder_path = config["output_path"]
output_path = create_output_folder(output_folder_path,  config["experiment_name"])
copyfile(config_file_path, os.path.join(output_path, "%s_parameters.json"       % config["experiment_name"]))

data_generator = DataGenerator(config)

在配置文件中正确定义了输入和输出数据集文件路径。

我是一个非常初级的编码人员,尽管必须使用脚本来分析图像,但我正在努力使其开始运行。我正在使用Python 3.7和Tensorflow 1.14。非常感谢您解决此错误的任何帮助!

0 个答案:

没有答案