1. print()函數(shù):打印字符串
創(chuàng)新互聯(lián)為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括網(wǎng)站制作、成都網(wǎng)站建設(shè)、app開發(fā)定制、微信小程序開發(fā)、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營(yíng)銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來(lái)大量新的創(chuàng)意。
2. raw_input()函數(shù):從用戶鍵盤捕獲字符
3. len()函數(shù):計(jì)算字符長(zhǎng)度
4. format(12.3654,'6.2f'/'0.3%')函數(shù):實(shí)現(xiàn)格式化輸出
5. type()函數(shù):查詢對(duì)象的類型
6. int()函數(shù)、float()函數(shù)、str()函數(shù)等:類型的轉(zhuǎn)化函數(shù)
7. id()函數(shù):獲取對(duì)象的內(nèi)存地址
8. help()函數(shù):Python的幫助函數(shù)
9. s.islower()函數(shù):判斷字符小寫
10. s.sppace()函數(shù):判斷是否為空格
11. str.replace()函數(shù):替換字符
12. import()函數(shù):引進(jìn)庫(kù)
13. math.sin()函數(shù):sin()函數(shù)
14. math.pow()函數(shù):計(jì)算次方函數(shù)
15. 3**4: 3的4次方
16. pow(3,4)函數(shù):3的4次方
17. os.getcwd()函數(shù):獲取當(dāng)前工作目錄
18. listdir()函數(shù):顯示當(dāng)前目錄下的文件
19. socket.gethostbyname()函數(shù):獲得某主機(jī)的IP地址
20. urllib.urlopen(url).read():打開網(wǎng)絡(luò)內(nèi)容并存儲(chǔ)
21. open().write()函數(shù):寫入文件
22. webbrowser.open_new_tab()函數(shù):新建標(biāo)簽并使用瀏覽器打開指定的網(wǎng)頁(yè)
23. def function_name(parameters):自定義函數(shù)
24. time.sleep()函數(shù):停止一段時(shí)間
25. random.randint()函數(shù):產(chǎn)生隨機(jī)數(shù)
作者 | Vihar Kurama
編譯 | 荷葉
來(lái)源 | 云棲社區(qū)
摘要:深度學(xué)習(xí)背后的主要原因是人工智能應(yīng)該從人腦中汲取靈感。本文就用一個(gè)小例子無(wú)死角的介紹一下深度學(xué)習(xí)!
人腦模擬
深度學(xué)習(xí)背后的主要原因是人工智能應(yīng)該從人腦中汲取靈感。此觀點(diǎn)引出了“神經(jīng)網(wǎng)絡(luò)”這一術(shù)語(yǔ)。人腦中包含數(shù)十億個(gè)神經(jīng)元,它們之間有數(shù)萬(wàn)個(gè)連接。很多情況下,深度學(xué)習(xí)算法和人腦相似,因?yàn)槿四X和深度學(xué)習(xí)模型都擁有大量的編譯單元(神經(jīng)元),這些編譯單元(神經(jīng)元)在獨(dú)立的情況下都不太智能,但是當(dāng)他們相互作用時(shí)就會(huì)變得智能。
我認(rèn)為人們需要了解到深度學(xué)習(xí)正在使得很多幕后的事物變得更好。深度學(xué)習(xí)已經(jīng)應(yīng)用于谷歌搜索和圖像搜索,你可以通過(guò)它搜索像“擁抱”這樣的詞語(yǔ)以獲得相應(yīng)的圖像。-杰弗里·辛頓
神經(jīng)元
神經(jīng)網(wǎng)絡(luò)的基本構(gòu)建模塊是人工神經(jīng)元,它模仿了人類大腦的神經(jīng)元。這些神經(jīng)元是簡(jiǎn)單、強(qiáng)大的計(jì)算單元,擁有加權(quán)輸入信號(hào)并且使用激活函數(shù)產(chǎn)生輸出信號(hào)。這些神經(jīng)元分布在神經(jīng)網(wǎng)絡(luò)的幾個(gè)層中。
inputs 輸入 outputs 輸出 weights 權(quán)值 activation 激活
人工神經(jīng)網(wǎng)絡(luò)的工作原理是什么?
深度學(xué)習(xí)由人工神經(jīng)網(wǎng)絡(luò)構(gòu)成,該網(wǎng)絡(luò)模擬了人腦中類似的網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)穿過(guò)這個(gè)人工網(wǎng)絡(luò)時(shí),每一層都會(huì)處理這個(gè)數(shù)據(jù)的一方面,過(guò)濾掉異常值,辨認(rèn)出熟悉的實(shí)體,并產(chǎn)生最終輸出。
輸入層:該層由神經(jīng)元組成,這些神經(jīng)元只接收輸入信息并將它傳遞到其他層。輸入層的圖層數(shù)應(yīng)等于數(shù)據(jù)集里的屬性或要素的數(shù)量。輸出層:輸出層具有預(yù)測(cè)性,其主要取決于你所構(gòu)建的模型類型。隱含層:隱含層處于輸入層和輸出層之間,以模型類型為基礎(chǔ)。隱含層包含大量的神經(jīng)元。處于隱含層的神經(jīng)元會(huì)先轉(zhuǎn)化輸入信息,再將它們傳遞出去。隨著網(wǎng)絡(luò)受訓(xùn)練,權(quán)重得到更新,從而使其更具前瞻性。
神經(jīng)元的權(quán)重
權(quán)重是指兩個(gè)神經(jīng)元之間的連接的強(qiáng)度或幅度。你如果熟悉線性回歸的話,可以將輸入的權(quán)重類比為我們?cè)诨貧w方程中用的系數(shù)。權(quán)重通常被初始化為小的隨機(jī)數(shù)值,比如數(shù)值0-1。
前饋深度網(wǎng)絡(luò)
前饋監(jiān)督神經(jīng)網(wǎng)絡(luò)曾是第一個(gè)也是最成功的學(xué)習(xí)算法。該網(wǎng)絡(luò)也可被稱為深度網(wǎng)絡(luò)、多層感知機(jī)(MLP)或簡(jiǎn)單神經(jīng)網(wǎng)絡(luò),并且闡明了具有單一隱含層的原始架構(gòu)。每個(gè)神經(jīng)元通過(guò)某個(gè)權(quán)重和另一個(gè)神經(jīng)元相關(guān)聯(lián)。
該網(wǎng)絡(luò)處理向前處理輸入信息,激活神經(jīng)元,最終產(chǎn)生輸出值。在此網(wǎng)絡(luò)中,這稱為前向傳遞。
inputlayer 輸入層 hidden layer 輸出層 output layer 輸出層
激活函數(shù)
激活函數(shù)就是求和加權(quán)的輸入到神經(jīng)元的輸出的映射。之所以稱之為激活函數(shù)或傳遞函數(shù)是因?yàn)樗刂浦せ钌窠?jīng)元的初始值和輸出信號(hào)的強(qiáng)度。
用數(shù)學(xué)表示為:
我們有許多激活函數(shù),其中使用最多的是整流線性單元函數(shù)、雙曲正切函數(shù)和solfPlus函數(shù)。
激活函數(shù)的速查表如下:
反向傳播
在網(wǎng)絡(luò)中,我們將預(yù)測(cè)值與預(yù)期輸出值相比較,并使用函數(shù)計(jì)算其誤差。然后,這個(gè)誤差會(huì)傳回這個(gè)網(wǎng)絡(luò),每次傳回一個(gè)層,權(quán)重也會(huì)根絕其導(dǎo)致的誤差值進(jìn)行更新。這個(gè)聰明的數(shù)學(xué)法是反向傳播算法。這個(gè)步驟會(huì)在訓(xùn)練數(shù)據(jù)的所有樣本中反復(fù)進(jìn)行,整個(gè)訓(xùn)練數(shù)據(jù)集的網(wǎng)絡(luò)更新一輪稱為一個(gè)時(shí)期。一個(gè)網(wǎng)絡(luò)可受訓(xùn)練數(shù)十、數(shù)百或數(shù)千個(gè)時(shí)期。
prediction error 預(yù)測(cè)誤差
代價(jià)函數(shù)和梯度下降
代價(jià)函數(shù)度量了神經(jīng)網(wǎng)絡(luò)對(duì)給定的訓(xùn)練輸入和預(yù)期輸出“有多好”。該函數(shù)可能取決于權(quán)重、偏差等屬性。
代價(jià)函數(shù)是單值的,并不是一個(gè)向量,因?yàn)樗鼜恼w上評(píng)估神經(jīng)網(wǎng)絡(luò)的性能。在運(yùn)用梯度下降最優(yōu)算法時(shí),權(quán)重在每個(gè)時(shí)期后都會(huì)得到增量式地更新。
兼容代價(jià)函數(shù)
用數(shù)學(xué)表述為差值平方和:
target 目標(biāo)值 output 輸出值
權(quán)重更新的大小和方向是由在代價(jià)梯度的反向上采取步驟計(jì)算出的。
其中η 是學(xué)習(xí)率
其中Δw是包含每個(gè)權(quán)重系數(shù)w的權(quán)重更新的向量,其計(jì)算方式如下:
target 目標(biāo)值 output 輸出值
圖表中會(huì)考慮到單系數(shù)的代價(jià)函數(shù)
initial weight 初始權(quán)重 gradient 梯度 global cost minimum 代價(jià)極小值
在導(dǎo)數(shù)達(dá)到最小誤差值之前,我們會(huì)一直計(jì)算梯度下降,并且每個(gè)步驟都會(huì)取決于斜率(梯度)的陡度。
多層感知器(前向傳播)
這類網(wǎng)絡(luò)由多層神經(jīng)元組成,通常這些神經(jīng)元以前饋方式(向前傳播)相互連接。一層中的每個(gè)神經(jīng)元可以直接連接后續(xù)層的神經(jīng)元。在許多應(yīng)用中,這些網(wǎng)絡(luò)的單元會(huì)采用S型函數(shù)或整流線性單元(整流線性激活)函數(shù)作為激活函數(shù)。
現(xiàn)在想想看要找出處理次數(shù)這個(gè)問(wèn)題,給定的賬戶和家庭成員作為輸入
要解決這個(gè)問(wèn)題,首先,我們需要先創(chuàng)建一個(gè)前向傳播神經(jīng)網(wǎng)絡(luò)。我們的輸入層將是家庭成員和賬戶的數(shù)量,隱含層數(shù)為1, 輸出層將是處理次數(shù)。
將圖中輸入層到輸出層的給定權(quán)重作為輸入:家庭成員數(shù)為2、賬戶數(shù)為3。
現(xiàn)在將通過(guò)以下步驟使用前向傳播來(lái)計(jì)算隱含層(i,j)和輸出層(k)的值。
步驟:
1, 乘法-添加方法。
2, 點(diǎn)積(輸入*權(quán)重)。
3,一次一個(gè)數(shù)據(jù)點(diǎn)的前向傳播。
4, 輸出是該數(shù)據(jù)點(diǎn)的預(yù)測(cè)。
i的值將從相連接的神經(jīng)元所對(duì)應(yīng)的輸入值和權(quán)重中計(jì)算出來(lái)。
i = (2 * 1) + (3* 1) → i = 5
同樣地,j = (2 * -1) + (3 * 1) → j =1
K = (5 * 2) + (1* -1) → k = 9
Python中的多層感知器問(wèn)題的解決
激活函數(shù)的使用
為了使神經(jīng)網(wǎng)絡(luò)達(dá)到其最大預(yù)測(cè)能力,我們需要在隱含層應(yīng)用一個(gè)激活函數(shù),以捕捉非線性。我們通過(guò)將值代入方程式的方式來(lái)在輸入層和輸出層應(yīng)用激活函數(shù)。
這里我們使用整流線性激活(ReLU):
用Keras開發(fā)第一個(gè)神經(jīng)網(wǎng)絡(luò)
關(guān)于Keras:
Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)的應(yīng)用程序編程接口,由Python編寫,能夠搭建在TensorFlow,CNTK,或Theano上。
使用PIP在設(shè)備上安裝Keras,并且運(yùn)行下列指令。
在keras執(zhí)行深度學(xué)習(xí)程序的步驟
1,加載數(shù)據(jù);
2,創(chuàng)建模型;
3,編譯模型;
4,擬合模型;
5,評(píng)估模型。
開發(fā)Keras模型
全連接層用Dense表示。我們可以指定層中神經(jīng)元的數(shù)量作為第一參數(shù),指定初始化方法為第二參數(shù),即初始化參數(shù),并且用激活參數(shù)確定激活函數(shù)。既然模型已經(jīng)創(chuàng)建,我們就可以編譯它。我們?cè)诘讓訋?kù)(也稱為后端)用高效數(shù)字庫(kù)編譯模型,底層庫(kù)可以用Theano或TensorFlow。目前為止,我們已經(jīng)完成了創(chuàng)建模型和編譯模型,為進(jìn)行有效計(jì)算做好了準(zhǔn)備?,F(xiàn)在可以在PIMA數(shù)據(jù)上運(yùn)行模型了。我們可以在模型上調(diào)用擬合函數(shù)f(),以在數(shù)據(jù)上訓(xùn)練或擬合模型。
我們先從KERAS中的程序開始,
神經(jīng)網(wǎng)絡(luò)一直訓(xùn)練到150個(gè)時(shí)期,并返回精確值。
內(nèi)置函數(shù)就是Python給你提供的,拿來(lái)直接用的函數(shù),比如print.,input等。
截止到python版本3.6.2 ,python一共提供了68個(gè)內(nèi)置函數(shù),具體如下
本文將這68個(gè)內(nèi)置函數(shù)綜合整理為12大類,正在學(xué)習(xí)Python基礎(chǔ)的讀者一定不要錯(cuò)過(guò),建議收藏學(xué)習(xí)!
(1)列表和元組
(2)相關(guān)內(nèi)置函數(shù)
(3)字符串
frozenset 創(chuàng)建一個(gè)凍結(jié)的集合,凍結(jié)的集合不能進(jìn)行添加和刪除操作。
語(yǔ)法:sorted(Iterable, key=函數(shù)(排序規(guī)則), reverse=False)
語(yǔ)法:fiter(function. Iterable)
function: 用來(lái)篩選的函數(shù). 在?lter中會(huì)自動(dòng)的把iterable中的元素傳遞給function. 然后根據(jù)function返回的True或者False來(lái)判斷是否保留留此項(xiàng)數(shù)據(jù) , Iterable: 可迭代對(duì)象
搜索公眾號(hào)頂級(jí)架構(gòu)師后臺(tái)回復(fù)“面試”,送你一份驚喜禮包。
語(yǔ)法 : map(function, iterable)
可以對(duì)可迭代對(duì)象中的每一個(gè)元素進(jìn)行映射. 分別去執(zhí)行 function
hash : 獲取到對(duì)象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空間換的時(shí)間 比較耗費(fèi)內(nèi)存
1、定義函數(shù)
函數(shù)是可重用的程序。本書中已經(jīng)使用了許多內(nèi)建函數(shù),如len()函數(shù)和range()函數(shù),但是還沒自定義過(guò)函數(shù)。定義函數(shù)的語(yǔ)法格式如下:
def 函數(shù)名(參數(shù)):
函數(shù)體
定義函數(shù)的規(guī)則如下:
①關(guān)鍵字def用來(lái)定義一個(gè)函數(shù),它是define的縮寫。
②函數(shù)名是函數(shù)的唯一標(biāo)識(shí),函數(shù)名的命名規(guī)則遵循標(biāo)識(shí)符的命名規(guī)則。
③函數(shù)名后面一定要緊跟著一個(gè)括號(hào),括號(hào)內(nèi)的參數(shù)是可選的,括號(hào)后面要有冒號(hào)。
④函數(shù)體(statement)為一個(gè)或一組Python語(yǔ)句,注意要有縮進(jìn)。
⑤函數(shù)體的第一行可以有文檔字符串,用于描述函數(shù)的功能,用三引號(hào)括起來(lái)。
按照定義規(guī)則,可以定義第一個(gè)函數(shù)了:
def?hello_world():
...?????print('Hello,world!')???#?注意函數(shù)體要有縮進(jìn)
...
hello_world()
Hello,world!
這個(gè)函數(shù)不帶任何參數(shù),它的功能是打印出“Hello,world!”。最后一行代碼hello_world()是調(diào)用函數(shù),即讓Python執(zhí)行函數(shù)的代碼。
2、全局變量和局部變量
全局變量是定義在所有函數(shù)外的變量。例如,定義一個(gè)全局變量a,分別在函數(shù)test1()和test2()使用變量a:
a?=?100???#?全局變量
def?test1():
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
test2()
100
定義了全局變量a之后,在函數(shù)test1()和test2()內(nèi)都可以使用變量a,由此可知,全局變量的作用范圍是全局。
局部變量是在函數(shù)內(nèi)定義的變量,除了用關(guān)鍵字global修飾的變量以外。例如,在函數(shù)test1()內(nèi)定義一個(gè)局部變量a,分別在函數(shù)外和另一個(gè)函數(shù)test2()內(nèi)使用變量a:
def?test1():
...?????a?=?100???#?局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
NameError:?name?'a'?is?not?defined
test2()
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
File?"stdin",?line?2,?in?test2
NameError:?name?'a'?is?not?defined
Python解釋器提示出錯(cuò)了。由于局部變量a定義在函數(shù)test1()內(nèi),因此,在函數(shù)test1()內(nèi)可以使用變量a,但是在函數(shù)外或者另一個(gè)函數(shù)test2()內(nèi)使用變量a,都會(huì)報(bào)錯(cuò),由此可見,局部變量的作用范圍是定義它的函數(shù)內(nèi)部。
一般情況下,在函數(shù)內(nèi)聲明的變量都是局部變量,但是采用關(guān)鍵字global修飾的變量卻是全局變量:
def?test1():
...?????global?a???#?全局變量
...?????a?=?100
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
100
test2()
100
這個(gè)程序與上個(gè)程序相比,只是在函數(shù)test1()中多了一行代碼“global a”,程序便可以正確運(yùn)行了。在函數(shù)test1()中,采用關(guān)鍵字global修飾了變量a之后,變量a就變成了全局變量,不僅可以在該函數(shù)內(nèi)使用,還可以在函數(shù)外或者其他函數(shù)內(nèi)使用。
如果在某個(gè)函數(shù)內(nèi)局部變量與全局變量同名,那么在該函數(shù)中局部變量會(huì)覆蓋全局變量:
a?=?100???#?全局變量
def?test1():
...?????a?=?200???#?同名局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
200
test2()
100
由于在函數(shù)test1()中定義了一個(gè)與全局變量同名的局部變量a,因此,在函數(shù)test1()中全局變量a的值被局部變量覆蓋了,但是在函數(shù)test2()中全局變量a的值沒有被覆蓋。
綜上所述,在Python中,全局變量保存的數(shù)據(jù)供整個(gè)腳本文件使用;而局部變量只用于臨時(shí)保存數(shù)據(jù),變量?jī)H供局部代碼塊使用。
在開發(fā)中我們可以借助于相關(guān)插件或使用Python內(nèi)置函數(shù)"help()”來(lái)查看某個(gè)函數(shù)的參數(shù)說(shuō)明,以查看內(nèi)置函數(shù)sorted()為例:
函數(shù)參數(shù)包括:必選參數(shù)、默認(rèn)參數(shù)、可選參數(shù)、關(guān)鍵字參數(shù)。
1、默認(rèn)參數(shù):放在必選參數(shù)之后,計(jì)算x平方的函數(shù):
這樣的話每次計(jì)算不同冪函數(shù)都要重寫函數(shù),非常麻煩,可使用以下代碼計(jì)算:
默認(rèn)參數(shù)最大好處就是降低調(diào)用函數(shù)的難度。
2、可變參數(shù):就是傳入的參數(shù)個(gè)數(shù)是可變的,可以是1個(gè)、2個(gè)到任意個(gè),還可以是0個(gè),在參數(shù)前面加上*就是可變參數(shù)。在函數(shù)內(nèi)部,參數(shù)numbers接收得到的是一個(gè)tuple,調(diào)用該函數(shù)時(shí),可以傳入任意個(gè)參數(shù),包括0個(gè)參數(shù):
也可以類似可變參數(shù),先組裝一個(gè)dict,然后,把該dict轉(zhuǎn)換為關(guān)鍵字參數(shù)傳進(jìn)去:
分享題目:python函數(shù)速查表 Python數(shù)據(jù)科學(xué)速查表
鏈接URL:http://jinyejixie.com/article26/dodphjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)