我正在嘗試訓練一個具有“n”個卷積網路主體的網路,然后連接結果并預測連接的張量。
對于訓練程序,我想提供“n”個元素的網路批次。我已閱讀檔案并找到了有關 map() group_by_window() 和 window() 方法的資訊。我想根據我提供給它們的影像檔案名中包含的資訊對我的訓練和驗證資料進行分組,這就是我正在努力的地方。
如何訪問資料集物件中元素的檔案名,以便我可以在傳遞給 group_by_window() 方法的 key_func 中使用它?
我使用“image_dataset_from_directory”創建資料集物件,標簽被推斷和分類,因為我的資料放置在具有類名的子目錄中
uj5u.com熱心網友回復:
使用該屬性file_paths訪問資料集的檔案名:
import tensorflow as tf
import pathlib
dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
data_dir = tf.keras.utils.get_file('flower_photos', origin=dataset_url, untar=True)
data_dir = pathlib.Path(data_dir)
batch_size = 32
train_ds = tf.keras.utils.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="training",
seed=123,
image_size=(180, 180),
batch_size=batch_size)
def preprocess_data(images, labels):
file_paths = train_ds.file_paths
# Do something with the file_paths
# ...
print(file_paths[:5])
return images, labels
train_ds = train_ds.map(preprocess_data)
# or train_ds.group_by_window(*)
Found 3670 files belonging to 5 classes.
Using 2936 files for training.
['/root/.keras/datasets/flower_photos/daisy/7568630428_8cf0fc16ff_n.jpg',
'/root/.keras/datasets/flower_photos/dandelion/7367491658_9eb4dc2384_m.jpg',
'/root/.keras/datasets/flower_photos/tulips/18378582936_ee7085c850.jpg',
'/root/.keras/datasets/flower_photos/tulips/2426847695_4b8409402e_n.jpg',
'/root/.keras/datasets/flower_photos/roses/2949945463_366bc63079_n.jpg']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/369684.html
下一篇:如何撰寫tfrecord檔案并讀取它?錯誤是:在0'處截斷的記錄失敗,讀取的位元組數比請求的少[Op:IteratorGetNext]
