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()
理解するのを手伝ってください
- map を実行できるのに、len(x) を使用して apply 関数を使用できないのはなぜですか?
- 独自のカスタム関数を作成し、事前に構築された関数を使用して Dataset.map および Dataset.apply 中に渡す方法は?