附錄B:使用 VSCode 編輯調(diào)試 Tensorflow 的 Python 代碼


時(shí)間:2018-09-13 作者:魏文應(yīng)


一物延、前 言

這里宣旱,我們要實(shí)現(xiàn)這么一個(gè)效果:

按下 F5 快捷鍵,就啟動(dòng)執(zhí)行 Python 代碼叛薯,這份 python 代碼和 GPU 版本的 Tensorflow 相關(guān)浑吟。

安裝 Tensorflow 你可能使用 Anconda 安裝,目前耗溜, Anconda 默認(rèn)的編輯器就是 VScode 组力,在安裝完 Anconda 之后,就會(huì)提示你安裝VScode抖拴,你安裝就行燎字。相關(guān)環(huán)境如下:

  • 操作系統(tǒng):window 7 64bit
  • Tensorflow 版本 (GPU版):r1.10腥椒。
  • GPU 型號(hào): NVIDIA Quadro K620(根據(jù)你自己的電腦 GPU 型號(hào)而定) 乖杠。
  • CUDA 版本: 9.0 困食。
  • cuDDN 版本: Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
  • VScode 版本: 1.27.1 弛车。
  • Anconda 版本: Anaconda3-5.2.0-Windows-x86_64.exe (一個(gè) Python 3.6的版本)蛉鹿。
  • Python 版本: Python 3.6 滨砍。

在安裝之前,確保你已經(jīng)安裝了 Tensorflow 相關(guān)環(huán)境妖异。如果你沒有配置 Tensorflow 相關(guān)環(huán)境惋戏,你可以參考 《附錄A:在 Windows 平臺(tái)下載及安裝Tensorflow》 進(jìn)行安裝配置。

二随闺、環(huán)境測(cè)試

