回覆列表
-
1 # 小小猿愛嘻嘻
-
2 # Kaiser
“陣列中小於0的置0,大於零的保留原值”,這就是ReLU啟用函式:
可以直接用TensorFlow裡的ReLU函式,這樣原本的[[-1,1], [-2,2]]就變成了[[0,1],[0,2]]。
我在自己網站上也發了一個帖子,程式碼排版更好看一些,而且可以線上執行(效果如圖):
https://jizhi.im/community/discuss/2017-12-29-2-20-0-pm
numpy陣列本身提供了對陣列元素快速處理的通用函式,像計算平方根、平方、四捨五入等,不需要寫任何迴圈操作,就能完成對每個元素的操作,當然你也可以自定義函式,將這個函式應用在陣列的每個元素上,下面我以Anaconda3為基礎,實驗系統及軟體為win7+python3.6+qtconsole,簡單介紹一下,主要如下:
1.一元通用函式。這裡主要用到一個數組,將這個陣列作為引數傳遞給函式,對陣列的中的每個元素進行操作,包括計算絕對值、平方根、平方等,主要函式如下:
abs、fabs:計算整數、浮點數或複數絕對值
sqrt:計算各元素的平方根
square:計算各元素的平方
exp:計算各元素的指數e^x
log、log10、log2、log1p:計算各元素的對數
sign:計算各元素的正負號
ceil:向上取整
floor:向下取整
rint:四捨五入取整
modf:將陣列的小數和整數部分以兩個獨立陣列的形式返回
cos、cosh、sin、sinh、tan、tanh:普通型和雙曲型三角函式
arccos、arccosh、arcsin、arcsinh、arctan、arctanh:反三角函式
測試程式碼如下:
2.二元通用函式。這裡需要用到兩個陣列,將這兩個陣列作為引數傳遞給函式,包括陣列相加、陣列相減、陣列相乘等。主要函式如下:
add:將陣列中對應的元素相加
subtract:從第一個陣列中減去第二個陣列中的元素
multiply:陣列元素相乘
divide、floor_divide:除法或向下圓整除法
power:對第一個陣列中的元素A,根據第二個陣列中的相應元素B,計算A^B
maximum、fmax:元素級的最大值計算
minimum、fmin:元素級的最小值計算
mod:元素級的求模計算copysign:將第二個陣列中的值的符號複製給第一個陣列中的值測試程式碼如下:
3.自定義函式。這裡主要用到apply_along_axis(func, axis, arr, *args, **kwargs)這個函式,第一個引數是我們自定義的函式,第二個引數為作用的軸向,第三個引數為作用的陣列,其他兩個引數為額外的引數,測試程式碼如下:
至此,我們就完成了對利用numpy陣列對每個元素的操作。整個過程來看,其實很簡單,只要記住相關函式,會使用就行,numpy已經提供了大部分操作,如果需要自己定義的話,也可自定義函式,我這裡就不詳細講述了,網上這方面的資料很多,你可以搜一下,對你提高很有幫助,希望以上分享的內容能對你有所幫助吧。