我有一个DataFrame,其中每一行都是两列= [图像列表,标签]。我想创建一个tf.data.Dataset对象,该对象将处理后的图像作为堆栈或单独的图像和标签吐出来。
我尝试使用map函数和生成器。
我尝试了两种方法:
AUTOTUNE = tf.data.experimental.AUTOTUNE
def read_images(set_path):
images = tf.io.gfile.glob(set_path+'/*.png') # Just reading the images list
return images, tf.strings.split(file_path, '/')[-2]
ds = tf.data.Dataset.from_tensor_slices(train['file_path'].values)
labeled_ds = ds.map(read_images, num_parallel_calls=AUTOTUNE)
和
def gen():
for idx, row in train.iterrows():
yield glob.glob(row['file_path']+'/*.png'), row['label']
ds = tf.data.Dataset.from_generator(gen, output_types=(tf.string, tf.string), output_shapes=([None], [None])) # This outputs error, not sure about output_types and output_shapes
有帮助吗?