原创 numpy------bincount()通俗易懂

bincount的用途很簡單,就是統計出一個列表的各個元素的出現次數。 例如輸入是:[1,0,2,2,1,2,3,5] 那麼輸出就是:[1,2,3,1,0,1] 這樣的結果可能並不是很直觀,可能依然會有同學會問爲什麼會輸出這樣的結果。 我

原创 矩陣基礎知識------秩+線性相關和線性無關

秩 矩陣的秩。秩 就是矩陣中 極大線性無關組的向量個數。 也就是 以這個矩陣的元素作爲係數的方程組中,線性無關的方程個數。 線性無關,就是 a,b,c個方程中,誰也不能通過自己或者另外兩個方程表示誰。  線性相關和線性無關: 線性相關的意

原创 leetcde-------求柱狀圖中最大的矩形(動態規劃,中心擴展)

解法一:暴力枚舉法: 思路:枚舉出,每一列對應的最大矩形。最後找出最大的那個即可。 首先,要想找到第 i 位置最大面積是什麼? 是以i 爲中心,向左找第一個小於 heights[i] 的位置 left_i;向右找第一個小於於 heigh

原创 pytorch中VGG網絡的源碼解讀

一,簡單介紹VGG網絡 VGG網絡是由多個卷積神經網絡堆疊而成的分類網絡。分爲幾類:VGG11,VGG13,VGG16,VGG19。結構如下圖: VGG11,13,16,19這些數字表示VGG網絡中的卷積層+全連接層的個數。 同樣從上圖

原创 L1和L2正則化------直觀和全面的解釋

1.   1範數和2範數 L1和L2正則化,其實就是在損失函數後面加一個1範數或2範數約束。 1-範數: ,1範數表示向量元素絕對值之和。 2-範數: 也稱歐幾里得範數。即向量元素絕對值的平方和再開方。   2.   L1正則化 假設有如

原创 [pytorch]醫學圖像之肝臟語義分割(訓練+預測代碼)

一,Unet結構: 結合上圖的Unet結構,pytorch的unet代碼如下: unet.py: import torch.nn as nn import torch from torch import autograd clas

原创 leetcode題---------合併K個有序鏈表

  方法一:最容易想到的,就是暴力解法 先遍歷所有的鏈表,將所有的結點的值放到一個列表中。 再將這個列表排序。 再把列表裏的值重新構建成一個鏈表 class ListNode(object): def __init__(sel

原创 leetcode---------有效的括號(棧)

解法: 看到這些判斷左右對稱的題,首先想到的就是用棧。 首先指定括號間的配對關係,例如 “()”,“[ ]”,“{ }”。用一個變量map_dict裝着,讓程序知道“)”和“(”,“]”和“[”是配對的。 然後把不在map_dict的k

原创 leetcode題----迴文數的判定(雙指針,雙向隊列)

迴文數:指從左到右和從右到左看起來是一樣的,如121,25852,但-121不是迴文數,因爲有負號。 法一,將int轉化爲str:雙向隊列 時間複雜度:O(n^2)  [因爲每次pop(0)的時間複雜度都是O(n),因爲pop(0)從列表

原创 leetcode-----買賣股票最佳時機1、2、3(暴力法,動態規劃)

買賣股票最佳時機1: 解法1:(暴力法) 首先,最簡單的方法,暴力法: 兩個循環,枚舉所有買股票和買股票的可能,及其他們的收益。取最大的收益。 class Solution: def maxProfit(self, price

原创 leetcode題---鏈表中的兩數相加

解題思路一:最簡單的,就是把兩組組合成數字,再運用相加相加,再分拆各個數位上的數字。但這樣做耗時太大 解題思路二: 先把兩個數字個位數拿出來(例如題中的2和5),判斷有沒有進位(即是否大於9),若有進位,則carry=進位數 否則爲0。

原创 leetcode-----N皇后問題

皇后可以直走,橫走,斜着走。 回溯法: 回溯法的意思是,在某個位置放下皇后後,發現並不符合規則,然後就把這個皇后拿起來重新放,可以理解爲悔棋。 在解皇后問題時,我們需要知道的是,西洋棋牌的主對角線(hill_diagonals)和次對

原创 leetcode------接雨水(動態規劃,雙指針)

解法一:按行算: 整個思路就是,求第 i 層的水,遍歷每個位置,如果當前的高度小於 i,並且兩邊有高度大於等於 i 的,說明這個地方一定有水,水就可以加 1。 如果求高度爲 i 的水,首先用一個變量 temp 保存當前累積的水,初始化爲

原创 [傳統圖像處理]-----圖像的膨脹和腐蝕、開運算、閉運算、黑帽、頂帽(python+opencv)

一、原理 無論是膨脹還是腐蝕,都是對白色區域(明亮區域)而言的。膨脹或者腐蝕操作都會有一個核,核的形狀可以是圓形或者正方形,核在輸入圖像上滑動。膨脹是用核與二值圖像元素做“與”運算,如果都爲0,那麼目標像素點爲0,否則爲1,這樣的將會擴大

原创 leetcode-----矩陣向右旋轉90°

題目: 思路其實就是記住:向右旋轉就是:先把矩陣進行轉置,再沒行倒序。 額外,向左旋轉則是把矩陣轉置就可以了。 class Solution: def rotate(self, matrix): """