如何使用Tensorflow使用文件路径创建花卉数据集的对?
要创建(image, label)对,需要将路径首先转换为路径组件列表。然后,将倒数第二个值添加到目录中。接下来,将标签编码为整数格式。压缩字符串转换为张量,然后将其重新调整为所需大小。
更多Python相关文章,请阅读:Python 教程
我们将使用包含数千个花朵图像的花卉数据集。它包含5个子目录,每个类别有一个子目录。
我们使用Google Colaboratory运行以下代码。Google Colab或Colaboratory可以在浏览器上运行Python代码,并且不需要进行任何配置,并且可以免费使用GPU(图形处理单元)。Colaboratory是在Jupyter笔记本上构建的。
print("将文件路径转换为(image,label)对的函数")
print("首先,将路径转换为路径组件列表")
print("然后,将倒数第二个值添加到类目录中")
print("标签编码为整数")
def get_label(file_path):
parts = tf.strings.split(file_path, os.path.sep)
one_hot = parts[-2] == class_names
return tf.argmax(one_hot)
print("将压缩字符串转换为3维int张量")
print("将图像重新调整为所需大小")
def decode_img(img):
img = tf.image.decode_jpeg(img, channels=3)
return tf.image.resize(img, [img_height, img_width])
print("从文件中加载原始数据作为字符串值")
def process_path(file_path):
label = get_label(file_path)
img = tf.io.read_file(file_path)
img = decode_img(img)
return img, label
代码来源:https://www.tensorflow.org/tutorials/load_data/images
输出
将文件路径转换为(image,label)对的函数
首先,将路径转换为路径组件列表
然后,将倒数第二个值添加到类目录中
标签编码为整数
将压缩字符串转换为3维int张量
将图像重新调整为所需大小
从文件中加载原始数据作为字符串值
解释
- 定义了一个“get_label”函数,将文件路径转换为(image,label)对。
- 将文件路径转换为路径组件列表。
- 将倒数第二个值添加到类目录中。
- 接下来,将标签编码为整数。
- 使用名为“decode_img”的另一个函数来调整图像大小并返回它。
- 首先将压缩字符串转换为三维整数张量,然后调整大小。
- 定义了另一个名为“process_path”的函数,该函数将原始数据从文件中加载为字符串值。