如何用 Google Colab 練 Python?

自動配置、有效求助、協(xié)作編程、版本控制。一站式解決 Python 新手練習中的痛點。

痛點

這個學期,我在北得克薩斯大學(University of North Texas)教 INFO 5731: Computational Methods for Information Systems 課程,主要內(nèi)容包括: Python 基礎(chǔ)、自然語言處理,以及機器學習。

授課的對象是信息科學、數(shù)據(jù)科學專業(yè)的碩士與博士研究生。跟在國內(nèi)一樣,我依然使用翻轉(zhuǎn)教學(flipped instruction)方式。

過去的幾周,我們把“Python 基礎(chǔ)”部分學完了。

每周,我都會要求學生閱讀兩本教材上的指定章節(jié),然后把所有的代碼自己重復(fù)一遍。在此基礎(chǔ)上,對每一段代碼,學生都要自己試著進行一些改動。出錯也沒有關(guān)系,嘗試解決。

因為絕大部分學生,都是 Python 初學者。因此他們都會遇到以下的實際問題。

一、不知道如何安裝和設(shè)置運行環(huán)境;

二、遇到問題會慌亂,不知如何有效尋找解決方法;

三、對于團隊作業(yè),不知該如何有效協(xié)作;

四、不懂得如何進行版本控制,代碼越改越亂。

這些問題,也構(gòu)成了學生的痛點。

如果不能有效加以解決,學生會把每周寶貴的學習時間,浪費到許多瑣碎的無用功上。更可能的情況,是他們的信心會被打擊,導致喪失學習的動力和興趣

因此,我為他們找到了一款合適的 Python 練習工具。這里,我把這款工具也分享給你。

這款工具,就是 Google Colab 。我曾經(jīng)在《如何免費云端運行Python深度學習框架?》一文中為你介紹過它,在《如何用 Python 和循環(huán)神經(jīng)網(wǎng)絡(luò)做中文文本分類?》和《如何用 Python 和循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測嚴重交通擁堵?》里,我也曾用它給你做過代碼的展示。

下面,我給你介紹一下,如何用 Google Colab 應(yīng)對上述的4個痛點,為你的 Python 練習提供輔助。

環(huán)境

新手最常見的問題,就是好不容易累積了學習的興趣,上手不久便遇到報錯。

而 Python 新手遇到的許多錯誤,實際上都和環(huán)境的配置有關(guān)。

例如說,Anaconda 套件下載環(huán)節(jié),你就不知道該選擇哪個版本。

好不容易安裝好了,因為路徑設(shè)置問題,連 Jupyter Notebook 都呼叫不出來。

終于能輸入代碼了。結(jié)果一輸入就提示,你要調(diào)用的模塊名稱,沒聽說過!

而這些,Google Colab 都幫你處理好了。

只需要打開一個瀏覽器(推薦 Google Chrome 或者 Firefox),輸入:

https://colab.research.google.com

就可以看到以下頁面。

選擇新建 Python 3 筆記本。

然后,就能看到完全配置好的 Python 運行環(huán)境了。

對,就是這么簡單。

你可別小瞧這個運行環(huán)境。

雖然你沒有執(zhí)行任何安裝過程,但是它基本上涵蓋了你做數(shù)據(jù)科學分析,要用到的各種工具。

這些工具包括但不限于 Numpy, Scipy, Pandas 等,甚至連深度學習的框架,例如 Tensorflow, Keras 和 Pytorch,也是一應(yīng)俱全。

Google Colab 的深度學習環(huán)境支持,可不只是軟件那么簡單。Google 慷慨的提供了 GPU, 甚至是更專業(yè)化的 TPU, 供你免費使用。

默認狀態(tài),這些云端硬件是不開啟的。你需要在菜單欄中選擇 runtime,然后選擇 Change runtime type。

就可以看到不同硬件支持的選項了。

