1

TensorFlow で map と apply 関数を使用する方法を理解しようとしています。目的は、マップが操作を並列化するオプションを提供するため、データを TensorFlow に読み込みながら、すべての基本的なデータ前処理ステップを使用することです。

a_list = [b"THis is for Testing"]

a_list を tf データセット形式に変換する

a_dataset = tf.data.Dataset.from_tensors(a_list)

print(list(a_dataset.as_numpy_iterator()))
[array([b'THis is for Testing'], dtype=object)]

マップを適用してリストの長さを計算する

a_dataset_len = a_dataset.map(lambda x: len(x))

print(list(a_dataset_len.as_numpy_iterator()))

[1]

マップを適用してすべての文字列を小文字に変換する

a_dataset_lower = a_dataset.map(lambda x: x.lower())
AttributeError: 'Tensor' object has no attribute 'lower'

a_list で適用関数を使用する

a_dataset.apply(lambda x:len(x))
TypeError: object of type 'TensorDataset' has no len()

理解するのを手伝ってください

  1. map を実行できるのに、len(x) を使用して apply 関数を使用できないのはなぜですか?
  2. 独自のカスタム関数を作成し、事前に構築された関数を使用して Dataset.map および Dataset.apply 中に渡す方法は?
4

0 に答える 0