Tensorflow学习笔记 (用 tf.data 加载图片)

本文档详细介绍了如何利用TensorFlow的tf.data API加载和预处理图片,包括从数据集下载到检查图片,构建数据集,以及进行图片大小调整和归一化。示例中涉及到了对flower_photos数据集的操作,展示了如何为图片分配标签,并构建一个动态加载和格式化的图片数据集,以便于模型训练。
摘要由CSDN通过智能技术生成

原代码来自tensorflow

Tensorflow学习笔记 (用 tf.data 加载图片)

在这里插入图片描述

本教程提供一个如何使用 tf.data 加载图片的简单例子。

导入模块,配置

import tensorflow as tf

tf.data用于数据集的构建与预处理

AUTOTUNE = tf.data.experimental.AUTOTUNE

下载并检查数据集

从origin网址中下载文件,命名为’flower_photos’,untar=True表示对文件进行解压。
通过pathlib.Path(data_root_orig)获得文件的路径(虽然data_root_orig 也表示下载的文件路径,但pathlib.Path可以支持不同的操作系统)

import pathlib
data_root_orig = tf.keras.utils.get_file(origin='https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',                                   fname='flower_photos', untar=True)
data_root = pathlib.Path(data_root_orig)
print(data_root)

查看data_root路径下的文件

data_root路径下有5个子文件夹和1txt文件。

for item in data_root.iterdir():
  print(item)

在这里插入图片描述data_root.路径下有6个子文件,data_root.glob(’/’)表示读取子文件夹中的所有图片。

import random
all_image_paths = list(data_root.glob('*/*'))
all_image_paths

列表中的部分内容如下所示
[WindowsPath(‘C:/Users/HUAWEI/.keras/datasets/flower_photos/daisy/100080576_f52e8ee070_n.jpg’),
WindowsPath(‘C:/Users/HUAWEI/.keras/datasets/flower_photos/daisy/10140303196_b88d3d6cec.jpg’),

去掉WindowsPath,只留下图片的路径

all_image_paths = [str(path) for path in all_image_paths]
all_image_paths

在这里插入图片描述
打乱图片路径顺序
查看一共有多少图片

random.shuffle(all_image_paths)

image_count = len(all_image_paths)
image_count

检查图片

打开data_root路径下的"LICENSE.txt"文件,编码为’utf-8’,读取文件第4行以后的内容。
将列表中的每一项以’ CC-BY’作为分隔符分开。

import os
attributions = (data_root /"LICENSE.txt").open(encoding='utf-8').readlines()[4:]
attributions = [line.split(' CC-BY') for line in attributions]

将attributions变成字典

attributions = dict(attributions
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值