有的書籍樣例代碼,甚至是 Python 組件,都需要 Python 2 環(huán)境才能運行,這也沒關(guān)系。點擊新建筆記本,你就能使用不同的 Python 版本了。

細心的你會發(fā)現(xiàn),在上面“修改運行時設(shè)置”頁面里,也可以隨時調(diào)整 Python 版本。

求助

作為新手,你遇到錯誤和問題,是完全正常的。

Python 具有強大的社區(qū),可以給你提供很多幫助。

但如果你嘗試過,便可能有一種錯覺——這些 Python 高手很不友好。因為你貼了問題,卻沒人理你。

其實,這很可能是你問問題的方式不對。

想想看,你籠統(tǒng)地說一個報錯信息,可能的原因或許有數(shù)十甚至上百種,誰能幫你一一排除?

這倒也罷了。可是你明明貼了一段代碼,還給出了錯誤信息的截圖啊。為什么還是沒有人伸出援手?

因為這些信息,可能依然不夠。

想想看,你本地安裝了什么樣的套件?其中的各種模塊,都分別是什么版本?你執(zhí)行當前代碼有問題,那上下文是什么?會不會是因為之前某個代碼段落,影響了你當前段落的執(zhí)行?你的操作系統(tǒng),是否完全支持你正在使用的組件功能?……

這些可能性,無窮無盡。同樣,也沒有人這樣花時間幫你枚舉。

但是有了 Google Colab ,你提問的效果卻可以大大提升。

因為,你可以用** 最簡單的方法,讓潛在的回答者復(fù)現(xiàn)**你的問題。

這就是,把你的筆記本共享出去。

如上圖,點擊筆記本右上角的 Share 按鈕。

在出現(xiàn)的對話框里,注意選擇權(quán)限。選成可以瀏覽(view),就可以了。

然后,選擇“復(fù)制鏈接”,鏈接就到了你的剪切板里面了。把它連同你的文字描述,直接貼到 Python 的論壇或者課程討論區(qū)里。

別人只需要點擊,就能查看你的全部代碼、報錯信息。而且,還能運行你的筆記副本。

注意,雖然你倆可能用的是不同的操作系統(tǒng)、不同的瀏覽器,但因為都用了 Google Colab ,你們的 Python 環(huán)境是完全一致的。

等到對方解決了問題,他還可以把完整的筆記本再用鏈接方式分享給你。你的問題于是迎刃而解。

問問題,只是尋求幫助的一個方面。

在提問之前,你還是應(yīng)該自己嘗試一下解決的。毫不愿意思考,直接當伸手黨,社區(qū)里的人很難喜歡跟你打交道。

Google Colab 為你主動尋找問題答案,提供了工具支持。每當你遇到報錯的時候,你都會看到下方有個按鈕。

點擊這個按鈕, Google Colab 就會用搜索引擎,在 Stackoverflow 這個 IT 問答站點上,幫你尋找相關(guān)報錯的已有答案。

一般來說,點擊前幾條信息,你就會有收獲。

例如這次,你就很幸運,因為答案明確說明,這是因為 Python 版本帶來的差異。

你只需要根據(jù)提示,進行代碼的輕微調(diào)整,就能正常運行了。

協(xié)作

不知你有沒有嘗試過跟人協(xié)作編寫代碼?

我的課上,是有小組作業(yè)的。要求學生2-3人一組,一起用 Python 解決問題。

有的人,是這樣協(xié)作的。

自己寫一段代碼,用郵件傳給對方。

對方改完,發(fā)回來。

自己在上面修改添加,再發(fā)回去。

……

這樣顯然效率很低

有沒有高效的方法?

當然有。依然利用我們剛才已經(jīng)見到過的共享功能。

只是這一次,在選擇權(quán)限的時候,給對方“可修改”權(quán)限。

例如還是剛才的 print 命令沒有加括號的問題。只不過這次,對方除了能看到你的問題,還可以直接編輯。

你的協(xié)作者,新建了一個代碼塊,并且輸入了正確的信息。

