在訓練計算機視覺機器學習模型時,資料載入常常會成為效能瓶頸,導致在等待將資料載入到模型中時 GPU 或 TPU 資源的利用率不足。以 TFRecord 格式儲存資料集是一個行之有效的方法,然而,建立 TFRecord 通常需要大量的複雜程式碼。
於是,谷歌近期開源了 TensorFlow Recorder(即 TFRecorder)專案,旨在簡化 TFRecord 的建立流程。TFRecord是一種二進位制檔案格式,處理資料相對高效,但要將其他資料轉為 TFRecord 較為麻煩,通常需要編寫一個資料管道來解析結構化資料,從儲存中載入影象,然後再將結果序列化為 TFRecord 格式。而此次開源的 TFRecorder 能夠直接從 Pandas dataframe 或 CSV 等格式寫入 TFRecords,無需再編寫複雜的程式碼。
使用 TFRecorder 建立 TFRecord 只需要幾行程式碼,執行方式如下:
import pandas as pd
import tfrecorder
df = pd.read_csv(...)
df.tensorflow.to_tfrecord(output_dir="gs://my/bucket")
TFRecorder 期望寫入的資料與 Google AutoML Vision 的格式相同,也就是類似 pandas dataframe 或 CSV 的格式,例如:
split | image_uri | label |
TRAIN | gs://my/bucket/image1.jpg | cat |
目前,TFRecorder 支援的資料格式還很有限,將來會進一步擴充套件,以支援使用任何格式的資料。
關於 TFRecorder 的更多資訊,可檢視谷歌開源部落格的介紹:https://opensource.googleblog.com/2020/08/introducing-tensorflow-recorder.html
[admin
]