自然語(yǔ)言處理之路:工具——七種兵器

自然語(yǔ)言處理之路:工具——七種兵器

一個(gè)自然語(yǔ)言處理煉丹師的自白

往期:

自然語(yǔ)言處理之路:前提——英文

自然語(yǔ)言處理之路:前提——數(shù)學(xué)

自然語(yǔ)言處理之路:前提——語(yǔ)言學(xué)

欲善其事撇簿,必先利其器垄提。這一篇介紹個(gè)人在研究中常用的工具抱既,這些可以成倍地提高你的效率,不用為一些細(xì)節(jié)的東西浪費(fèi)時(shí)間炸枣,而專注于自己的想法穆役。

首先,假設(shè)這樣一個(gè)場(chǎng)景踩叭,我們?cè)谝粋€(gè)小實(shí)驗(yàn)室。最近翠胰,終于用經(jīng)費(fèi)買(mǎi)了帶GPU的服務(wù)器容贝,于是再不用去超算和大家排隊(duì)搶計(jì)算資源了。但是之景,現(xiàn)在我們得先知道如何使用服務(wù)器嗤疯,來(lái)訓(xùn)練我們模型才行,不然也只會(huì)對(duì)著金山光流口水闺兢。

第一步,我們得連接上服務(wù)器戏罢,并使用那邊的終端屋谭。

遠(yuǎn)程登錄(SSH)

image

這里我們可以使用基于 SSH 的一些工具來(lái)連接服務(wù)器。

在 Windows 系統(tǒng)龟糕,可以試試常用的 PuTTY桐磁。但我個(gè)人更推薦目前在用的 Xshell,在一些設(shè)置上更加方便讲岁。而且雖然這是款商業(yè)軟件我擂,但我們可以申請(qǐng)研究免費(fèi)許可。當(dāng)然缓艳,還有種是直接在 Windows 上用 shell 命令行校摩,通過(guò)安裝 Cygwin

在 Mac 和 Linux 系統(tǒng)阶淘,直接打開(kāi)終端 ssh 過(guò)去就好了衙吩。

關(guān)于將自己文件拷到服務(wù)器,可以用 scp 或 rsync 命令溪窒。更多 SSH 相關(guān)常用的命令坤塞,可以查看這篇文章《如何使用SSH》冯勉。

這樣就連接上了服務(wù)器,但又會(huì)遇得到新問(wèn)題:如何使用終端環(huán)境摹芙。因?yàn)榇藭r(shí)沒(méi)有了熟悉的圖像界面灼狰,只有黑色的窗口和閃滅的命令行,讓人手足無(wú)措浮禾。

Linux 命令行 (Shell)

image

要在這樣一個(gè)環(huán)境下生存下來(lái)交胚,那我們就得了解一些“咒語(yǔ)”,即命令行中的各種命令伐厌。每個(gè)咒語(yǔ)都有著其獨(dú)特的功用承绸,對(duì)于這些咒語(yǔ),一些基礎(chǔ)的初級(jí)咒語(yǔ)比如 ls, cd, less 這些挣轨,高級(jí)的一些比如 awk, sed军熏,掌握的咒語(yǔ)越多你就會(huì)越得心應(yīng)手,效率更高卷扮。到那時(shí)荡澎,反過(guò)來(lái)還會(huì)去 diss 圖形界面。順便 vim 的操作也可以了解下晤锹。

最初摩幔,我從 Windows 轉(zhuǎn)過(guò)來(lái)也費(fèi)了很多勁。先是在東芝實(shí)習(xí)時(shí)鞭铆,需要研究 Linux 內(nèi)核或衡,就稍微接觸了一些。但之后又不用了车遂,直到最近需要在 GPU 上跑程序封断,重新?lián)炱饋?lái),時(shí)間一長(zhǎng)舶担,就習(xí)慣了坡疼。

自己比較喜歡的學(xué)習(xí)資源,是被稱為 TLCL (The Linux Command Line) 的一本很贊的書(shū)衣陶,有中文翻譯版柄瑰,先快速照著書(shū)練習(xí)一遍就好了,之后可以回頭細(xì)細(xì)看剪况。

此外相關(guān)學(xué)習(xí)資源很多教沾,搜索一下就有。當(dāng) Shell 熟練后拯欧,就可以寫(xiě)大殺器详囤,shell 腳本,讓自己的工作完全自動(dòng)化。自動(dòng)下載數(shù)據(jù)藏姐,自動(dòng)前處理隆箩,自動(dòng)訓(xùn)練模型,自動(dòng)分析結(jié)果... 那你呢羔杨,去玩吧捌臊,多虧了它我才能天天到處浪。

于是這樣兜材,就可以開(kāi)始寫(xiě)代碼了理澎。

Python

image

