原创 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(