原创 python手寫神經網絡之Dropout實現

這裏寫三種實現,一種是vanilla,一種是效率更高的寫法,還有一種是作爲網絡層的實現方法。 雖然dropout的參數叫probability,一般指的不是扔的機率,是keep的機率(因爲代碼更好解釋?)。(但是不固定,注意一致性,自恰即

原创 python手寫神經網絡之BatchNormalization實現

也是來源於《深度學習入門——基於Python的理論與實現》附加代碼,書中只是給了BN的對比結果,展示了BN的效果,沒有再贅述實現(可能因爲有點複雜),所以這裏研究一下BN的代碼。 之前我曾經使用過TensorFlow的BN,它提供

原创 python手寫神經網絡之權重初始化——梯度消失、表達消失

基於《深度學習入門——基於Python的理論與實現》第六章,但是書上只有一段基礎的展示代碼,和一些刻板結論(xx激活用xx優化),沒有太多過程分析,所以自己進行了擴展與實驗,加入了激活前後的對比,和不同激活函數不同係數等等的對比。    

原创 python手寫神經網絡之優化器(Optimizer)SGD、Momentum、Adagrad、RMSProp、Adam實現與對比——《深度學習入門——基於Python的理論與實現(第六章)》

vanila SGD先不寫了,很簡單,主要從Momentum開始。   老規矩,先手寫,再對照書本: 其實這個還真難手寫出一樣的,尤其v的初始化,我就沒想到他怎麼做。 他默認了很多規則在裏邊,他的v沒在init初始化,也不能動態,二是在第

原创 python實現微分函數,兩種計算方式對比,一個誤區

v1是f(x+h)-f(x)的版本,不加後綴的版本是f(x+h)-f(x-h)的,就是所謂左右兩側更精準的那個版本,但是做對比的時候,直覺上有些問題存在,如果是f(x)=x**2,是變化的斜率,左右兩側同時計算差值是可能帶來更精準的計算,

原创 圖像快拼筆記與圖像相關資料收集

  opencv博客: 這纔是重點,這裏包含了基礎知識,也有圖像快拼的實現 https://www.cnblogs.com/skyfsm/category/1000207.html     一篇圖像快拼微創新論文——BSURF: http

原创 python手寫神經網絡之手動微分與梯度校驗——《深度學習入門——基於Python的理論與實現(第五章)》

下面內容,算是一個debug過程,但是也算是一個學習過程,瞭解梯度校驗的過程和影響微分梯度計算的因素。   下邊是根據書本模仿的兩層網絡,並非抄原代碼,所以有所不同,但是我主觀覺得差不多(有幾個接口暫不列出),但是代碼不是敲出來不報錯就行

原创 編譯opencv2.4.13,編譯opencv3,在opencv3以上環境中使用nonfree等模塊,使用surf等,3.4.3爲例

  ============================================================================================== ======================

原创 tensorflow tensorboard使用方法、應用場景和常見問題

  詳細介紹:     基礎操作兩方面: 第一方面:“製作”各種標量、記錄節點,圖標、圖片等的記錄彙集,sess.run從計算圖得到一次彙集的記錄。 關於sess.run(merged),可以把這個也當做計算圖中得到了一個結果,只是不同用

原创 tensorflow生成隨機數據

基礎接口:用來生成隨機數,可以指定均值和方差。   相比簡單拿來用,調一下參數,生成數據並生成圖形觀察對比一下, 對於直觀理解數據和神經網絡訓練還是有幫助的。   對比tf.random_normal,數據限制了範圍,離羣點更少,常用於神

原创 Kaggle ICML2013 fer2013人臉表情識別/面部表情識別:訓練、調優、調試與踩坑

目錄 概要: 問題來源: 論文對此比賽的說明: 選擇原因: 實現與優化思路: 前置: 數據處理: 原csv數據的讀取與分割: csv數據轉圖片和tfrecord的存取: tfrecord接生產隊列供模型訓練: 神經網絡定義: 損失函數:

原创 tensorflow中optimizer minimize自動訓練簡介和選擇訓練variable的方法

  本文主要介紹tensorflow的自動訓練的相關細節,並把自動訓練和基礎公式結合起來。如有不足,還請指教。 寫這個的初衷:有些教程說的比較模糊,沒體現出用意和特性或應用場景。 面向對象:稍微瞭解點代碼,又因爲有限的教程講解比較模糊而一

原创 tensorflow 樣本均衡問題和權重損失 交叉熵

實際訓練神經網絡常會遇到數據不均衡問題,數據不均衡會影響模型訓練效果,可以使用權重來糾正。 數據不均衡對應的原理也很簡單,當一個數據不足或者過多時,模型瞎猜也能獲得很高的準確率。 1%的正例,99%的負例,全選負,準確率99%。   自己

原创 python下手動實現卷積神經網絡中的卷積操作(conv2d)

    寫這個的原因:一來好像沒怎麼搜到別人手動實現,作爲補充;二來鞏固一下基礎。   卷積操作示意 先從一張示意圖說起,卷積基礎概念和操作步驟就不囉嗦了,只講這張圖,大意就是,有in-channel,有out-channel,你需要把i

原创 使用auto-encoder實現數據壓縮、分類預測

原理簡介: (文章編輯bug太多,白碼字了,只能簡化說了。)通過encoder-decoder的結構形成一個負、正金字塔的瓶頸結構(必須是瓶頸結構,才能起到壓縮的效果,不然就成了複製了),對數據進行壓縮並還原,以還原程度爲指標來訓練網絡。