Daniel Whitenack在最近舉行的北美2017 KubeCon+CloudNativeCon大會上分享瞭如何使用TensorFlow和Kubernetes進行基於GPU的深度學習。html
他以物體檢測爲例子介紹了一種典型的人工智能工做流程。該工做流程包括預處理、模型訓練、模型生成和模型推理。這些步驟均可以運行在Docker容器裏。linux
模型訓練通常是經過框架來完成的,如TensorFlow或Caffe。在這一階段,GPU可用於幫助提高性能。深度學習在使用TensorFlow或其餘框架時,須要藉助GPU在圖像數據上訓練模型。數據庫
模型訓練能夠運行在Kubernetes集羣的GPU節點上。Kubernetes爲多GPU節點提供了一個很是好的框架,按照以下步驟可實現更好的工做流:框架
該工做流程也能夠用於跟蹤哪一個版本的代碼和數據產生了哪些結果(用於調試、維護和合規的目的)。機器學習
Kubernetes爲此提供了基礎支持,也由於它具有了可移植性和可伸縮性,因此很是適用於機器學習項目。分佈式
Whitenack介紹了一個叫做Pachyderm的開源項目,它支持數據管道,併爲Kubernetes提供了數據管理層。工做流中通常會包含多個數據預處理和後處理做業。Pachyderm提供了統一的框架用於調度多步驟工做流、數據管理和向GPU分配工做負載。性能
Pachyderm框架的特性包括:學習
Whitenack在現場進行了演示,使用Pachyderm和Kubernetes實現了一個AI工做流。示例應用程序實現了圖像到圖像的轉換,將衛星圖自動轉成地圖。他在例子中使用TensorFlow進行模型訓練和推理。ui
若是讀者對Pachyderm框架感興趣,能夠參考機器學習示例、開發者文檔、Kubernetes GPU文檔,或者直接加入Slack通道。人工智能
查看英文原文:Building GPU Accelerated Workflows with TensorFlow and Kubernetes