使用 VScode 編輯調(diào)試 Tensorflow 的 python 代碼之前日川,應(yīng)該測(cè)試一下 Tensorflow 環(huán)境是否配置無誤。測(cè)試如下:

  • 在 VScode 中矩乐,按下快捷鍵 Ctrl + `龄句,調(diào)出集成終端。

  • 在集成終端中輸入 activate tensorflow 命令散罕,進(jìn)入 tensorflow 的開發(fā)環(huán)境(使用 anconda 安裝 python 才使用這一步)分歇。

  • 在集成終端,輸入 python 命令欧漱,進(jìn)入 python 解釋器命令行职抡。

  • 在 python 解釋器內(nèi)部,執(zhí)行下面操作:

    >>> import tensorflow as tf
    >>> hello = tf.constant('Hello, TensorFlow!')
    >>> sess = tf.Session()
    >>> print(sess.run(hello))
    

執(zhí)行上面代碼误甚,如果沒有問題缚甩,說明 Tensorflow 環(huán)境配置正常。

二窑邦、創(chuàng)建 Python 項(xiàng)目

對(duì)于 vscode 來說擅威,一個(gè)文件夾目錄就是一個(gè)項(xiàng)目。如果修改了 vscode 的 json 配置文件冈钦,工作區(qū)目錄下就會(huì)生成一個(gè) .vscode 文件夾郊丛,里面的文件記錄了配置信息。

創(chuàng)建工作區(qū)間

代碼編寫瞧筛,都需要一個(gè)文件夾來存放代碼厉熟,當(dāng)前工程項(xiàng)目代碼所在的的文件夾,稱為 工作區(qū)間(workspace)较幌。步驟如下:

  • 在電腦上創(chuàng)建一個(gè)文件夾揍瑟,用來儲(chǔ)存當(dāng)前項(xiàng)目。
  • 在 VScode 中乍炉,依次點(diǎn)擊 文件 -> 打開文件夾 月培,然后選擇你創(chuàng)建的文件夾嘁字。

這樣,工作區(qū)間就選擇好了杉畜。其實(shí)就是選擇一個(gè)文件夾而已。

創(chuàng)建文件

你除了可以像正常創(chuàng)建文件那樣創(chuàng)建一個(gè)文件以外衷恭,也可以使用 VScode 直接創(chuàng)建一個(gè)文件或者文件夾:

創(chuàng)建一個(gè)文件

創(chuàng)建的文件或者文件夾此叠,就在當(dāng)前工作區(qū)間下。比如随珠,上圖中灭袁,01_TEST 是我的工作區(qū)間(文件夾名稱),test.py 是通過左邊的創(chuàng)建一個(gè)文件圖標(biāo)創(chuàng)建窗看,output 文件夾是通過右邊創(chuàng)建一個(gè)文件夾圖標(biāo)創(chuàng)建的茸歧。

文件內(nèi)容

我們?cè)谖募袑懭胂旅?python 代碼進(jìn)行測(cè)試:

import tensorflow as tf

hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

三、運(yùn)行 Python 代碼

第一次運(yùn)行代碼显沈,需要安裝 python 插件软瞎、配置 python 解釋器路徑,才能啟動(dòng)執(zhí)行拉讯。

安裝 Python 插件

首先得安裝 python 插件(后面通過路徑配置涤浇,會(huì)使用我們 anconda 中的 python 解釋器):

安裝 python 插件

擴(kuò)展 中輸入 python 搜索,然后安裝這個(gè) python 插件魔慷。

配置 pyhton 解釋器路徑

我們要運(yùn)行 python 代碼只锭,需要 python 解釋器去解釋執(zhí)行這些代碼。不同的項(xiàng)目院尔,使用的 python 版本可能不一樣蜻展,我們前面說了,我們使用的是 Anconda 來管理 python 解釋器版本和運(yùn)行環(huán)境邀摆。我的 python 解釋器在下面目錄下(根據(jù)你自己的而定):

D:\ProgramData\Anaconda3\envs\tensorflow

將這個(gè)路徑添加到 settings.json 中:依次點(diǎn)擊 文件 -> 首選項(xiàng) -> 設(shè)置 -> 擴(kuò)展 -> Python Configration

打開 python 設(shè)置

然后纵顾,隨便選擇一個(gè) 在 settings.json 中編輯 點(diǎn)擊打開,你可以看到下面的界面:

工作區(qū)設(shè)置

我們的設(shè)置 寫在右側(cè)隧熙,右側(cè)的設(shè)置會(huì)覆蓋左側(cè)的設(shè)置片挂。如果你所有的 python 項(xiàng)目都一樣,那么配置寫在 用戶設(shè)置 中贞盯。如果只是當(dāng)前項(xiàng)目是這樣音念,配置就寫在 工作區(qū)設(shè)置 ,這樣只對(duì)當(dāng)前工作區(qū)有效躏敢。添加 python 解釋器路徑:

// 將設(shè)置放在此處闷愤,以覆蓋 “用戶設(shè)置” 。
{
    "python.pythonPath": "D:\\ProgramData\\Anaconda3\\envs\\tensorflow",
}

你會(huì)發(fā)現(xiàn)路徑中件余, 使用了 \\ 雙斜杠讥脐,這是要注意的遭居。 保存上面的修改以后,你會(huì)在工作區(qū)的文件夾下旬渠,發(fā)現(xiàn)一個(gè) .vscode 的文件夾俱萍,這個(gè)文件夾里面的文件,就是配置文件告丢,這些配置文件只針對(duì)當(dāng)前工作區(qū)的代碼:

自動(dòng)生成的配置文件的文件夾

只有修改過相關(guān) json 文件枪蘑,才會(huì)自動(dòng)生成對(duì)應(yīng)的 json 文件 。這很好理解岖免,沒有修改過岳颇,就使用編輯器默認(rèn)的配置,無須生成專門針對(duì)當(dāng)前項(xiàng)目的配置文件颅湘。

vscode 自動(dòng)生成的 settings.json 文件

啟動(dòng)調(diào)試

啟動(dòng)調(diào)試话侧,是我們要運(yùn)行代碼。python 代碼文件名后綴為 .py 闯参,VScode 會(huì)自動(dòng)識(shí)別瞻鹏,并調(diào)用相應(yīng)的 python 解釋器執(zhí)行,按下 F5 赢赊,就啟動(dòng)調(diào)試乙漓,并運(yùn)行 python 代碼:

啟動(dòng)調(diào)試

VScode 識(shí)別到是 python 代碼之后,就能看到可執(zhí)行相關(guān)操作的列表了释移,比如叭披,默認(rèn)的 Python: Current File(Integrated Terminal) ,也就是在 集成終端 中執(zhí)行和顯示(Python: Current File(External Terminal) 調(diào)用外部終端玩讳,也就是windows 操作系統(tǒng)的 cmd 終端):

正確識(shí)別以后的可操作列表

之后涩蜘,針對(duì)當(dāng)前項(xiàng)目代碼,只要按下 F5 就可以 啟動(dòng)調(diào)試 運(yùn)行代碼了熏纯。同樣的同诫,啟動(dòng)調(diào)試也會(huì)在當(dāng)前工作區(qū)的 .vscode 目錄下,生成一個(gè)叫做 launch.json配置文件

啟動(dòng)調(diào)試的配置文件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末樟澜,一起剝皮案震驚了整個(gè)濱河市误窖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秩贰,老刑警劉巖霹俺,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異毒费,居然都是意外死亡丙唧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門觅玻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來想际,“玉大人培漏,你說我怎么就攤上這事『荆” “怎么了牌柄?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)侧甫。 經(jīng)常有香客問我友鼻,道長(zhǎng),這世上最難降的妖魔是什么闺骚? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮妆档,結(jié)果婚禮上僻爽,老公的妹妹穿的比我還像新娘。我一直安慰自己贾惦,他們只是感情好胸梆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著须板,像睡著了一般碰镜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上习瑰,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天绪颖,我揣著相機(jī)與錄音,去河邊找鬼甜奄。 笑死柠横,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的课兄。 我是一名探鬼主播牍氛,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼烟阐!你這毒婦竟也來了搬俊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蜒茄,失蹤者是張志新(化名)和其女友劉穎唉擂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扩淀,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡楔敌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驻谆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卵凑。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡庆聘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勺卢,到底是詐尸還是另有隱情伙判,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布黑忱,位于F島的核電站宴抚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏甫煞。R本人自食惡果不足惜菇曲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抚吠。 院中可真熱鬧常潮,春花似錦、人聲如沸楷力。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萧朝。三九已至岔留,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間检柬,已是汗流浹背献联。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留厕吉,地道東北人酱固。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像头朱,于是被迫代替她去往敵國(guó)和親运悲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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