我們就介紹一下mnist的手寫數字識別演算法吧
1.張量
這裡所說的張量,其實可以模擬為python裡面的一些列表,或者列表的巢狀。
2.佔位符
x = tensorflow.placeholder(「型別」, shape=[none, 784])
這個就像字面意思了
3.變數
w = tf.variable(tf.zeros([784, 10]))
定義乙個二維張量,類似784 * 10 的平面模型
4.星乘
對應元素相乘,向量化後的和權重相乘得到乙個張量結果tf.constant([none, 784]) * tf.constant([784, 10])
[none, 784], 之所以這樣構造是因為輸入未知,但是每張圖的畫素點為28*28=784,;[784, 10] ,設定這個的原因是因為有784個特徵值(畫素點),每個特徵值代表的數字是【0~9】是個數字即10種輸出結果
int[38]: sess.run(tf.constant([[1,2,3],[4,5,6]]) * tf.constant([[7],[8]]))
out[38]:
array([[ 7, 14, 21],
[32, 40, 48]])
int[36]: sess.run(tf.constant([[1,2,3],[4,5,6]]) * tf.constant([[7,8, 9]]))
out[36]:
array([[ 7, 16, 27],
[28, 40, 54]])
5.交叉熵 cross_entry
在特徵工程中,用來衡量兩個值的近似度,推導過程如下:
兩個概率分布,**的概率分布為p,真實概率分布為q,每次的概率肯定是小於等於1的
在計算機中想要表示乙個概率大小所需要的編碼長度需要多少位呢?1byte = 8bit = 2^3bit
每個事件發生需要的儲存位元組長度為:2^n = 1/p n(需要的位數);p(概率大小)
所以:n = log2(1/p),結果乘以實際概率;
所以每個時間需要的長度為:p(i) * log2(1/p(i))
然後需要的總長度為,單個的求和,
6.卷積 conv
簡單一句話,卷積在這裡的作用就是提取特徵值,即邊緣檢測,區分開不同的值域
這裡再提乙個偏置值的問題吧,偏置值作用其實是為了平移整個張量,使邊緣域穿過原點
i1x1 + b1 = i2x2
i1 = x2/x1*i2 - b1
對於乙個二元輸入方程,斜率也就是邊緣域, b1就是乙個平移值
7.池化 pool
池化作用是啥呢?池化利用乙個卷積核在一幅圖的張量中進行遊走,檢測出這個卷積核區域內的最大值,最小值或者均值等,其實就是在壓縮你的的尺寸
7.通道 channel
首先從最開始的輸入開始,對於我們的mnist手寫數字而言,是黑白單通道輸入,如果是彩圖的話,就是三通道輸入(rgb)。對於多層卷積網路而言,通道是怎麼變化的呢?
1.channel = 1
2.希望第一層輸出的特徵值個數:mnist這個例項中是32個特徵值,即第一層的輸出變成了32個channel
3.第二層的輸入通道數 = 第一層的特徵輸出數 = 32
4.第二層的輸出特徵個數 = 32 + 32 = 64
…以此類推
工作記錄 HighChart初體驗
在外邊工作的時候接觸到很多js的前台框架,我們開發的系統整體邏輯很簡單,但是前台奇葩的功能還是比較多的,今天就聊一聊曲線這方面的例子。這裡的需求是 查出每個屋子的溫濕度,然後顯示曲線 前台 id container style min width 400px width 1100px height ...
谷歌初體驗
一直用拼音加加的我,終於在某人的 下,試用了一下谷歌輸入法,結果拼音加加徹底的從我的機器上消失了,我終於也成為了乙個喜新厭舊的人啦.先說一下谷歌比拼音加加強的地方吧.1.最吸引人的地方就是可以自動同步使用者詞庫,這樣只要是能上網的地方,我就可以更新到符合我習慣的詞庫了,打的越多就越熟練,哈哈.2.句...
it行業初體驗
作為一名程式設計師,我也說一下自己入行一段時間的體會和感受。我記得是15年12月份開始,正式入門php語言,都說php是比較簡單,比較容易入門的一門語言,所以自己就選擇了php,一開始接觸php的時候 說實話 我還是比較感興趣的,原來這就是程式設計啊,真的好神奇。所以每天都是很用心的進行學習。說度過...