要批量讀取圖片,您可以使用TensorFlow中的tf.data.Dataset
API。以下是一個簡單的示例代碼,演示了如何批量讀取圖片:
import tensorflow as tf
# 創建一個包含圖片文件路徑的列表
file_paths = ["image1.jpg", "image2.jpg", "image3.jpg", ...]
# 創建一個Dataset對象,將文件路徑列表轉換為Dataset
dataset = tf.data.Dataset.from_tensor_slices(file_paths)
# 定義一個函數,用于讀取和解碼圖片
def load_and_preprocess_image(file_path):
image = tf.io.read_file(file_path)
image = tf.image.decode_jpeg(image, channels=3)
image = tf.image.resize(image, [224, 224]) # 調整圖片大小
image = tf.cast(image, tf.float32) / 255.0 # 將像素值歸一化到[0, 1]
return image
# 使用map函數將load_and_preprocess_image函數應用到Dataset中的每個元素
dataset = dataset.map(load_and_preprocess_image)
# 設置batch大小,將數據集分批次讀取
batch_size = 32
dataset = dataset.batch(batch_size)
# 創建一個迭代器,用于遍歷數據集
iterator = iter(dataset)
# 讀取一個batch的圖片數據
images = next(iterator)
# 輸出shape
print(images.shape)
在這個示例中,首先創建一個包含圖片文件路徑的列表file_paths
,然后將這個列表轉換為tf.data.Dataset
對象。定義一個函數load_and_preprocess_image
用于讀取和處理圖片數據。接著,使用map
函數將load_and_preprocess_image
函數應用到數據集中的每個元素,然后使用batch
函數將數據集分批次讀取。最后,創建一個迭代器并使用next
函數讀取一個batch的圖片數據。