原创 用神經網絡生成fizzbuzz序列

沒錯,就是你聽過的那個fizzbuzz,3整除fizz,5整除buzz,同時整除fizzbuzz,現在用神經網絡來生成。   大體思路: 將自然數字序列作爲訓練數據,使用二進制形式(也就是one-hot形式) 將對應的fizzbuzz作爲

原创 python 動態數組 list 內存映射,leetcode 707,真鏈表能打敗假鏈表嗎?

 爲什麼寫這個,我在leetcode刷題(leetcode 707 設計鏈表 Design Linked List),有個設計鏈表的題,還特意加了尾指針,也試過雙鏈表,結果時間上還是跑不過別人的直接用list去append和insert的

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

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

原创 Gradient Descent、Momentum、Nesterov的實現及直覺對比

  GradientDescent、Momentum(動量)、Nesterov(牛頓動量)的直覺含義對比: Gradient Descent   def gd(x_start, step, g):#gradient descent

原创 TensorFlow實現多層LSTM識別MNIST手寫字,多層LSTM下state和output的關係

其他內容 https://blog.csdn.net/huqinweI987/article/details/83155110   輸入格式:batch_size*784改成batch_size*28*28,28個序列,內容是一行的28個

原创 tensorflow使用多層RNN(lstm)預測手寫數字實現部分細節及踩坑總結

輸入格式:batch_size*784改成batch_size*28*28,28個序列,內容是一行的28個灰度數值。 讓神經網絡逐行掃描一個手寫字體圖案,總結各行特徵,通過時間序列串聯起來,最終得出結論。 網絡定義:單獨定義一個獲取單元的

原创 《21個項目玩轉深度學習:基於Tensorflow的時間詳解》第五章遇到的一個導出環境變量問題

主要關於linux下export、echo、pwd的用法。   《21個項目玩轉深度學習:基於Tensorflow的時間詳解》5.2.1安裝TensorFlow Object Detection API的一個操作,失敗了,寫給碰到同樣問題

原创 tensorflow存儲、恢復神經網絡結構和變量

tensorflow提供了變量保存接口,方便儲存訓練好的網絡參數,以便進行預測和繼續訓練。 save核心代碼只有兩句話,簡化DEMO如下(代碼中的global_step後邊會解釋): import tensorflow as tf W

原创 tensorflow使用可變學習率進行訓練(tf.train.exponential_decay)

tensorflow提供了接口,可以直接可變學習率,在訓練過程中動態改變學習率。 兩種train_op,一種普通的固定學習率訓練作爲對比train_op,一種是可變學習率train_op2。 接口參數: 起始學習率; 訓練步數計數器:用來

原创 tensorflow使用L2 regularization正則化修正overfitting過擬合

L2正則原理: 在Loss中加入參數w的平方和,這樣訓練過程中就會抑制w的值,w的值小,曲線就比較平滑,從而減小過擬合,參考公式如下圖: 正則化是不影響你去擬合曲線的,並不是所有參數都會被無腦抑制,實際上這是一個動態過程,是cross_

原创 tensorflow中tf.strided_slice用法

  一個工程中用到,乍一看很簡單,給了下標直接就能從隊列中切出數據來,但是掃一眼help給的高級用法反而有點懵,所以寫了個demo。 demo1:正常單軸用法,只要給出下標就能切數據 import tensorflow as tf se

原创 使用auto-encoder實現分類預測

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

原创 tensorflow中更新參數順序與tf.group中操作執行順序

想手動實現Adagrad,因爲Adagrad有兩部分需要更新,因爲之前合併兩個initializer用過tf.group,想當然認爲tf.group可能是帶順序的,所以打算把兩個update直接group起來執行,看起來省事,感覺卻會出事

原创 tensorflow中實現自動、手動梯度下降:GradientDescent、Momentum、Adagrad

tensorflow中提供了自動訓練機制(見nsorflow optimizer minimize 自動訓練和var_list訓練限制),本文主要展現不同的自動梯度下降並附加手動實現。   learning rate、step、計算公式如

原创 6段代碼帶你瞭解python global變量

借4個例子,說明一下global的作用。 a=6 print(id(a)) def f(): print(a) print(id(a)) f() print(id(a)) print('finally:',a)