我正在训练卷积自动编码器,我有这个代码加载数据(图像):
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
'path/to/images',
image_size=image_size
)
normalization_layer = layers.experimental.preprocessing.Rescaling(1./255)
def adjust_inputs(images, labels):
return normalization_layer(images), normalization_layer(images)
normalized_train_ds = train_ds.map(adjust_inputs)
由于我不需要类标签,但将其自身图像为Y,因此我将函数adjust_inputs
Map到数据集。但现在当我尝试访问属性filenames
时,我得到错误:AttributeError: 'MapDataset' object has no attribute 'filenames'
。这是合乎逻辑的,因为MapDataset不是Dataset。
如何附加或获取数据集中已加载图像的文件名?
我真的很惊讶,没有一个更容易的界面,这看起来很常见的事情。
2条答案
按热度按时间flseospp1#
如果您想将
filepaths
添加为数据集的一部分:您必须确保对路径使用相同的批处理大小。
5us2dqdw2#
我是这样做的。
训练完我的模型后,我重新加载了所有的图像,这一次使用选项
shuffle=False
,并在我的模型中运行它们以提取特征。由于shuffle是关闭的,图像和文件路径的排序是相同的。因此索引为0的图像,其对应的特征在索引为0,其文件路径在索引为0。