python的開發環境有哪些系統_Win10下配置機器學習python開發環境

近期計劃寫一寫機器學習微信小程序的開發教程,但微信開發工具只提供了Windows和Mac OS版本,作為一名長期使用Linux系統的開發人員,雖然始終認為Linux系統才是對開發者最友好的,但微信團隊作出這種選擇,肯定經過調查。不管我怎樣認為Linux系統如何之好,Windows系統畢竟是主流,大多數開發者使用的系統也是Windows系統,所以打算寫一寫Windows環境下的機器學習開發環境配置,內容包括Python環境、CUDA、IDE以及微信開發者工具等,這是其中的一篇。

由于歷史原因,python長期存在兩個版本,python 2和python 3,而且存在兼容問題。雖然經過開發者不斷的努力,普遍轉向Python 3,但Python 2仍然像打不死的小強,頑強的存在著。比如大多數Linux發行版本,python 2依然是默認版本。再加上python社區非常活躍,各種python庫也在不停的向前發展,不同版本python庫之間不兼容的情況一直存在。有時開發者也很尷尬,比如發布了一個項目到github,會有讀者過來問,為什么代碼在我這兒出錯?

針對這一狀況,建議python開發者使用Anaconda。Anaconda是可以便捷獲取python包且對包能夠進行管理,同時對環境可以統一管理的發行版本。Anaconda包含了conda、Python在內的超過180個科學包及其依賴項。使用Anaconda有什么好處呢?可以建立python虛擬環境。

比如針對python 2的歷史遺留代碼,建立一個虛擬環境,針對python 3 新代碼,再建立一個虛擬環境,兩套環境互相隔離,互不影響。不會因為在安裝了一個python 2的包,而使得python 3代碼無法執行。Python虛擬環境和虛擬機有所不同,它是一種輕量級的隔離機制,所以在空間和速度上幾乎沒有額外的開銷。

Anaconda是一攬子解決方案

python的用戶可能知道,通過安裝virtualenv,也可以建立python虛擬環境,但需要下載python,設置環境變量,安裝pip,安裝virtualenv,…諸多繁瑣步驟,而且為了使用方便,可能還要安裝wrap腳本。而anaconda作為python環境一攬子解決方案,安裝包中包含了python發行包,集成包管理工具,只需要下載和安裝一個軟件包,即可解決。而且Anaconda支持Windows、Linux及Mac OS系統,在各操作系統下操作一致,減少操作系統遷移的成本。

Anaconda的虛擬環境可復制

Anaconda的虛擬環境可以導出為一張列表,列表上包含環境中所有python包的名稱及版本信息,這樣他人可以導入該列表,復制出一個一模一樣的python虛擬環境。列表為文本文件,便于分享,可以加入git管理,在開發過程中,哪些python庫依賴發生了變化,可以追溯。

下面就說說在Windows 10下如何安裝和配置Anaconda。

獲取Anaconda

和Windows下其它應用軟件的安裝類似,首先去Anaconda的官網下載安裝包,下載地址為:https://www.anaconda.com/distribution/

建議選擇Python 3.7的64位版本:

這里選擇python 3.7,并不意味著python虛擬環境只能是python 3,而是默認的python虛擬環境為python 3。雖然python 2的生命力很頑強,但是新寫的代碼建議用python 3。

安裝軟件包。根據安裝向導進行安裝即可,選擇安裝類型這個步驟需要注意:

建議選擇 Just Me 這個選項,如果選擇All users,可能需要管理員權限。如果你是系統的管理員用戶,這個倒問題不大。

創建python虛擬環境,安裝tensorflow

Anaconda安裝之后,我們可以看到Windows啟動欄多了Anaconda3 (64-bit)程序組,點擊Anaconda Prompt(Anaconda3):

啟動Anaconda命令行:

我們可以注意到命令行前面有一個(base)字樣,這表明當前Anaconda的虛擬環境名為base,這也是Anaconda默認的虛擬環境。

接下來為tensorflow創建一個虛擬環境。因為TensorFlow有支持GPU的版本,如果要TensorFlow支持GPU,還需要額外安裝一些軟件和配置,先暫時放一放,到下篇文章再詳細展開。我們把虛擬環境命名為tensorflow_gpu:conda create --name tensorflow_gpu

