概述
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
希望这篇文章对大家有所帮助!