PythonのTensorFlowライブラリにおけるdataset.from_tensors
とdataset.from_tensor_slices
の違いについて説明します。
dataset.from_tensors
は、1つのテンソルを入力として受け取り、それを単一の要素とするデータセットを作成します。つまり、入力されたテンソルはデータセット内でひとつの要素として扱われます。
一方、dataset.from_tensor_slices
は、複数のテンソル(または配列)を入力として受け取り、それらをスライスしてデータセットを作成します。各テンソルの対応する要素がペアとなり、データセット内で複数の要素を持つことができます。この方法では、テンソルの最初の次元のサイズが一致している必要があります。
以下にシンプルなコード例を示します。
import tensorflow as tf
# データセットの作成
tensor = tf.constant([1, 2, 3, 4, 5])
dataset_1 = tf.data.Dataset.from_tensors(tensor)
tensors_1 = tf.constant([1, 2, 3])
tensors_2 = tf.constant([4, 5, 6])
dataset_2 = tf.data.Dataset.from_tensor_slices((tensors_1, tensors_2))
# データセットの要素を表示
for element in dataset_1:
print(element.numpy())
# 出力: [1 2 3 4 5]
for element in dataset_2:
print(element[0].numpy(), element[1].numpy())
# 出力: 1 4
# 2 5
# 3 6
以上が、dataset.from_tensors
とdataset.from_tensor_slices