tf.data

tf.data模块

基于tf.data API, 我们可以使用简单的代码来构建复杂的输入,可以轻松处理大量数据、不同的数据格式以及复杂的转换。

tf.data API 最重要的概念:tf.data.Dataset 表示一系列元素。其中每个元素包含一个或多个Tensor对象。例如,在图片管道中,一个元素可能是单个训练样本,具有一对表示图片数据和标签的张量。

有两种方式来创建tf.data.Dataset
1、直接从Tensor创建Dataset
例如Dataset.from_tensor_slices();当然Numpy也是可以的,TensorFlow会自动将其转化为Tensor。

2、通过对一个或多个tf.data.Dataset对象来使用变换(例如Dataset.zip)来创建Dataset。

认识Dataset
一个Dataset对象包含多个元素,每个元素的结构都相同。每个元素包含一个或多个tf.Tensor对象,这些对象被称为组件。

使用Dataset
在TensorFlow2.0环境下可以直接对Dataset经迭代处理。

tf.data模块的使用:

# -*- coding: UTF-8 -*-
"""
Author: LGD
FileName: use_tf_data
DateTime: 2020/11/24 09:34 
SoftWare: PyCharm
"""
import tensorflow as tf

# 将传入的数据转化为tensor格式
# dataset1 = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5, 6, 7])
# print(dataset1)
# for element in dataset1:
#     print(element)  # 输出的是tensor数据格式
#     print(element.numpy())  # tensor里面有个numpy()方法,可以将tensor格式转化为numpy格式输出(2.0版本专有)

# dataset2 = tf.data.Dataset.from_tensor_slices([[1, 2], [3, 4], [5, 6]])
# print(dataset2)
# for element in dataset2:
#     print(element)  # 输出的是tensor数据格式
#     print(element.numpy())  # tensor里面有个numpy()方法,可以将tensor格式转化为numpy格式输出(2.0版本专有)

# dataset_dic = tf.data.Dataset.from_tensor_slices({
#     'a': [1, 2, 3, 4],
#     'b': [6, 7, 8, 9],
#     'c': [12, 13, 14, 15]
# })
#
# print(dataset_dic)  # <TensorSliceDataset shapes: {a: (), b: (), c: ()}, types: {a: tf.int32, b: tf.int32, c: tf.int32}>
#
# for ele in dataset_dic:
#     print(ele)

import numpy as np

# dataset_np = tf.data.Dataset.from_tensor_slices(np.array([1, 2, 3, 4, 5, 6, 7]))
#
# # take只取出前几个
# for element in dataset_np.take(4):  # 取出前四个
#     print(element)
#     print(element.numpy())
#
# print(dataset_np.take(1))
# print(next(iter(dataset_np.take(1))))
#
# # dataset对于数据的变换
# # 1、乱序
# dataset = dataset_np.shuffle(7)
# for ele in dataset:
#     print(ele.numpy())
#
# # 2、循环重复
# dataset = dataset.repeat(count=3)
# print("循环")
# for ele in dataset:
#     print(ele.numpy())
#
# # 3、数据集划分批次
# dataset = dataset.batch(3)  # 划分3个批次
# for ele in dataset:
#     print(ele.numpy())

dataset = tf.data.Dataset.from_tensor_slices(np.array([1, 2, 3, 4, 5, 6, 7]))
# 数据平方
dataset = dataset.map(tf.square)
for ele in dataset:
    print(ele.numpy())

对人工智能和计算机视觉技术感兴趣的小伙伴们可以关注一下下面的公众号哟,还有海量资源在线更新,更有精彩电影等你来下载。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hong_Youth

您的鼓励将是我创作的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值