在訓練計算機視覺機器學習模型時,數據加載常常會成為性能瓶頸,導致在等待將數據加載到模型中時 GPU 或 TPU 資源的利用率不足。以 TFRecord 格式存儲數據集是一個行之有效的方法,然而,創建 TFRecord 通常需要大量的複雜代碼。
於是,谷歌近期開源了 TensorFlow Recorder(即 TFRecorder)項目,旨在簡化 TFRecord 的創建流程。TFRecord是一種二進位文件格式,處理數據相對高效,但要將其他數據轉為 TFRecord 較為麻煩,通常需要編寫一個數據管道來解析結構化數據,從存儲中加載圖像,然後再將結果序列化為 TFRecord 格式。
而此次開源的 TFRecorder 能夠直接從 Pandas dataframe 或 CSV 等格式寫入 TFRecords,無需再編寫複雜的代碼。
使用 TFRecorder 創建 TFRecord 只需要幾行代碼,運行方式如下:
TFRecorder 期望寫入的數據與 Google AutoML Vision 的格式相同,也就是類似 pandas dataframe 或 CSV 的格式,例如:
目前,TFRecorder 支持的數據格式還很有限,將來會進一步擴展,以支持使用任何格式的數據。
對於更龐大的數據集,TFRecorder 還提供了與 Google Cloud Dataflow 的連接性,擴展到 DataFlow 僅需要多幾行代碼配置。