dataset.from_tensors


PythonのTensorFlowライブラリにおけるdataset.from_tensorsdataset.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_tensorsdataset.from_tensor_slices