在Keras中使用tfrec文件



我觉得这应该很简单,但我这辈子都做不到。

我有这个黑色素瘤数据集(https://www.kaggle.com/datasets/cdeotte/melanoma-512x512/code)(在tfrec格式)下载到我的本地机器。

import os
import cv2
import numpy as np
import pandas as pd
import albumentations
import tensorflow as tf
from tensorflow import keras
features = {'image': tf.io.FixedLenFeature([], tf.string),
'image_name': tf.io.FixedLenFeature([], tf.string),
'patient_id': tf.io.FixedLenFeature([], tf.int64),
'sex': tf.io.FixedLenFeature([], tf.int64),
'age_approx': tf.io.FixedLenFeature([], tf.int64),
'anatom_site_general_challenge': tf.io.FixedLenFeature([], tf.int64),
'diagnosis': tf.io.FixedLenFeature([], tf.int64),
'target': tf.io.FixedLenFeature([], tf.int64),
'width': tf.io.FixedLenFeature([], tf.int64),
'height': tf.io.FixedLenFeature([], tf.int64)}
train_filepaths=tf.io.gfile.glob(path+'/train*.tfrec')
train_filepaths

this列出所有文件:[' adban 论文 用户摩尔 512 train00 - 2182. - tfrec",‘ adban 论文 用户摩尔 512 train01 - 2185. - tfrec",' adban 论文 用户摩尔 512 train02 - 2193。tfrec’,…]

但我似乎无法解码它们。(尝试的tf.io。Parse_single_example '和'tf.data. data '。TFRecordDataset',但要么得到一个解析错误或返回一个空数组)

我明白了。这将把所有的图像作为3d数组添加到列表中。

def _parse_image_function(example_proto):
return tf.io.parse_single_example(example_proto, features)
def preprocess_image(image):
image = tf.io.decode_image(image, channels=3)
return image
path = '/Users/adban/Dissertation/Moles/512'
tfimage_set = []
for filename in os.listdir(path):
#change for 
train_image_dataset = tf.data.TFRecordDataset(path+'/'+filename)
train_images = train_image_dataset.map(_parse_image_function)
for image_feature in train_images:
image_raw = preprocess_image(image_feature['image'])
image_raw_np = image_raw.numpy()
tfimage_set.append(image_raw_np)

相关内容

  • 没有找到相关文章

最新更新