tf.data.Dataset.from_tensor_slices()

tf.data.Dataset.from_tensor_slices 函数创建一个代表数组切片的 tf.data.Dataset。系统会在第一个维度内对该数组进行切片,例:

    import tensorflow as tf
    import numpy as np
    
    features, labels = (np.random.sample((6,3)),np.random.sample((6,1)))
    print((features, labels))
    data = tf.data.Dataset.from_tensor_slices((features,labels))
    print(list(data.as_numpy_iterator()))

使用tf.data.DataSet存储与处理数据。
对于处理过程中产生的对象,如果想要查看某个对象中包含的具体数据内容。通常会有两种方式:list(as_numpy_iterator())和numpy()

那么应该在什么时候该选择哪一个呢?
答案是:
当对象类型是Tensor对象时,选择numpy(),而tensor对象可以直接使用切片的方式选择出数据。
当对象类型是windowDataSet等transform方法处理后的DataSet类型,且其子对象是tensor对象时, 可以选择list(as_numpy_iterator()),这里是tf.data.Dataset.from_tensor_slices()处理过的,所以用list(as_numpy_iterator())查看输出。

输出:

(array([[0.98895762, 0.26454848, 0.0183561 ],
       [0.51641159, 0.8714609 , 0.2763759 ],
       [0.74152886, 0.74101885, 0.39290169],
       [0.27559503, 0.36266356, 0.23744076],
       [0.5434669 , 0.95196242, 0.00877751],
       [0.28143582, 0.47334865, 0.71569477]]), array([[0.37186106],
       [0.68210544],
       [0.19374422],
       [0.75647886],
       [0.25159219],
       [0.31047784]]))
    [(array([0.98895762, 0.26454848, 0.0183561 ]), array([0.37186106])), (array([0.51641159, 0.8714609 , 0.2763759 ]), array([0.68210544])), (array([0.74152886, 0.74101885, 0.39290169]), array([0.19374422])), (array([0.27559503, 0.36266356, 0.23744076]), array([0.75647886])), (array([0.5434669 , 0.95196242, 0.00877751]), array([0.25159219])), (array([0.28143582, 0.47334865, 0.71569477]), array([0.31047784]))]

你可能感兴趣的:(函数使用,机器学习,深度学习,神经网络)