SVD分解算法pytorch實(shí)現(xiàn)
本文將介紹SVD分解算法pytorch實(shí)現(xiàn),本文側(cè)重于代碼的實(shí)現(xiàn)。
首先,根據(jù)SVD原理,用python實(shí)現(xiàn)對應(yīng)的svd算法,代碼如下:
傳入的是一張圖片,包含3通道,那么對每一個(gè)通道都進(jìn)行SVD分解,從而可以得到對圖片3通道的分解。

接著介紹用pytorch實(shí)現(xiàn),首先需要定義S,V,D三個(gè)變量的參數(shù),為了保持一致,這里rank還是取15%的奇異值。
需要進(jìn)行一定的初始化,如果不進(jìn)行初始化,可能效果會很糟糕。損失函數(shù)的設(shè)計(jì),使用普通的MSE,MAE都可以。下面是簡單的用法。
用python實(shí)現(xiàn)的svd跟pytorch實(shí)現(xiàn)的svd用于圖片降噪,并進(jìn)行對比。

其中,svd_x表示python實(shí)現(xiàn);svd_nn_x表示pytorch實(shí)現(xiàn)。不一定誰好誰壞,關(guān)鍵取決于學(xué)習(xí)率,噪聲等因素。后期詳細(xì)的介紹可以參考視頻。
標(biāo)簽: