原创 【劍指offer題解】leetcode18,20,21

18. 刪除鏈表的節點 思路:數據結構基本操作,爲了避免第一個節點的影響,先在開始出加一個值爲空的頭節點,然後就是常規的鏈表刪除節點操作。 代碼: # Definition for singly-linked list. # c

原创 目標檢測SSD算法訓練過程通俗詳解

參考論文: http://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/44872.pdf 參考代碼: https://git

原创 【劍指offer題解】leetcode 12,13

12. 矩陣中的路徑 思路:dfs回溯+剪枝即可。剪枝的目的是壓縮無用的搜索空間,在已知不可能匹配成功的情況下應立即返回,節省非常多的搜索時間。時間複雜度O(3kMN)O(3^{k}MN)O(3kMN),因爲不能往回找所以是3,

原创 【劍指offer題解】leetcode 14,15

14. 剪繩子 I 思路:這個題一開始感覺是dp,但是找不準狀態轉移方程。看了大神的題解以後才發現這個題有一定的數學推導成分。首先當 x=2 時,只能對應1 * 1;當x=3時,顯然 1 * 2 要大於 1 * 1 * 1,這兩

原创 Pytorch遷移學習實戰:基於vgg11做MNIST數據集的分類

在對一個新的數據集進行分類時,經常使用一些預訓練好的模型,如AlexNet,VGG,Resnet等,並且將網絡的最後幾層fc進行修改,以適應新數據集的類別個數。 這樣做的可行性在於,深度神經網絡通過預訓練得到數據分層級的特徵,比較

原创 Pytorch中的神坑:關於model.eval的問題

有時候使用Pytorch訓練完模型,在測試數據上面得到的結果令人大跌眼鏡。這個時候需要檢查一下定義的Model類中有沒有 BN 或 Dropout 層,如果有任何一個存在,那麼在測試之前需要加入一行代碼: #model是實例化的模

原创 【劍指offer題解】leetcode 10,11

10- I 斐波那契數列 思路一:打表,O(1)時間複雜度值得擁有; 思路二:每次計算出新的值判斷是否大於100000007,若大於求餘; 思路三:求餘時間較長,可改爲若大於100000007,則減掉100000007。因爲前面

原创 【劍指offer題解】 leetcode 6,7,9

6. 從尾到頭打印鏈表 思路一:順序遍歷鏈表,給到list以後反轉list 思路二:反轉鏈表,正向輸出。個人感覺速度快一點,兩個算法同樣遍歷一次鏈表,而算法一需要額外的再做list的反轉。(不過提交時間反而算法一快 代碼一: #

原创 【劍指offer題解】 leetcode 3,4,5

3. 數組中重複的數字 思路一:類似於桶排序,用空間換時間,開一個大小爲n的bucket數組,令每個值爲1。遍歷一遍原始數組,遇到某個元素就在bucket數組的對應的位置減1,直到找到第一個小於0的。時間複雜度O(n),空間複雜

原创 LSTM的通俗易懂理解

在觀摩了李宏毅老師講解的LSTM以後感覺豁然開朗,其實並沒有很多教程裏面說得那麼晦澀。 理解LSTM有三個步驟,爲什麼,是什麼,怎麼用。 我們知道,用MLP和CNN這些網絡在處理圖像信息是比較work的。但是在處理語音這種序列信息

原创 WGAN與WGAN-GP學習筆記

原始GAN存在訓練不穩定的情況,主要原因是JS散度的選取不太合理。我們的目標是通過神經網絡的學習,不斷地讓生成分佈 PgP_{g}Pg​ 不斷接近真實分佈 PrP_{r}Pr​。但是當使用JS散度作爲兩個分佈之間的距離的度量時,如