基於python的機器學習人工智慧入門之tensorflow / keras安裝(Windows環境)
因為專案需要,研究基於機器學習的人工智慧。
俗話說,工欲善其事,必先利其器。
學習人工智慧,首先就要有一個開發環境,也就是寫程式碼跑模擬的地方。
折騰了幾天,終於成功建立了基於tensorflow和keras的開發環境。
中間遇到了許多問題,在同事及網路的幫助下,總算解決了,頗為不易。
雖然網上已經有很多的安裝教程,但是這些教程在我的實際安裝中依然出現問題,所以還是把我的安裝的過程記錄一下,重點是包括安裝中間遇到的問題及解決方法。
希望能為後來人提供些許微末幫助。
1.安裝Python環境Anaconda
目前的機器學習,程式語言大多選擇python。
安裝python環境,推薦安裝Anaconda,集成了多版python庫。
因為windows版本下的tensorflow暫時不支援python2.7,另外,新出的python3.6存在部分不相容問題。建議安裝Anaconda的版本4.2.0。
下載地址:
2.安裝Tensorflow
2.1Tensorflow官方安裝文件
tensorflow是Google開源的機器學習資源,有python版本的庫,內部實現了許多演算法,非常方便學習使用。
那,怎麼安裝tensorflow呢?
Tensorflow的官網上有linux/Mac/Windows版本的安裝教程。
地址:
https://www.tensorflow.org/install
但是,文件是英文的,許多地方難以理解或易誤解。另外其中windows版本,提到的在Anaconda中創立一個tensorflow的環境,在這個環境中安裝python等工具。這個就是一個天坑。如果是自己的電腦,那沒啥問題。但是如果是實驗室/公司的電腦,一般沒有管理員許可權,所以不能在該環境下安裝anaconda的程式碼工具,比如spider等。那就意味著,寫python程式碼,會沒有那麼方便。
於是乎,在折騰了一天後,不得不放棄該方法,另闢蹊徑。
2.2基於keras的tensorflow安裝文件
這個文件,必須好評。
雖然本質上是介紹如何安裝使用keras的,但是,keras的後端使用的是tensorflow,所以這個文件中同樣有如何安裝tensorflow的教程,並且與之前tensorflow官網上的不太一樣。具體參見上述文件的章節“Keras 框架搭建”。
這是安裝CPU版本的tensorflow。(至於要安裝GPU版本的,請參考上述文件。)
下面介紹tensorflow的安裝過程及遇到的問題和解決方法。
注意:
以下操作,不需要提前下載安裝包,命令會自己去下載對應安裝包,所以,需要一點點時間。
首先開啟電腦的CMD命令列控制埠或者是PowerShell。
輸入命令:
pip install --upgrade tensorflow
回車
然後就愉快發現命令在順利執行。比如,會顯示Collecting Tensorflow……..(省略若干字元)
正當我開心的等待成功安裝時,突然爆了一連串的錯誤,看得我一臉矇蔽。
Cannot remove entries from nonexistent file : ……….(省略若干字元)
怎麼辦?
細細一看,原來是pip版本低了,需要用更高版本,還好錯誤資訊下面有提示用命令。
按照提示,輸入命令:
python -m pip install --upgrade pip
更新pip。
更新完畢。
然後再次輸入命令:
pip install --upgrade tensorflow
回車
然後就愉快發現命令又順利執行。比如,會顯示Collecting Tensorflow……..(省略若干字元)
正當我又開心的等待成功安裝時,突然爆了一個錯誤,還好只有一個。
Cannot remove entries from nonexistent file : ……….(省略若干字元)
又是這個錯誤,怎麼辦?
這個時候,我靈機一閃,及時祭出Google大法。
搜尋這個錯誤資訊。
還好我不是第一個碰到這個問題的。
很快找到解決方案。
執行命令:
pip install --ignore-installed setuptools
前期的準備工作做好了,然後就開始正式安裝tensorflow了。
執行命令:
pip install --upgrade tensorflow
然後等一下下,就會發現Successfully……..
到此為止,tensorflow已經完成安裝了。
可以啟動驗證一下,這裡,先等等,安裝了keras後,一起驗證。
3.安裝Keras
Keras是一種神經網路框架,非常方便使用。是學習神經網路的好幫手。
根據章節2.2中的文件,安裝Keras。
輸入命令:
pip install keras -U --pre
就看到顯示:Collecting keras…….(省略若干字元)
如此順利,非常開心。
等等,這是什麼鬼?
出現一串紅色的error資訊。
Exception:。。。。
PermissionError:[WinError 5] Access is denied……..(省略若干字元)
再次祭出Google大法。
搜尋PermissionError:[WinError 5] Access is denied….
然後尋找解決方法。
果然不出所料。
在命令中新增一個user選項。
將之前的命令進行新增:
pip install --user keras -U --pre
哈哈,黃天不負有心人,終於成功了!!
4.驗證Tensorflow和Keras
現在可以來驗證下剛才安裝的tensorflow和Keras。
安裝了Anaconda後,一般都會預設安裝了spyder,一個可以編寫python程式碼並模擬輸出的類似IDE的工具。
下面採用典型的程式碼進行功能驗證。
程式碼來自網路,此處僅作為參考。感謝分享者的無私奉獻。
4.1驗證tensorflow
開啟spyder。
在左側的程式碼框中輸入如下程式碼:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print (sess.run(hello))
如果右側的模擬輸出視窗順利輸出:
‘Hello, Tensorflow!’
那就代表Tensorflow安裝成功。
bingo!!
4.2驗證keras
在命令列中依次輸入如下命令:
conda install git # 安裝git工具
git clone https://github.com/fchollet/keras.git #下載工程內容
cd keras/examples/ #進入程式碼路徑
python mnist_mlp.py #用python執行程式
然後就會發現正在執行程式,是典型的機器學習入門的例子,識別手寫數字。
總共訓練二十次。
每次都會輸出誤差及準確率。
完成20次訓練後,進行test,再給出test的誤差及準確率。
到此,keras驗證完畢。
bingo!!!
相關推薦
基於python的機器學習人工智慧入門之tensorflow / keras安裝(Windows環境)
因為專案需要,研究基於機器學習的人工智慧。 俗話說,工欲善其事,必先利其器。 學習人工智慧,首先就要有一個開發環境,也就是寫程式碼跑模擬的地方。 折騰了幾天,終於成功建立了基於tensorflow和keras的開發環境。 中間遇到了許多問題,在同事及網路
Python機器學習全流程專案實戰精講(2018版)
Python機器學習全流程專案實戰精講(2018版)網盤地址:https://pan.baidu.com/s/16SSVq74YC07M0dW1iDekPg 提取碼: vu7r備用地址(騰訊微雲):https://share.weiyun.com/5VGzPK0 密碼:yp4ri9 課程特色:機器學習一線工
Python機器學習演算法實踐——k均值聚類(k-means)
一開始的目的是學習十大挖掘演算法(機器學習演算法),並用編碼實現一遍,但越往後學習,越往後實現編碼,越發現自己的編碼水平低下,學習能力低。這一個k-means演算法用Python實現竟用了三天時間,可見編碼水平之低,而且在編碼的過程中看了別人的編碼,才發現自己對
python 機器學習實踐入門
機器學習概念概念 機器 學習是電腦科學的一個分支,從模式識別、人工智慧和計算學習理論發展而來,我們可以將其作為資料探勘的工具 側重用於資料分析方法理解給定的資料 目的是:開發能夠從先前觀測的資料,通過可調整的引數進行學習的 程式,為了改善預測結果,將引數設計為可自動調整的 常見應用:垃
機器學習演算法入門之(一) 梯度下降法實現線性迴歸
1. 背景 線性迴歸的目標很簡單,就是用一條線,來擬合這些點,並且使得點集與擬合函式間的誤差最小。如果這個函式曲線是一條直線,那就被稱為線性迴歸,如果曲線是一條二次曲線,就被稱為二次迴歸。資料來自於GradientDescentExample中的data.
python 入門之 – 初識元祖(十六)
元祖其實和列表差不多,也是村一陣列,只是一旦建立,便不能再修改,所以又叫只讀列表 元祖的特性 1、不可變 2、元祖本身不可變,如果元祖中還包含其他可變元素,這些可變元素可以改變 元祖是一對小括號擴起來的陣列,如: user=("id","name","age") 他和陣
python機器學習案例系列教程——最小生成樹(MST)的Prim演算法和Kruskal演算法
最小生成樹MST 一個有 n 個結點的連通圖的生成樹是原圖的極小連通子圖,且包含原圖中的所有 n 個結點,並且有保持圖連通的最少的邊。 也就是說,用原圖中有的邊,連線n個節點,保證每個節點都被連線,且使用的邊的數目最少。 最小權重生成樹 在一給定
Python機器學習筆記:深入理解Keras中序貫模型和函式模型
先從sklearn說起吧,如果學習了sklearn的話,那麼學習Keras相對來說比較容易。為什麼這樣說呢? 我們首先比較一下sklearn的機器學習大致使用流程和Keras的大致使用流程: sklearn的機器學習使用流程: 1 2 3 4
機器學習案例實戰之信用卡欺詐檢測(從零開始,附資料,程式碼)
機器學習案例實戰之信用卡欺詐檢測故事背景:原始資料為個人交易記錄,但是考慮資料本身的隱私性,已經對原始資料進行了類似PCA的處理,現在已經把特徵資料提取好了,接下來的目的就是如何建立模型使得檢測的效果達到最好,這裡我們雖然不需要對資料做特徵提取的操作,但是面對的
【第二篇】ASP.NET MVC快速入門之數據註解(MVC5+EF6)
red 數據庫結構 varchar model 菜單 錯誤提示 edi 還需 問題 目錄 【第一篇】ASP.NET MVC快速入門之數據庫操作(MVC5+EF6) 【第二篇】ASP.NET MVC快速入門之數據註解(MVC5+EF6) 【第三篇】ASP.NET MVC快速入
排序算法入門之希爾排序(java實現)
入門 介紹 插入 一次 變化 shells ngx i++ ava 希爾排序是對插入排序的改進。插入排序是前面元素已經有序了,移動元素是一個一個一次往後移動,當插入的元素比前面排好序的所有元素都小時,則需要將前面所有元素都往後移動。希爾排序有了自己的增量,可以理
Ted 帶你學習資料結構 之 二叉堆(Binary Heap)
二叉堆(Binary Heap) (1)structure property Heap(堆)是一個除了底層節點外的完全填滿的二叉樹,底層可以不完全,左到右填充節點。(a heap is a binar
機器學習_論文筆記_2: bagging predictors ( BREIMAN[1996])
By joey周琦 Bagging predictor可以產生多個版本的predictor, 並把這些predictor聚集(aggregate)為一個。這種策略對於不穩定的系統可以提高其精度。 有一個學習資料集 L L,包含資料
7-10 算術入門之加減乘除 (10 分)
對於輸入的兩個整數,按照要求輸出其和差積商。 輸入格式: 在一行內輸入兩個不超過100的非負整數a和b,中間以一個空格間隔,且保證b不為0。 輸出格式: 共四行,格式是: [a] + [b] = [a+b] [a] - [b] = [a-b] [a] * [b] = [a*b
Python+Pytest 單元測試框架之執行用例(第二篇)
俗話說:無規矩不成方圓,做事做人都一樣。寫程式碼也是一樣,都需要遵循基本的程式碼規範和格式。只有瞭解和遵循規則,才能寫出更高質量的程式碼,才能在錯綜複雜的 Bug 中快速定位出問題並找到解決方案。相信大家在《Python 單元測試框架之 Pytest 剖解入門(第一篇)》 已
和機器學習和計算機視覺相關的數學(from LinDahua)
感覺數學似乎總是不夠的。這些日子為了解決research中的一些問題,又在圖書館捧起了數學的教科書。從大學到現在,課堂上學的和自學的數學其實不算少了,可是在研究的過程中總是發現需要補充新的數學知識。Learning和Vision都是很多種數學的交匯場。看著不同的理論體系的交匯,對於一個researcher
吳恩達機器學習筆記29-反向傳播算法(Backpropagation Algorithm)
下一步 algo 學習 技術分享 png 含義 ima 需要 ati 之前我們在計算神經網絡預測結果的時候我們采用了一種正向傳播方法,我們從第一層開始正向一層一層進行計算,直到最後一層的??? (??)。 現在,為了計算代價函數的偏導數我們需要采用一種反向傳播算法,也就是
git 學習筆記三 (windows環境)
clas 環境 check pre div nbsp windows name cnblogs 分支管理 查看分支 git branch 創建dev分支 git branch <name> 切換到dev分支 git checkout <name&
Openstack 安裝部署指南翻譯系列 之 Cinder服務安裝(Block Storage)
openstack 翻譯 cinder安裝1.1.1.1. Cinder服務安裝(Block Storage)塊存儲服務(cinder)為訪客實例提供塊存儲設備。存儲設置方法由塊存儲驅動程序確定,或者在多後端配置的情況下確定驅動程序。有各種可用的驅動程序:NAS / SAN,NFS,iSCSI,Ceph等。塊
Rxjs之創建操作符(Angular環境)
idt style its .com temp cto from exp ros 一 of操作符 import { Component, OnInit } from ‘@angular/core‘; import { of } from ‘rxjs/observable/