tensorFlow2.1下的tf.data.Dataset.from_tensor_slices()的用法


tensorFlow2.1下的tf.data.Dataset.from_tensor_slices()的用法

一、總結

一句話總結:

將輸入的張量的第一個維度看做樣本的個數,沿其第一個維度將tensor切片,得到的每個切片是一個樣本數據。實現了輸入張量的自動切片。
# from_tensor_slices 為輸入張量的每一行創建一個帶有單獨元素的數據集
ts = tf.constant([[1, 2], [3, 4]])
ds = tf.data.Dataset.from_tensor_slices(ts)   # [1, 2], [3, 4]

 

 

 

二、tensorFlow2.1下的tf.data.Dataset.from_tensor_slices()的用法

轉自或參考:tensorFlow2.1下的tf.data.Dataset.from_tensor_slices()和batch()的用法
https://www.pythonheidong.com/blog/article/287038/

 

1、tf.data.Dataset.from_tensor_slices

它的作用是切分傳入Tensor的第一個維度,生成相應的dataset。

將輸入的張量的第一個維度看做樣本的個數,沿其第一個維度將tensor切片,得到的每個切片是一個樣本數據。實現了輸入張量的自動切片。

可以是numpy格式,也可以是tensorflow的tensor的格式,函數會自動將numpy格式轉為tensorflow的tensor格式

輸入可以是一個tensor  一個tensor字典(字典的每個key對應的value是一個tensor,要求各tensor的第一個維度相等)  一個tensor tuple(tuple 的每個元素是一個tensor,要求各tensor的第一個維度相等)。

示例 1:

import tensorflow as tf t = tf.range(10.)[:, None] t = tf.data.Dataset.from_tensor_slices(t) #<TensorSliceDataset shapes: (1,), types: tf.float32> for i in t: print(i.numpy()) # [0.] # [1.] # [2.] # [3.] # [4.] # [5.] # [6.] # [7.] # [8.] # [9.] 

示例2:

# from_tensor_slices 為輸入張量的每一行創建一個帶有單獨元素的數據集 ts = tf.constant([[1, 2], [3, 4]]) ds = tf.data.Dataset.from_tensor_slices(ts) # [1, 2], [3, 4] 

2、batch函數

用示例看下batch函數

batch_t = t.batch(3) for i in batch_t: print(i.numpy()) [[0.] [1.] [2.]] [[3.] [4.] [5.]] [[6.] [7.] [8.]] [[9.]] 
 



 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM