今天的內容一開始的幾個part會跟昨天重複(步驟上的相同),
原因是今天整理完之後,覺得把昨天的步驟整理到今天放在一起會比較像一個完整的lab。
而昨天的lab內容我也會把這次lab 1的內容拿掉,
剩下的內容改成lab 0,代表運行lab前的準備,
這樣也有個好處,之後每個的lab開始前,
都會有跟lab 0差不多的步驟,這樣之後也就不用再贅述這部分了。
所以在今天的lab開始前,還是一樣需要先做lab 0的部分才能開始哦~
(雖然下面步驟也會貼心的再提醒就是了XD)
我們就繼續 How Google does Machine Learning 的第五章節~
這次鐵人賽的30天中,我目前所寫文章的所有課程目錄如下:
第五章節的課程地圖:(紅字標記為本篇文章中會介紹到的章節)
Lab: Rent-a-VM
Intro to Renting-VM Lab
Lab: Rent-a-VM to process earthquake data
Lab debrief
課程地圖
在這裡,我們將建立一個 Compute Engine,並使用一些位於Cloud Storage的data,
並完成一個簡單的任務:使我們的網頁顯示現在的地震資料圖,並把這些資料儲存下來。
請先參考 【Day 9】- 每次在google雲端上開始lab前都要的事前準備與注意事項 的內容,完成到運行中階段。
Step 1 : 在GCP console中,我們找到 MENU -> Compute Engine -> VM instances
Step 2 : 按下Create新的VM後,
Step 3 : 稍微等一下VM被建立,按下SSH,(這邊可能需要允許pop-ups)
Step 4 : 我們可以看到SSH的畫面顯示如下。
Step 1 : 在SSH中,我們會需要使用git,如果還沒有安裝,
我們輸入以下指令即可安裝git,
sudo apt-get install git
如果是安裝完成的,我們直接輸入git
,會看到他的使用說明(如何下參數)。
Step 2 : 再來我們要使用git來下載我們想要的資料,
我們輸入
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
下載完我們輸入ls
顯示當前資料夾,
如果有看到顯示training-data-analyst
,那表示下載成功了。
我們接下來要來取用來自USGS的地震資料,
而這段script,google在剛剛clone的資料夾內已經幫我們寫好了。
Step 3 : 首先我們需要先切換資料夾:
cd training-data-analyst/courses/machine_learning/deepdive/01_googleml/earthquakes
小技巧:使用
tab
,可以自動完成,不用完整的輸入資料夾名稱(如果資料夾存在)。
Step 4 : 接下來我們輸入這段程式碼,less可以幫助我們預覽這份script檔案。
less ingest.sh
使用方式為:space
:往下捲動b
:備份這個pageq
:離開(quit)
讓我們稍微解析一下這份scripts:rm
行:強制移除現有的"earthquakes.csv"檔案(如果存在的話)wget
行:從USGS下載最近的資料,並命名為"earthquakes.csv"
Step 5 : 執行這份script檔案,將我們要的檔案下載下來。
bash ingest.sh
Step 6 : 我們可以用head
偷看一下這個下載檔案的前幾行。
head earthquakes.csv
我們可以看到有顯示時間、經緯度,與所有這幾週發生的地震資料。
Step 0 : 我們可以先在以下網址看結果與code的解釋:
基本上是取得地震資料,然後使用matplotlib製圖而成。
https://github.com/GoogleCloudPlatform/datalab-samples/blob/master/basemap/earthquakes.ipynb
Step 1 : 換我們自己動動手,首先先把我們所缺的python package都安裝起來:
basemap
:可以畫製地理位置地圖numpy
:數字處理librarymatplotlib
:基礎圖形繪製library
bash install_missing.sh
Step 2 : 執行transform.py
,這份code會執行與剛剛Step 0相同的內容:
python transform.py
Step 3 : 執行ls -lrt
,這會照時間順序顯示我們最近所建立的新東西:
ls -lrt
Step 4 : 我們會發現有個earthquakes.png
被建立,到這邊這階段就完成了。
現在我們想將這個生成的結果存在GCP的雲端上。
Step 1 : 我們先按一下Menu,選擇storage,並按下Create bucket。
Step 2 : 這是關於bucket的設定介面,我們一共需要設定的東西如下,
準備好就可以按Create了!
名字
:注意這名字一定要全球唯一!!!我們可以直接使用之前的part 0階段產生的 Projcet ID,我們能確保這是全球唯一的,
除非真的是極度的不幸,不然這名字基本上不太可能被其他人使用過XD
storage class
:可選multi-regional或regional看想不想要跨地區儲存(全球化的應用會需要),這邊我們先選regional
location
:選地區基本上建議跟當初part 1所建立的 Compute Engine(VM) 在同一個位置,會比較快(減少資料取得時間)。
所以這邊我們一樣選 us-central1
Step 3 : 現在我們該來把我們結果的圖片存進去剛剛建的bucket了,
我們回到我們的 SSH 中,我們直接使用GCP的gsutil
工具來儲存資料。
gsutil cp earthquakes.* gs://<這邊填上你bucket的名字>/earthquakes/
稍微解析一下這段:gsutil
:GCP提供的指令工具cp
:copyearthquakes.*
:任何符合earthquakes.*
格式的資料,*
代表任意值gs://<這邊填上你bucket的名字>/earthquakes/
:目標路徑
Step 1 : 我們回到我們剛剛的bucket,重新整理後,應該會看到檔案已經被儲存了。
會看到三個檔案earthquakes.htm
, earthquakes.png
, earthquakes.cs
。
這表示這三個檔案已經透過剛剛的指令被複製進我們的bucket了。
Step 2 : 再來我們要將我們在雲端所儲存的東西,製作成一個連結分享出去。
先在左方紅框處的地方打勾,然後再打勾右方紅框處(才會看到顯示Public link)。
※新版的介面UI改了,我們改在 SSH 中執行以下指令,以達到一樣的效果:
gsutil acl ch -u AllUsers:R gs://<這邊填上你bucket的名字>/earthquakes/*
Step 3 : 點一下Public link,就會顯示剛剛結果圖了,我們也可將這結果分享給別人(公開的情況下)。
可以稍微注意網址:
storage.googleapis.com/<我們bucket的名稱>/earthquake/earthquake.htm
這就像是一般我們常見的資料夾結構
到這邊我們就算完成我們這次的lab了,
這次的lab我們主要學習的目標有:
不過在之後的lab中,就不會再使用這個VM了。
這個lab主要的目的是在建立所有GCP上內容的基礎以及知識。
之後自己想做 Side Project 也必須用到這些觀念。
在之後大部分的課程中,我們將改使用 Managed Services。
Managed Services 允許我們直接在上面跑程式,而不需要再自己配置VM、安裝軟體了。
Managed Services 是一種更高階的方式運用 Cloud Services。
coursera - How Google does Machine Learning 課程
若圖片有版權問題請告知我,我會將圖撤掉