切換到我們創建的tensorflow_gpu虛擬環境:activate tensorflow_gpu

可以注意到,命令行前面的字樣變成了(tensorflow_gpu),表明已經切換到tensorflow_gpu這個虛擬環境:

安裝tensorflow-gpu包:conda install -c anaconda tensorflow-gpu

當然你也可以采用pip的方式進行安裝,這個看個人喜好。

可以使用如下的代碼進行測試:import tensorflow as tf

print(tf.__version__)

tf.test.is_gpu_available()

結果如下:1.13.1

2019-08-09 15:45:13.852793: I tensorflow/core/platform/cpu_feature_guard.cc:141]

Your CPU supports instructions that this TensorFlow binary was not compiled to

use: AVX AVX2

2019-08-09 15:45:15.069595: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1

433] Found device 0 with properties:

name: GeForce GTX 950M major: 5 minor: 0 memoryClockRate(GHz): 1.124

pciBusID: 0000:01:00.0

totalMemory: 2.00GiB freeMemory: 1.92GiB

2019-08-09 15:45:15.085195: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1

512] Adding visible gpu devices: 0

Traceback (most recent call last):

File "", line 1, in

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\fra

mework\test_util.py", line 1242, in is_gpu_available

for local_device in device_lib.list_local_devices():

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\cli

ent\device_lib.py", line 41, in list_local_devices

for s in pywrap_tensorflow.list_devices(session_config=session_config)

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\pyw

rap_tensorflow_internal.py", line 1829, in list_devices

return ListDevices(status)

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\fra

mework\errors_impl.py", line 528, in __exit__

c_api.TF_GetCode(self.status.status))

tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed. S

tatus: CUDA driver version is insufficient for CUDA runtime version

可以看出,tensorflow包導入和使用沒有問題,當前使用的TensorFlow 1.13.1版本,但沒有GPU支持。如何讓TensorFlow支持GPU加速,下一篇文章再詳細說明。

如果要退出當前的虛擬環境,可以使用如下命令:conda deactivate

導出和導入虛擬環境

現在我們創建了一個名為tensorflow_gpu的虛擬環境,如果要分享給他人,可以將環境導出為一個文本文件:activate tensorflow_gpu

conda env export > c:/tensorflow_gpu.yml

上面的命令將環境導出到tensorflow_gpu.yml文件中,我們可以用文本編輯器打開看一看里面的內容:name: tensorflow_gpu

channels:

- anaconda

- defaults

dependencies:

- _tflow_select=2.1.0=gpu

- absl-py=0.7.1=py37_0

- astor=0.7.1=py37_0

- blas=1.0=mkl

- ca-certificates=2019.5.15=0

- certifi=2019.6.16=py37_0

- cudatoolkit=10.0.130=0

- cudnn=7.6.0=cuda10.0_0

- gast=0.2.2=py37_0

- grpcio=1.16.1=py37h351948d_1

- h5py=2.9.0=py37h5e291fa_0

- hdf5=1.10.4=h7ebc959_0

- icc_rt=2019.0.0=h0cc432a_1

- intel-openmp=2019.4=245

- keras-applications=1.0.8=py_0

- keras-preprocessing=1.1.0=py_1

- libprotobuf=3.8.0=h7bd577a_0

- markdown=3.1.1=py37_0

- mkl=2019.4=245

- mkl-service=2.0.2=py37he774522_0

- mkl_fft=1.0.12=py37h14836fe_0

- mkl_random=1.0.2=py37h343c172_0

- mock=3.0.5=py37_0

- numpy=1.16.4=py37h19fb1c0_0

- numpy-base=1.16.4=py37hc3f5095_0

- openssl=1.1.1=he774522_0

- pip=19.1.1=py37_0

- protobuf=3.8.0=py37h33f27b4_0

- pyreadline=2.1=py37_1

- python=3.7.3=h8c8aaf0_1

- scipy=1.3.0=py37h29ff71c_0

- setuptools=41.0.1=py37_0

