原创 Pytorch訓練加速技巧小結
1.有時我們會發現,使用Pytorch的模型,訓着訓着,越來慢了或者outofmemory,這時我們該怎麼解決呢? 主要是因爲,模型可能在不斷的產生臨時變量,這個時候,我們可以設置程序每隔多少次進行一次清除操作:torch.cud
原创 Opencv之圖像柔光效果
1.介紹 圖像柔光效果在很多商業軟件中都有實現,其能針對原始圖像產生一副新的比較平滑感覺光線比較柔和的效果,給人一種朦朧美。具體的實現分爲以下三步: 第一步:對原始圖像按指定的半徑進行高斯模糊; 第二步:對
原创 在PyTorch訓練一個epoch時,模型不能接着訓練,Dataloader卡死
筆者在訓練模型的時候,突然偶遇這個問題,即訓練一個epoch時,模型不能接着訓練,只能通過Ctrl+C強制性暫停,見下圖: Ctrl+C之後呈現的信息表明,這個bug是和多線程有關係。 經過筆者實驗,目前有三種可
原创 語義分割之FCN、SegNet和PSPNet小結
1.介紹 由於最近要用到語義分割模塊,所以又把相應資料拿來讀了一下,順便也做一個筆記,發一篇博客,哈哈。今天的豬腳是FCN、SegNet和PSPNet,由於比較基礎,就三個拿來一起介紹。其中,FCN是用深度學習做語義分割的開山之祖
原创 Opencv之圖像碎片濾鏡
1.介紹 原理很簡單,一句話搞定: 以每個像素爲中心,其餘4個偏移分別以中心對稱,斜45度均勻圓周佈置,水平和垂直偏移各45度,偏移量4個像素。比如下面的圖中,小A是由A移動得到的,其中在水平上,小A與小A的距離是8個像素,垂直方
原创 tensorflow __init__、build 和call小結
1.介紹 在使用tf構建網絡框架的時候,經常會遇到__init__、build 和call這三個互相搭配着使用,那麼它們的區別主要在哪裏呢? 1)__init__主要用來做參數初始化用,比如我們要初始化卷積的一些參數,就可
原创 SSE小試牛刀(一)
1.介紹 SSE絕對是優化神器之一,是由英特爾所提出的cpu指令集,具有Intel SSE指令集支持的處理器有8個128位的寄存器,每一個寄存器可以存放4個(32位)單精度的浮點數,SSE的英文全稱:Stream SIMD Ext
原创 python中np.max與np.maximum的區別
在使用numpy的時候,我們會遇到取最大的問題,常用的函數有兩個:np.max與np.maximum,那麼它們的主要區別在哪裏呢? np.max(a, axis=None, out=None, keepdims=False
原创 圖像處理之高質量縮放(抗鋸齒)
1.介紹 在做圖像處理過程中,我們有時會將圖像縮小之後再進行處理,常用的開源圖像算法包“Opencv”已經帶有resize函數,用起來也是很容易上手的。 對於Opencv中函數原型:cv2.resize(src, dsiz
原创 Caffe、Tensorflow和Pytorch通道維度順序小結
目前世面上深度學習框架比較多,常用的有三大類:Caffe、Tensorflow和Pytorch,這三種深度學習框架都主要在英偉達顯卡上面進行訓練和測試,很奇怪的是,它們之間的通道維度順序並沒有保持一致,在多個框架中替換着使用,很容易讓人混
原创 Opencv之圖像融合
1.介紹 主流的圖像融合算法主要有以下幾種: 1)直接進行圖像拼接,會導致圖片之間有很明顯的界線 2)加權平均法,界線的兩側各取一定的比例來融合縫隙,速度快,但不自然 3)羽化算法,即使得圖邊緣達到朦朧的效
原创 Opencv之色調均化濾鏡
1.介紹 色調均化功能通常是在進行修片處理前期比較常用的功能之一,如果讓我們自己實現色調均化功能,我覺得大部分人會用直方圖均衡化試一試,剛好,此方法就是借用直方圖均衡化,由於彩色圖片一般是RGB三通道,那麼我們是分開處理每個通道之
原创 perceptual loss(感知loss)介紹
1.介紹 在講感知損失函數之前,我們先講一下,網絡所提取到的特徵代表什麼,在下圖中,layer1,layer2學到的是邊緣,顏色,亮度等底層的特徵;layer3開始變得複雜,學到的是紋理的特徵,Layer4則學到的是一些有區別性的
原创 Opencv之圖像金字塔:高斯金字塔和拉普拉斯金字塔
1.介紹 圖像金字塔是圖像中多尺度的一種表現,主要用於分割,目前最流行的方法:深度學習裏面也有它的身影,比如文本檢測方法“TextBoxes++”就用到它了,爲什麼要用它,效果會好一些呢?因爲一張圖片中,有些字體比較大,有些字體比
原创 Pytorch中的train和eval用法注意點
1.介紹 一般情況,model.train()是在訓練的時候用到,model.eval()是在測試的時候用到 2.用法 如果模型中沒有類似於BN這樣的歸一化或者Dropout,model.train()和model.eval(