人生苦短,大家都用Python曙寡。所以我們也用糠爬,首先深度學(xué)習(xí)現(xiàn)在的主流框架,基本都是 Python 寫(xiě)的举庶,而且 Python 好用且易上手执隧,特別在處理數(shù)據(jù)上面,有各種成熟的模塊户侥。

關(guān)于 Python 的資源就更數(shù)不勝數(shù)镀琉,這里列出幾個(gè)我用過(guò)的非常棒的學(xué)習(xí)資源:

  1. Udacity 的 101 Intro to Computer Science:很棒的 CS 入門(mén)課程,因?yàn)槔锩嬗?Python 來(lái)寫(xiě)代碼蕊唐,所以上完之后 Python 基礎(chǔ)也學(xué)差不多了屋摔。

  2. 還有 MIT 的 Introduction to Computer Science and Programming Using Python,也是計(jì)算機(jī)科學(xué)與 Python替梨,但比上面講得更深一些钓试。

  3. 中文資料,我推薦廖雪峰的 Python 教程副瀑,和前兩個(gè)不同亚侠。這個(gè)主要講 Python,看看前面部分俗扇,網(wǎng)絡(luò)編程后的不看也行。

會(huì)了 Python 之后箕别,此刻你可能擼起袖子準(zhǔn)備大干特干了铜幽。來(lái)!用 Python 從底層實(shí)現(xiàn)一個(gè)深度學(xué)習(xí)模型串稀!3秒鐘讓你從入門(mén)到放棄除抛。所以最好還是拿來(lái)主義 ,用已有成熟的深度學(xué)習(xí)框架就好了(值得一提:用 Python 還有 Numpy 從底層實(shí)現(xiàn)母截,其實(shí)對(duì)理解深度學(xué)習(xí)非常有幫助)到忽。

深度學(xué)習(xí)框架 (Framework)

image

跟著 Python 語(yǔ)言,再介紹幾個(gè)基于 Python 的主流深度學(xué)習(xí)框架〈框架部分我就不說(shuō)孰好孰壞了护蝶,稍微點(diǎn)一下,說(shuō)說(shuō)自己用過(guò)的:

  1. Pytorch:目前我主要用的框架翩迈。特點(diǎn)是代碼符合 Python 編碼哲學(xué)持灰,簡(jiǎn)潔而且優(yōu)美,自己定制的空間也比較大负饲,此外 debug 的時(shí)候也很方便找堤魁。比較適合用于科研,最近越來(lái)越火了返十,首先 fast.ai 已經(jīng)開(kāi)始用它來(lái)教學(xué)妥泉,還有把 caffe 也給合并了。

  2. Tensorflow:因?yàn)橛?Google 這個(gè)爹洞坑,所以可能是最流行的一個(gè)框架吧(我們都是 TF Boys)盲链。因?yàn)樯鐓^(qū)大所以基本上什么代碼都能找到,個(gè)人認(rèn)為 TensorFlow 更適合產(chǎn)品開(kāi)發(fā)检诗。

  3. Keras:在 Kaggle 上玩的時(shí)候用過(guò)匈仗,非常傻瓜式,簡(jiǎn)單好學(xué)逢慌。

關(guān)于更多詳細(xì)比較悠轩,可以查看李飛飛 CS231n 的深度學(xué)習(xí)框架的PPT

OK攻泼,現(xiàn)在就能寫(xiě)出自己的模型火架,然后在 GPU 上跑了。但對(duì)于深度學(xué)習(xí)任務(wù)忙菠,除了 GPU 計(jì)算資源何鸡,還有一個(gè)很重要的是數(shù)據(jù)
》直接進(jìn)行數(shù)據(jù)處理牛欢,當(dāng)然厲害的大觸們是可以做到的骡男,但對(duì)于一般人,我推薦有很好交互性的工具傍睹,Jupyter Notebook隔盛。

Jupyter Notebook

image

可以把它當(dāng)成一個(gè)網(wǎng)頁(yè)應(yīng)用,視覺(jué)化地編輯服務(wù)器端的一些文件拾稳,但主要管理 notebook 文件吮炕。 notebook 可以進(jìn)行實(shí)時(shí)的交互,很適合測(cè)試代碼访得。 而且里面可以混雜 Markdown 語(yǔ)句龙亲,代碼,圖片等等,所以很適合進(jìn)行分享鳄炉,以及之后自己閱讀杜耙。

使用時(shí),先需要在服務(wù)器端搭建 Notebook 服務(wù)器迎膜,然后直接瀏覽器訪問(wèn)泥技。

關(guān)于 Jupyter Notebook 的介紹還有使用方法,網(wǎng)上有很多教程磕仅,比如說(shuō)這個(gè)《Jupyter Notebook介紹珊豹、安裝及使用教程 - 知乎專欄》。最近還發(fā)布了相關(guān)的 JupyterLab 榕订,也可以了解一下店茶。