- six=1.12.0=py37_0

- sqlite=3.29.0=he774522_0

- tensorboard=1.13.1=py37h33f27b4_0

- tensorflow=1.13.1=gpu_py37h83e5d6a_0

- tensorflow-base=1.13.1=gpu_py37h871c8ca_0

- tensorflow-estimator=1.13.0=py_0

- tensorflow-gpu=1.13.1=h0d30ee6_0

- termcolor=1.1.0=py37_1

- vc=14.1=h21ff451_3

- vs2015_runtime=15.5.2=3

- werkzeug=0.15.4=py_0

- wheel=0.33.4=py37_0

- wincertstore=0.2=py37_0

- zlib=1.2.11=h62dcd97_3

prefix: C:\Anaconda3\envs\tensorflow_gpu

內容比較容易理解,就是安裝了哪些依賴包。除了導出之外,我們還可以手工創建,也可以修改導出的yml文件,比如修改虛擬環境的名稱,這屬于比較高級的操作,有興趣可以看看Anaconda官方文檔。

他人在得到這份yml文件后,可以復刻Anaconda虛擬環境:conda env create -f tensorflow_gpu.y

到此,Windows 10下的機器學習python開發環境就配置好了,接下來還需要更進一步,下一篇文章將講講Windows 10下GPU的支持,敬請關注。

參考https://docs.conda.io/projects/conda/en/latest/index.html

Installing a Python Based Machine Learning Environment in Windows 10

Anaconda介紹、安裝及使用教程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276751.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276751.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276751.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態添加ContextMenuStrip項(ToolStripItem)

//綁定菜單privatevoidBindMenu(DataTable dt) {foreach(DataRow row indt.Rows) { ToolStripItem item newToolStripMenuItem(); item.Name row[0].ToString(); item.Text row[1].ToString(); item.Click newEventHandler(contextMenuStrip1_ItemClick); contextMenuStrip1.It…

07_00_加載資源(Webpack Book)

Loading Assets(加載資源) In this part, you will learn how to load different types of assets using webpack’s loaders. Especially images, fonts, and JavaScript receive particular attention. You also learn how webpack’s loader definitions work.在這部分&…

html與cgi腳本的配合使用

利用boa服務器測試arm開發板上的cgi和html聯合編程的小例程。很簡單,但是當時覺得很有意思。在這里給大家展示一下,高手飄過。 在ubuntu下安裝boa測試環境,即先在本地搭建一個boa的網頁服務器。apt-get install boa。稍作配置即可。我的Boa按…

zabbix3監控ESXI主機

ESXI主機VMware公司企業級虛擬化的解決方案Vsphere的重要組件,也是虛擬機的宿主機,對其監控有著重要的意義,下邊介紹二種方發對其監控。 方法一:通過修改服務端的控制項來進行監控。 虛擬機監控分兩個步驟完成。首先,Z…

mybatis jar包_springboot2整合mybatis-plus3踩到的坑

前言最近在進行項目重構,在架構師的建議下,就把項目中mybatis切換成mybatis-plus。因為mybatis-plus在mybatis的基礎上只做增強不做改變,因此切換的成本很低,就只需改jar和配置內容,原先的代碼無需改動。因為mybatis-p…

java_二進制的前導的零

題目內容: 計算機內部用二進制來表達所有的值。一個十進制的數字,比如18,在一個32位的計算機內部被表達為00000000000000000000000000011000。可以看到,從左邊數過來,在第一個1之前,有27個0。我們把這些0稱…

共享幾套silverlight2 toolkit最新的皮膚控件樣式下載

下載了最新的silverlight2 toolkit看看,發現里面的控件樣式還是多漂亮的,與大家分享下。 blue dark light orange purple red 樣式源碼下載:點擊下載 當然,我最喜歡的還是orange哦。 轉載于:https://www.cnblogs.com/liaohenchen/…

python爬取同花順_Java爬取同花順股票數據(附源碼)

最近有小伙伴問我能不能抓取同花順的數據,最近股票行情還不錯,想把數據抓下來自己分析分析。我大A股,大家都知道的,一個概念火了,相應的股票就都大漲。 如果能及時獲取股票漲跌信息,那就能在剛開始火起來的…

