AttributeError: «декодировать» при чтении изображений TIFF - PullRequest
0 голосов
/ 28 мая 2020

Вот часть кода, который я пытаюсь запустить:

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'

Путь к файлу определяется при запуске. 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. Мы будем очень благодарны за любую помощь в устранении этой ошибки!

...