Dataset.from_tensors 和 Dataset.from_tensor_slices 的區別


Dataset.from_tensors 和 Dataset.from_tensor_slices 是 TensorFlow 庫中用於建立資料集的方法。Dataset.from_tensors 從單個張量建立資料集,而 Dataset.from_tensor_slices 透過沿第一個維度切片張量來建立資料集。本文將闡述這兩種方法的區別及其在不同用例中的應用。

from_tensors

from_tensor_slices

從單個張量建立資料集

透過沿第一個維度切片張量來建立資料集

適用於可以一次性載入到記憶體中的小型資料集

適用於無法一次性載入到記憶體的大型資料集

建立一個只有一個元素的資料集

建立一個包含多個元素的資料集,每個元素都是張量沿第一個維度的一個切片

接受單個張量

接受張量元組,並沿第一個維度一起切片它們

語法

Dataset.from_tensor(tensor_data)

這裡tensor_data 是任何形狀的張量,您可以用它來建立資料集。它返回一個張量資料集,其中每個輸入張量都像資料集的一行,並且可以透過執行資料操作來操作這一行。

示例

在下面的示例中,我們首先匯入了 tensorflow 庫,然後建立了一個包含兩個元素的張量。然後使用 from_tensors 方法將張量轉換為資料集。

import tensorflow as tf

data = tf.constant([[1, 2], [3, 4]])
dataset = tf.data.Dataset.from_tensors(data)

for element in dataset:
   print(element.numpy())

輸出

[[1 2]
 [3 4]]

Dataset.from_tensor_slices

Dataset.from_tensor_slices 方法透過沿張量的第一個維度切片資料集來建立資料集。當資料量很大且無法一次性放入記憶體時,使用 from_tensor_slices 方法。結果資料集將為張量沿第一個維度上的每個元素包含一個元素。

語法

Dataset.from_tensor_slices(tensor_data)

這裡tensor_data 是任何形狀的張量,您可以用它來建立資料集。它返回一個數據集,其中每個輸入張量都是資料的列。然後可以使用此資料列執行不同的操作。

示例

import tensorflow as tf

data = tf.constant([[1, 2], [3, 4]])
dataset = tf.data.Dataset.from_tensor_slices(data)

for element in dataset:
   print(element.numpy())

輸出

[1 2]
[3 4]

結論

本文討論了 Dataset.from_tensors 方法和 Dataset.from_tensor_slices 方法的區別,這兩種方法都用於從張量資料建立資料集。from_tensors 方法使用單個張量建立資料集,而 from_tensor_slices 方法透過沿第一個維度切片張量來建立資料集。

更新於:2023年7月6日

805 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.