Google最新發布大規模分散式機器學習架構Tensor2Robot
Github項目推薦 | Google-Research發布基於TensorFlow的大規模分散式機器學習架構Tensor2Robot
?
?Tensor2Robot - Distributed machine learning infrastructure for large-scale robotics research
本項目包含分散式機器學習和強化學習基礎結構。
它在Alphabet內部使用,開源的目的是使Robotics @ Google的研究為更廣泛的機器人和計算機視覺社區更具可重現性。
Github項目地址:
https://github.com/google-research/tensor2robot
Site:
https://ai.google/research/teams/brain/robotics/
已經使用Tensor2Robot的項目和文章有:QT-Opt、Grasp2Vec 等等。
特點
Tensor2Robot(以下簡稱:T2R)是一個用於大規模深度神經網路的訓練、評估和推理的庫,專門針對與機器人感知和控制相關的神經網路而定製。它基於TensorFlow深度學習框架進行開發。
機器人研究中的常見任務涉及向神經網路圖添加新的感測器模態或新的標籤張量。這涉及到:
1)更改保存的數據,
2)在訓練時更改數據管道代碼以便讀取新模態,
3)添加新的tf.placeholder以在測試時處理新的輸入模態。
Tensor2Robot的主要功能是為步驟 2 和 3 自動生成TensorFlow代碼。Tensor2Robot可以自動生成模型的佔位符以匹配其輸入,或者導出可以與TFExportedSavedModelPolicy一起使用的SavedModel,這樣原始的圖形就不必重新構建。。
機器學習中遇到的另一個常見任務涉及到裁剪/變換輸入模態,例如jpeg解碼和在訓練時應用隨機圖像失真。Preprocessor(預處理器類)聲明它自己的輸入特性和標籤,並且期望輸出與輸入要素和模型標籤兼容的形狀。你可以在 預處理器的鏈接中找到相關示例。
快速開始
環境要求:Python 3
T2R 模型
要使用Tensor2Robot,用戶需要定義一個T2RModel對象,該對象按規範定義其輸入要求——一個用於其功能(feature_spec),另一個用於其標籤(label_spec):
這些規範定義了所有必需和可選的張量,以便於調用model_fn。 使用模型的輸入管道參數化的輸入管道將確保滿足所有必需的規範。注意:我們總是會省略批量維度,只指定單個元素的形狀。
在訓練時,T2RModel提供model_train_fn或model_eval_fn作為model_fn參數中的tf.estimator.Estimator類。model_train_fn和model_eval_fn都是根據inference_network_fn的特徵、標籤和輸出來定義的,它們可能實現了訓練/評估圖的共享部分。
請注意左側的鍵如何具有name的值,這個值與ExtendedTensorSpec中右側的鍵不同。 左側的鍵在model_fn中用於訪問載入的張量,而在創建parse_tf_example_fn或numpy_feed_dict時會使用這個名稱。 我們確保這個名稱在整個規範中是唯一的,除非這個規範是匹配的,否則我們無法保證映射功能。
繼承T2RModel的好處
功能和標籤的獨立輸入規範。
自動生成tf.train.Examples和tf.train.SequenceExamples的tf.data.Dataset管道。
對於策略推斷,T2RModel可以生成佔位符或導出密封的SavedModel,並且可以與ExportSavedModelPolicy一起使用。
為Estimator自動構建model_fn,用於共享單個inference_network_fn的訓練和評估圖。
可以在單個模型下將多個模型的inference_network_fn和model_train_fn組合在一起。 這種抽象允許我們實現調用其子模型的model_train_fn的通用元學習模型(例如MAML)。
自動支持GPU和TPU上的分散式訓練。
※過去10年NIPS頂會強化學習論文匯總
※引領新一代AI,期待你的加入!
TAG:AI研習社 |