在你這里看起來,就是這個樣子的。

協(xié)作者的頭像,會顯示在對應(yīng)的修改內(nèi)容旁邊。這樣一目了然。

對方還可以在代碼塊旁,選擇添加注釋。

例如輸入以下內(nèi)容。

你可以同步在自己的筆記本上,看到對方的注釋。

這樣一來,團隊協(xié)作 Python 練習溝通的效率,自然就高了許多。

注意,為了安全起見,一定只能把該權(quán)限,限定在你信任的協(xié)作者中。

如果是打算把你的成果展示出來,你可以使用 Google Colab 與 Github 的集成功能。

如上圖,選擇保存副本到 Github 。

然后,選擇你希望保存到的 Github 項目。

保存完畢后,對應(yīng)的 Github 頁面會自動打開,供你預(yù)覽。

其中可以包含全部的文字、圖片、代碼、輸出信息。注意筆記本的頂部,有一個“在 Colab 打開”的鏈接。

點擊它,你就能迅速開啟 Google Colab 環(huán)境,并且直接運行這個 Github 上的筆記副本。

版本

當你不停地嘗試和改動代碼的時候,很有可能會把問題改得更加糟糕。這時候,你恨不得有一個時光機,可以讓你回到錯誤少一點的時候。

這個時光機,Google Colab 是提供了的。

點擊菜單里面的 Revision history 功能,你就能看到當前筆記本已保存的全部歷史版本。

包括修改時間、誰改的、文件大小等各種信息,一應(yīng)俱全。

想回到哪個版本,點一下“恢復(fù)”按鈕就可以了。

另外,你也可以把 Google Colab 筆記本,直接下載成為 ipynb 文件,在本地保存副本。

一定要注意選擇需要的存儲路徑,避免不知存到哪里去了。

我一般讓學生交作業(yè)的時候,都需要同時提交 Google Colab 鏈接,以及一個 ipynb 文件。

二者的內(nèi)容,應(yīng)該是一樣的。既然如此,為什么還需要提交兩樣東西呢?

這個問題,作為思考題,留給你。請注意聯(lián)系本節(jié)標題,加以分析。

有了 ipynb 文件,你可以用本地的 Jupyter Notebook 開啟。但是如果你只是想查看內(nèi)容的話,這里給你推薦一個更好的工具,叫做nteract。它可以幫你直接開啟 ipynb 文件,用于查看。

這樣,你就沒必要每次都用 Jupyter Notebook 命令開啟后臺服務(wù),然后再到瀏覽器中點開對應(yīng)的 ipynb 了。

小結(jié)

還記得在《如何高效學 Python ?》一文中,我給你推薦過的經(jīng)典教材《笨辦法學 Python》吧?

《笨辦法學 Python》指出了一條看似笨拙,卻非常有效的學習路徑。我上課的時候,也一直在跟學生們強調(diào)—— Python 這樣的實踐類技能,只能練中學(Learn by doing)。

本文給你推薦的 Google Colab ,可以幫你解決 Python 初學者練習實踐 Python 編程時,最常遇到的幾大痛點。包括:

自動配置

有效求助

協(xié)作編程

版本控制

這樣一來,你可以把寶貴的時間,聚焦在技能的掌握和應(yīng)用;而不是久病成醫(yī),成為“環(huán)境配置專家”了。

祝 Python 編程學習愉快!

延伸閱讀

你可能也會對以下話題感興趣。點擊鏈接就可以查看。

學 Python ,能提升你的競爭力嗎?

如何高效學 Python ?

《文科生數(shù)據(jù)科學上手指南》分享

喜歡請點贊和打賞。還可以微信關(guān)注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)

如果你對 Python 與數(shù)據(jù)科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門數(shù)據(jù)科學?》,里面還有更多的有趣問題及解法。

作者:王樹義

鏈接:http://www.lxweimin.com/p/5deadaf2fb89

來源:簡書

簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內(nèi)容