開會=浪費時間?阿里技術團隊這樣開項目復盤會

2019獨角獸企業重金招聘Python工程師標準>>> 阿里妹導讀:復盤是項目結束后必不可少的階段,好的復盤會議能夠有效地促進團隊成長。今天,阿里項目管理專家鹿迦以自身的經驗,為大家分享如何做好一個項目的復盤。這篇文章分…

Spring @Value注解無法正確賦值問題

正確的調用方式為: Component public class IconProperties {Value("${icon.url}")private String url; } public class test{AutowiredIconProperties icon;public void test(){ String url icon.url; } } 這里有三個需要注意的點: 1.Value…

Extjs中使用FusionChart舉例

一 前言: 在項目實施中,設計統計部分經常會使用圖表進行顯示,在Extjs3中內置了圖表控件,但實際表現無法達到3D的美觀效果,通過查找FusionChart可以實現比較美觀的3D或2D圖表顯示。注:FusionChart是個商業…

drawitem設置指定行的背景顏色_Java 為 Excel 中的行設置交替背景色

點擊上方 好好學java ,選擇 星標 公眾號重磅資訊、干貨,第一時間送達今日推薦:牛人 20000 字的 Spring Cloud 總結,太硬核了~作者:Jazzz鏈接:https://www.cnblogs.com/jazz-z/p/12665819.html在制作Excel表…

常見的關系型數據庫和非關系型數據及其區別

一、關系型數據庫 關系型數據庫最典型的數據結構是表,由二維表及其之間的聯系所組成的一個數據組織 優點:1、易于維護:都是使用表結構,格式一致;2、使用方便:SQL語言通用,可用于復雜查詢&#x…

逆序數技巧 - 牛客

鏈接:https://ac.nowcoder.com/acm/contest/308/D來源:牛客網 題目描述 tokitsukaze給你一個長度為n的序列,這個序列是1到n的一種排列。然后她會進行q次操作。每次操作會給你L R k這三個數,表示區間[L,R]往右移動k次。移動一次的…

Ajax跨域提交JSON和JSONP

可以直接使用$.getJSON()方法實現跨域請求,參數中必須加上callback,如: var jsonpUrl http://www.test.com/index.php?cApi_Order&aAddOrder&callback?;var param {uid:uid,type:type,cityId:cityId};$.getJSON(jsonpUrl, param,…

mysql數據庫商業版與社區版的區別

1、商業版本組織管理與測試環節控制更嚴格,穩定性方面,會比社區版本更穩定。 2、mysql是成熟產品,商業版與社區版之間性能方面相差不大。 3、商業版不遵守GPL協議,社區版遵守GPL協議可以免費使用。 4、使用商業版后可以購買相關的…

UML的奧妙 - 學習UML筆記(1)

前兩天買了一本《大象 Thinking in UML》,其實本就有學習UML的念頭,但都因這樣那樣的事兒耽擱了,當然,也有些惰性在作祟...... 閑話少說,這本書看完了一章,發現還是不錯的,先把這兩天的學習情況…

無法檢查指定的位置是否位于cfs上_(干貨分享)一文搞明白 節氣門位置傳感器的作用、故障類型與癥狀、診斷方法...

1 位置節氣門位置傳感器(ThrottlePositionSensor,TPS),位于節氣門體上,其安裝形式因節氣門結構的不同而有所差異:對于傳統的機械拉索式節氣門,節氣門位置傳感器通常以一個獨立元件的形式安裝在節氣門體的側面&#xf…

盒子模型

1 <!doctype html>2 <html>3 <head>4 <title>盒子模型</title>5 <meta charset"utf-8">6 <meta name"keywords", content"">7 <meta name"description&…

表單跨域提交

利用form表單跨域post 現在ajax應用這么廣泛&#xff0c;一般的應用都是直接通過異步調用就可以了&#xff0c;但是有些東西必須要使用post&#xff0c;而且是跨域的時候&#xff0c;ajax異步調用的方式就無能為力了。當然現在也有很多種辦法&#xff0c;比如通過flash中轉去po…