天天看點

利用TFRecord和HDFS準備TensorFlow訓練資料

本系列将利用阿裡雲容器服務的機器學習解決方案,幫助您了解和掌握tensorflow,mxnet等深度學習庫,開啟您的深度學習之旅。

第三篇: 利用tfrecord和hdfs準備tensorflow訓練資料

利用TFRecord和HDFS準備TensorFlow訓練資料

資料準備和預處理是一個深度學習訓練過程中扮演着非常重要的角色,它影響着模型訓練的速度和品質。

而tensorflow對于hdfs的支援,将大資料與深度學習相內建,完善了從資料準備到模型訓練的完整鍊條。在阿裡雲容器服務深度學習解決方案中, 為tensoflow提供了oss,nas和hdfs三種分布式存儲後端的支援。

本文将介紹如何将資料轉化為tfrecord格式,并且将生成tfrecord檔案儲存到hdfs中, 這裡我們直接使用的是阿裡雲emr(e-mapreduce)的hdfs服務。

利用TFRecord和HDFS準備TensorFlow訓練資料
利用TFRecord和HDFS準備TensorFlow訓練資料

tfrecord是tensorflow内定的統一标準資料格式,可以支援多線程資料讀取,并且可以通過batch size和epoch參數來控制訓練時單次batch的大小和樣本檔案疊次數,同時能更好的利用記憶體和友善資料的複制和移動,是以是利用tensorflow進行大規模深度學習訓練的首選。

注意:tensoflow雖然支援hdfs,但是需要額外的配置,否則直接調用會報<code>environment variable hadoop_hdfs_home not set</code>。如果在容器服務的深度學習解決方案中,您就無需為此勞心。

可以利用模型訓練服務提供運作環境執行<code>convert_to_records.py</code>, 生成tfrecord資料,儲存到hdfs中

利用TFRecord和HDFS準備TensorFlow訓練資料

這樣,就可以看到一個表單。首先通過下拉框選擇剛才建立的<code>叢集名稱</code>,點選<code>訓練架構</code> ,這時可以看到一系列深度學習架構的清單,其中包括tensorflow, keras和mxnet的不同版本, 還可以指定python2和python3的版本,這裡選擇<code>tensorflow:1.0.0</code>,并且配置其他選項,點選<code>确定</code>

利用TFRecord和HDFS準備TensorFlow訓練資料

以下為具體配置:

訓練架構: tensorflow:1.0.0 gpu數量: 0 資料卷名: 不使用資料卷 執行指令: python convert_to_records.py --directory hdfs://192.168.100.206:9000/mnist-tfrecord

運作成功後,可以檢視執行的日志, 顯示tfrecord檔案已經儲存到了hdfs

利用TFRecord和HDFS準備TensorFlow訓練資料

資料準備是深度學習中非常重要的一環,而tensorflow通過與hadoop/spark生态的內建,打通了大資料和深度學習之間關聯。在阿裡雲的深度學習解決方案裡,你能夠很友善的使用oss,nas和hdfs等分布式存儲儲存和管理資料和模型。我們将在下一篇文章中向您介紹如何利用阿裡雲容器服務的深度學習解決方案在hdfs中加載tfrecord進行模型訓練并儲存check point以及模型。

歡迎掃碼加入釘釘群一起讨論:

利用TFRecord和HDFS準備TensorFlow訓練資料

繼續閱讀