【问题标题】:Unfurling TFRecords growing slower and slower展开 TFRecords 越来越慢
【发布时间】:2020-01-23 17:34:45
【问题描述】:

我正在尝试将 TFRecord 数据集转换回图像,我正在使用以下代码来执行此操作:

def get_im_and_label_helper(parsed_features, im_format, label_format):
    im = tf.image.decode_png(parsed_features['image/encoded'])
    label = tf.image.decode_png(parsed_features['image/segmentation/class/encoded'])
    im, label = im.eval(), label.eval()
    return im, label

for tfr_file_path_name in tfr_files_list:
    tfr_file_path = os.path.join(sub_dataset_dir, tfr_file_path_name)
    record_iterator = tf.python_io.tf_record_iterator(tfr_file_path)

    for string_record in record_iterator:
        parsed_features = tf.parse_single_example(string_record, READ_FEATURES)

        filename = parsed_features['image/filename'].eval().decode("utf-8")
        im, label = get_im_and_label_helper(parsed_features, im_format, label_format)
        imageio.imwrite(os.path.join(target_dir, "images", filename + ".png"), im)
        imageio.imwrite(os.path.join(target_dir, "labels", filename + ".png"), label)

它运行良好,符合我的预期 - 提取图像和标签并将它们保存在适当的位置。它开始很快,随着它的进行变得越来越慢。我对 tensorflow 没有经验,所以我假设我正在使一些计算图变得越来越大,但我真的不知道。

有什么想法吗?

【问题讨论】:

    标签: tensorflow tensorflow-datasets tfrecord


    【解决方案1】:

    使用tf.enable_eager_execution()后跟tf.executing_eagerly(),并将所有.eval()替换为.numpy()解决了问题。

    【讨论】:

      猜你喜欢
      • 2016-03-05
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 2021-12-11
      • 2016-11-03
      • 2016-06-12
      相关资源
      最近更新 更多