iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 17
0

TensorFlow可以在不同的硬件上運行。您可以在低級C ++ API上對其進行編程,但更有可能在我們練習本課程時使用Python API。而且已經開始看到分佈式培訓的不同抽象層。但是實際上在生產中大規模地進行分佈式培訓。
為此,來介紹一下Cloud Machine Learning Engine。
當第一次接近ML時,通常會啟動,但不會完成適合內存的小數據集。有了這些預熱數據集,幾乎任何ML框架就足夠了。python和許多其他語言都有統計軟件包,通常需要三到四行代碼才能啟動和運行。
TensorFlow估算器還有一個API,可以決定學習哪些是簡單的,並且在小數據集上運行良好。但當然,我們真正想要的是擁有生產,企業規模和數據集。如此大,它們無法融入記憶。
此時,需要擴展到更複雜的包。既然數據集太大而無法容納在內存中,那麼在訓練期間我們將不得不多次迭代。雖然有可能使用一台機器,但它遠非理想。
你能想像等待幾週才看看訓練是否融合?我們需要在許多機器上分發培訓。這並不像大規模生產那樣簡單,令人尷尬地平行。算法,如分級下降優化,並不是那麼容易,我們需要所謂的參數服務器的幫助來協助一群培訓工作者。
這些參數服務器構成一種共享內存,讓每個培訓師都可以從其他所有人那裡學習。
試圖通過使用GPU的單個巨型機器來逃避分佈式培訓是很誘人的。
然而,對於大多數人來說,這最終是短視的,因為數據集通常比任何一台機器的功能都要快。
人們採用的另一種常見捷徑是嘗試對數據進行採樣。因此,它足夠小,可以在他們碰巧擁有的硬件上進行ML。
這留下了大量的表演遊戲。使用所有可用的數據,並設計一個收集10倍以上的計劃,通常是神奇地執行的ML和沒有神奇的ML之間的區別。
通常在一個領域中構建機器學習模型,在這個領域中,人類洞察力可以在訓練之外增加性能,而僅僅是原始數據。當專家已經以新功能的形式了解問題時,通常會帶來這種見解。在我們預處理原始數據之後立即添加這些功能。
當我們做一些事情,比如縮放,編碼等等。對於數據集的大小,能夠使用這兩個需要在雲端上分發和完成。
當你做ML時,你經常需要選擇一些東西,有點任意,節點的數量,嵌入,卷積層的步幅大小。
隨著模型變得越來越複雜,您將開始懷疑是否選擇了正確的值,無論是手動還是自動,必須在超參數空間進行某種搜索,看看是否有更好的選擇本來可以做的。


上一篇
[Day 16] 使用TensorBoard來進行監控
下一篇
[Day 18] Raw Data to Features
系列文
Machine Learning Study 30天學習筆記19

尚未有邦友留言

立即登入留言