如何使用 Python 将 Tensorflow 与 tf.data 结合使用,以便更精细地控制?
pythonserver side programmingprogrammingtensorflow更新于 2024/5/31 18:52:17
‘tf.Data’ 有助于自定义模型构建管道,方法是对数据集中的数据进行混洗,以便所有类型的数据均匀分布(如果可能)。
阅读更多: 什么是 TensorFlow,以及 Keras 如何与 TensorFlow 配合使用来创建神经网络?
我们将使用 flowers 数据集,其中包含数千朵花的图像。它包含 5 个子目录,每个类都有一个子目录。
我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 可帮助在浏览器上运行 Python 代码,并且无需配置,可以免费访问 GPU(图形处理单元)。Colaboratory 是在 Jupyter Notebook 之上构建的。
print("定义自定义输入管道")
list_ds = tf.data.Dataset.list_files(str(data_dir/'*/*'), shuffle=False)
list_ds = list_ds.shuffle(image_count, reshuffle_each_iteration=False)
for f in list_ds.take(5):
print(f.numpy())
class_names = np.array(sorted([item.name for item in data_dir.glob('*') if item.name != "LICENSE.txt"]))
print(class_names)
print("数据集被分成训练集和验证集")
val_size = int(image_count * 0.2)
train_ds = list_ds.skip(val_size)
val_ds = list_ds.take(val_size)
print("显示每个子集的长度below")
print(tf.data.experimental.cardinality(train_ds).numpy())
print(tf.data.experimental.cardinality(val_ds).numpy())
代码来源:https://www.tensorflow.org/tutorials/load_data/images
输出
定义自定义输入管道 b'/root/.keras/datasets/flower_photos/dandelion/14306875733_61d71c64c0_n.jpg' b'/root/.keras/datasets/flower_photos/dandelion/8935477500_89f22cca03_n.jpg' b'/root/.keras/datasets/flower_photos/sunflowers/3001531316_efae24d37d_n.jpg' b'/root/.keras/datasets/flower_photos/daisy/7133935763_82b17c8e1b_n.jpg' b'/root/.keras/datasets/flower_photos/tulips/17844723633_da85357fe3.jpg' ['daisy' 'dandelion' 'roses' 'sunflowers' 'tulips'] 数据集分为训练集和验证集 每个子集的长度如下所示 2936 734
解释
- keras.preprocessing 实用程序是一种使用图像目录创建 'tf.data.Dataset' 的方法。
- 为了更好地控制这一点,可以使用 'tf.data' 编写自定义输入管道。
- 文件的树结构可用于编译 'class_names' 列表。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

