原创 python pass

pass語句在函數中的作用 1、空語句,什麼也不做 2、在特別的時候用來保證格式或是語義的完整性 當你在編寫一個程序時,執行語句部分思路還沒有完成,這時你可以用pass語句來佔位,也可以當做是一個標記,是要過後來完成的代碼。比如下面這樣

原创 python zip

定義:zip([seql, ...])接受一系列可迭代對象作爲參數,將對象中對應的元素打包成一個個tuple(元組),然後返回由這些tuples組成的list(列表)。若傳入參數的長度不等,則返回list的長度和參數中長度最短的對象相同。

原创 tensorflow 一些常用函數的功能

tf.train.slice_input_producer(tensor_list, num_epochs=None, shuffle=True, seed=None, capacity=32, shared_name=None, na

原创 MCMC(Markov Chain Monte Carlo)的理解與實踐(Python)

理解MCMC及一系列改進採樣算法的關鍵在於對馬爾科夫隨機過程的理解。更多詳盡的討論請參見 重溫馬爾科夫隨機過程。 對於給定的概率分佈 π(x),我們希望能有便捷的方式生成它(π(x))對應的樣本。由於馬氏鏈能收斂到平穩分佈,於是一

原创 機器學習算法——SVD奇異值分解

一、SVD奇異值分解的定義     假設是一個的矩陣,如果存在一個分解: 其中爲的酉矩陣,爲的半正定對角矩陣,爲的共軛轉置矩陣,且爲的酉矩陣。這樣的分解稱爲的奇異值分解,對角線上的元素稱爲奇異值,稱爲左奇異矩陣,稱爲右奇異矩陣。

原创 Beta函數與Gamma函數及其與Beta分佈的關係

相關函數在scipy.special import scipy.special as ss ss.beta(x1, x2)1212 相關分佈(概率密度)在scipy.stats import scipy.stats as st s

原创 Python-Numpy的tile函數用法

>>> tile(1,2) array([1, 1])   >>> tile((1,2,3),3) array([1, 2, 3, 1, 2, 3, 1, 2, 3])   >>> tile(a,2) array([[1,

原创 numpy 中的ndarray數組返回符合特定條件的索引方法

在numpy的ndarray類型中,似乎沒有直接返回特定索引的方法,我只找到了where函數,但是where函數對於尋找某個特定值對應的索引很有用,對於返回一定區間內值的索引不是很有效,至少我沒有弄明白應該如何操作。下面先說一下where

原创 關於Python中的yield

在介紹yield前有必要先說明下Python中的迭代器(iterator)和生成器(constructor)。 一、迭代器(iterator) 在Python中,for循環可以用於Python中的任何類型,包括列表、元祖等等,實際上

原创 Python的sys.stdout、sys.stdin重定向

sys.stdout 與 print 當我們在 Python 中打印對象調用 print obj 時候,事實上是調用了 sys.stdout.write(obj+'\n') print 將你需要的內容打印到了控制檯,然後追加了一

原创 Softmax公式推導

直接給出了梯度更新公式,但是沒有給出公式推導。這裏對公式推導進行簡單的補充說明。

原创 python nonzero

nonzero(a)返回數組a中值不爲零的元素的下標,它的返回值是一個長度爲a.ndim(數組a的軸數)的元組,元組的每個元素都是一個整數數組,其值爲非零元素的下標在對應軸上的值。例如對於一維布爾數組b1,nonzero(b1)所得到的

原创 牛頓法

牛頓法相比梯度下降法速度更快,每次更新使損失以二次方的速度減少,因此稱二次迭代,其原理如下: 牛頓法至少有兩個應用方向,1、求方程的根,2、最優化。牛頓法涉及到方程求導,下面的討論均是在連續可微的前提下討論。  1、求解方程。 並不是

原创 KNN

缺點: 耗內存,存儲所有訓練樣本,對每個測試樣本都要計算和所有訓練數據的距離,時間成本高 knn 和 Locally weighted linear regression 思想上非常相似,對每個預測點都需要訓練單獨訓練模型 代碼如下: f

原创 機器學習算法的調試 —— 梯度檢驗(Gradient Checking)

反向傳播算法很難調試得到正確結果,尤其是當實現程序存在很多難於發現的bug 時。舉例來說,索引的缺位錯誤(off-by-one error)會導致只有部分層的權重得到訓練(for(i=1; i<=m; ++i) 被漏寫爲 for(i=