數(shù)據(jù)和模型都搞定了,終于可以跑程序了吧劫恒。是的贩幻,恭喜你,可以跑動(dòng)自己第一個(gè)程序了两嘴。

但跑程序的時(shí)候丛楚,當(dāng)前終端窗口就會(huì)被占用了,不能干其他事情憔辫,比如說(shuō)跑第二個(gè)程序趣些,或進(jìn)行文件操作。這時(shí)你得建立額外的窗口再次連接服務(wù)器贰您。每次都這樣會(huì)特別麻煩坏平,所以就需要一個(gè)在服務(wù)器端直接進(jìn)行分屏的小應(yīng)用。

Tmux (分屏)

Tmux 是個(gè)在終端窗口中分屏锦亦,運(yùn)行多個(gè)終端會(huì)話的工具舶替,同時(shí)還能隨時(shí)斷開(kāi)會(huì)話放入后臺(tái),或者接入杠园。

學(xué)習(xí)的話顾瞪,可以去下一個(gè)備忘單,然后邊用邊查抛蚁。

常用的幾個(gè)命令也就創(chuàng)建玲昧,分屏,還有切換篮绿。

這樣對(duì)于跑程序相關(guān)的就一切都 OK 啦,無(wú)論是想跑一個(gè)吕漂,還是同時(shí)跑 n 個(gè)亲配,隨你喜歡。

但最后還有一點(diǎn)要提,那就是如何管理你的代碼吼虎。

Git & GitHub

首先 Git 必須得會(huì)犬钢,基本上編程弄個(gè)項(xiàng)目都會(huì)用到。Git 的好處是思灰,不會(huì)因?yàn)槭仲v誤刪了某些代碼而找不回來(lái)玷犹;或者突然覺(jué)得以前寫(xiě)得更好而換不回去;或者發(fā)現(xiàn)實(shí)踐各種想法洒疚,結(jié)果搞出一大堆自己都分不清的文件歹颓。特別,在做實(shí)驗(yàn)時(shí)油湖,有很多模型想試巍扛,這時(shí)就建立成多個(gè)分支(branch)來(lái)執(zhí)行。

學(xué)習(xí)資源的話乏德,也有很多這里列兩個(gè)我用過(guò)覺(jué)得挺好的:

  1. Pro Git:有這一本基本上就已經(jīng)夠了

  2. 廖雪峰的Git教程:更簡(jiǎn)潔快速一些撤奸,最開(kāi)始就是用這個(gè)入門(mén)的

說(shuō)到 Git 就得提 GitHub,超級(jí)神器喊括。主要是用來(lái)托管代碼的胧瓜,可以用過(guò) Git 將代碼推到 GitHub,之后自己使用或用于共享郑什。GitHub 還有一個(gè)很厲害的功能是府喳,找代碼。如果你想做任何東西蹦误,或者實(shí)現(xiàn)論文代碼劫拢,做之前可以先搜搜 GitHub,總會(huì)有你意想不到的收獲强胰。

這樣基本上整個(gè)工作流程用到的工具就都有了舱沧,下次再見(jiàn)吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末偶洋,一起剝皮案震驚了整個(gè)濱河市熟吏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玄窝,老刑警劉巖牵寺,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異恩脂,居然都是意外死亡帽氓,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)俩块,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)黎休,“玉大人浓领,你說(shuō)我怎么就攤上這事∈迫” “怎么了联贩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)捎拯。 經(jīng)常有香客問(wèn)我泪幌,道長(zhǎng),這世上最難降的妖魔是什么署照? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任祸泪,我火速辦了婚禮,結(jié)果婚禮上藤树,老公的妹妹穿的比我還像新娘浴滴。我一直安慰自己,他們只是感情好岁钓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布升略。 她就那樣靜靜地躺著,像睡著了一般屡限。 火紅的嫁衣襯著肌膚如雪品嚣。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,729評(píng)論 1 289
  • 那天钧大,我揣著相機(jī)與錄音翰撑,去河邊找鬼。 笑死啊央,一個(gè)胖子當(dāng)著我的面吹牛眶诈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓜饥,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼逝撬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了乓土?” 一聲冷哼從身側(cè)響起宪潮,我...
    開(kāi)封第一講書(shū)人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趣苏,沒(méi)想到半個(gè)月后狡相,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡食磕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年尽棕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彬伦。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滔悉,死狀恐怖蟀悦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情氧敢,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布询张,位于F島的核電站孙乖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏份氧。R本人自食惡果不足惜唯袄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜗帜。 院中可真熱鬧恋拷,春花似錦、人聲如沸厅缺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)湘捎。三九已至诀豁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窥妇,已是汗流浹背舷胜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留活翩,地道東北人烹骨。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像材泄,于是被迫代替她去往敵國(guó)和親沮焕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

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