如何用 Google Colab 練 Python?

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

痛點

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

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

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

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

因為絕大部分學(xué)生,都是 Python 初學(xué)者刊懈。因此他們都會遇到以下的實際問題这弧。

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

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

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

四梯浪、不懂得如何進(jìn)行版本控制,代碼越改越亂瓢娜。

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

如果不能有效加以解決眠砾,學(xué)生會把每周寶貴的學(xué)習(xí)時間虏劲,浪費到許多瑣碎的無用功上。更可能的情況,是他們的信心會被打擊柒巫,導(dǎo)致喪失學(xué)習(xí)的動力和興趣励堡。

因此,我為他們找到了一款合適的 Python 練習(xí)工具堡掏。這里应结,我把這款工具也分享給你。

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

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

環(huán)境

新手最常見的問題瘩燥,就是好不容易累積了學(xué)習(xí)的興趣,上手不久便遇到報錯不同。

而 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ù)科學(xué)分析,要用到的各種工具寥粹。

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

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

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

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

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

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

求助

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

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

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

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

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

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

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

想想看揍诽,你本地安裝了什么樣的套件诀蓉?其中的各種模塊,都分別是什么版本暑脆?你執(zhí)行當(dāng)前代碼有問題渠啤,那上下文是什么?會不會是因為之前某個代碼段落添吗,影響了你當(dāng)前段落的執(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)該自己嘗試一下解決的叛氨。毫不愿意思考呼渣,直接當(dāng)伸手黨,社區(qū)里的人很難喜歡跟你打交道寞埠。

Google Colab 為你主動尋找問題答案屁置,提供了工具支持。每當(dāng)你遇到報錯的時候仁连,你都會看到下方有個按鈕蓝角。

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

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

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

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

協(xié)作

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

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

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

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

對方改完徘跪,發(fā)回來甘邀。

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

……

這樣顯然效率很低松邪。

有沒有高效的方法?

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

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

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

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

在你這里看起來胸竞,就是這個樣子的欺嗤。

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

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

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

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

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

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

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

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

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

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

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

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

版本

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

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

點擊菜單里面的 Revision history 功能通孽,你就能看到當(dāng)前筆記本已保存的全部歷史版本序宦。

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

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

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

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

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

二者的內(nèi)容凌唬,應(yīng)該是一樣的。既然如此漏麦,為什么還需要提交兩樣?xùn)|西呢客税?

這個問題,作為思考題撕贞,留給你更耻。請注意聯(lián)系本節(jié)標(biāo)題,加以分析捏膨。

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

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

小結(jié)

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

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

本文給你推薦的 Google Colab 婆廊,可以幫你解決 Python 初學(xué)者練習(xí)實踐 Python 編程時,最常遇到的幾大痛點巫橄。包括:

  • 自動配置
  • 有效求助
  • 協(xié)作編程
  • 版本控制

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

祝 Python 編程學(xué)習(xí)愉快彩倚!

延伸閱讀

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末监婶,一起剝皮案震驚了整個濱河市旅赢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惑惶,老刑警劉巖煮盼,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異带污,居然都是意外死亡孕似,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門刮刑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喉祭,“玉大人,你說我怎么就攤上這事雷绢》豪樱” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵翘紊,是天一觀的道長蔽氨。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么鹉究? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任宇立,我火速辦了婚禮,結(jié)果婚禮上自赔,老公的妹妹穿的比我還像新娘妈嘹。我一直安慰自己,他們只是感情好绍妨,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布润脸。 她就那樣靜靜地躺著,像睡著了一般他去。 火紅的嫁衣襯著肌膚如雪毙驯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天灾测,我揣著相機與錄音爆价,去河邊找鬼。 笑死媳搪,一個胖子當(dāng)著我的面吹牛允坚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛾号,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼稠项,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鲜结?” 一聲冷哼從身側(cè)響起展运,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎精刷,沒想到半個月后拗胜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡怒允,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年埂软,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纫事。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡勘畔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丽惶,到底是詐尸還是另有隱情炫七,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布钾唬,位于F島的核電站万哪,受9級特大地震影響侠驯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奕巍,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一吟策、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧的止,春花似錦檩坚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睹酌。三九已至权谁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間憋沿,已是汗流浹背旺芽。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辐啄,地道東北人采章。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像壶辜,于是被迫代替她去往敵國和親悯舟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345