Tensorflow2.0的tf.keras中batch()、map()、shuffle()、repeat()用法总结
概述1.batch():batch在阴影数据时按size大小输出迭代。2.map():map用法和在Python中基本相同,接受一个函数对象参数,使用Dataset读取的每个数据都会被作为这个函数对象的参数进行计算输出,组成新的数据集。3.shuffle():shuffle作用于打乱数据集中的元素。4.repeat():repeat将数据集重复多次用法1.batch(size)import ten
概述
1.batch():batch在阴影数据时按size大小输出迭代。
2.map():map用法和在Python中基本相同,接受一个函数对象参数,使用Dataset读取的每个数据都会被作为这个函数对象的参数进行计算输出,组成新的数据集。
3.shuffle():shuffle作用于打乱数据集中的元素。
4.repeat():repeat将数据集重复多次
用法
1.batch(size)
import tensorflow as tf
import numpy as np
dataset = tf.data.Dataset.from_tensor_slices(np.array([[0, 1, 2],[4, 5, 6]]))
dataset = dataset.batch(1)
for data in dataset:
print(data)
print("---")
OUT:
将size设置为2
OUT:数据不足时则会输出全部剩余。
2.map()
dataset = tf.data.Dataset.from_tensor_slices({'data':np.array([1.0, 2.0, 3.0, 4.0, 5.0]),'index':np.random.uniform(size=(5,3))})
def get_new_dataset(dataset):
data = dataset['data']
index = dataset['index']
return data, index
dataset = dataset.map(get_new_dataset)
for data, index in dataset:
print(data,"===",index)
print("---")
OUT:
3.shuffle(buffer_size)
buffer_size:表示打乱数据集所使用的缓冲区的大小
import tensorflow as tf
import numpy as np
dataset = tf.data.Dataset.from_tensor_slices({'data':np.array([1.0, 2.0, 3.0, 4.0, 5.0]), 'index':np.random.uniform(size=(5,3))}).shuffle(buffer_size=10).batch(2)
for small_dataset in dataset:
print(small_dataset['data'],"===",small_dataset['index'])
print("---")
First OUT:
Second OUT:
4.repeat()
import tensorflow as tf
import numpy as np
dataset = tf.data.Dataset.from_tensor_slices({'data':np.array([1.0, 2.0, 3.0, 4.0, 5.0]), 'index':np.random.uniform(size=(5,3))}).shuffle(buffer_size=10).batch(2)
dataset = dataset.repeat(2)
for small_dataset in dataset:
print(small_dataset['data'],"===",small_dataset['index'])
print("---")
uniform的用法请参考:https://blog.csdn.net/silent1cat/article/details/119750523
希望这篇文章对大家有所帮助!

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)