最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch 實(shí)現(xiàn)sobel算子的卷積操作詳解

 更新時(shí)間:2020年01月10日 17:13:21   作者:洪流之源  
今天小編就為大家分享一篇Pytorch 實(shí)現(xiàn)sobel算子的卷積操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

卷積在pytorch中有兩種實(shí)現(xiàn),一種是torch.nn.Conv2d(),一種是torch.nn.functional.conv2d(),這兩種方式本質(zhì)都是執(zhí)行卷積操作,對(duì)輸入的要求也是一樣的,首先需要輸入的是一個(gè)torch.autograd.Variable()的類型,大小是(batch,channel, H,W),其中batch表示輸入的一批數(shù)據(jù)的數(shù)目,channel表示輸入的通道數(shù)。

一般一張彩色的圖片是3,灰度圖片是1,而卷積網(wǎng)絡(luò)過(guò)程中的通道數(shù)比較大,會(huì)出現(xiàn)幾十到幾百的通道數(shù)。H和W表示輸入圖片的高度和寬度,比如一個(gè)batch是32張圖片,每張圖片是3通道,高和寬分別是50和100,那么輸入的大小就是(32,3,50,100)。

如下代碼是卷積執(zhí)行soble邊緣檢測(cè)算子的實(shí)現(xiàn):

import torch
import numpy as np
from torch import nn
from PIL import Image
from torch.autograd import Variable
import torch.nn.functional as F
 
 
def nn_conv2d(im):
  # 用nn.Conv2d定義卷積操作
  conv_op = nn.Conv2d(1, 1, 3, bias=False)
  # 定義sobel算子參數(shù)
  sobel_kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]], dtype='float32')
  # 將sobel算子轉(zhuǎn)換為適配卷積操作的卷積核
  sobel_kernel = sobel_kernel.reshape((1, 1, 3, 3))
  # 給卷積操作的卷積核賦值
  conv_op.weight.data = torch.from_numpy(sobel_kernel)
  # 對(duì)圖像進(jìn)行卷積操作
  edge_detect = conv_op(Variable(im))
  # 將輸出轉(zhuǎn)換為圖片格式
  edge_detect = edge_detect.squeeze().detach().numpy()
  return edge_detect
 
def functional_conv2d(im):
  sobel_kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]], dtype='float32') #
  sobel_kernel = sobel_kernel.reshape((1, 1, 3, 3))
  weight = Variable(torch.from_numpy(sobel_kernel))
  edge_detect = F.conv2d(Variable(im), weight)
  edge_detect = edge_detect.squeeze().detach().numpy()
  return edge_detect
 
def main():
  # 讀入一張圖片,并轉(zhuǎn)換為灰度圖
  im = Image.open('./cat.jpg').convert('L')
  # 將圖片數(shù)據(jù)轉(zhuǎn)換為矩陣
  im = np.array(im, dtype='float32')
  # 將圖片矩陣轉(zhuǎn)換為pytorch tensor,并適配卷積輸入的要求
  im = torch.from_numpy(im.reshape((1, 1, im.shape[0], im.shape[1])))
  # 邊緣檢測(cè)操作
  # edge_detect = nn_conv2d(im)
  edge_detect = functional_conv2d(im)
  # 將array數(shù)據(jù)轉(zhuǎn)換為image
  im = Image.fromarray(edge_detect)
  # image數(shù)據(jù)轉(zhuǎn)換為灰度模式
  im = im.convert('L')
  # 保存圖片
  im.save('edge.jpg', quality=95)
 
if __name__ == "__main__":
  main()

原圖片:cat.jpg

結(jié)果圖片:edge.jpg

以上這篇Pytorch 實(shí)現(xiàn)sobel算子的卷積操作詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • tkinter禁用(只讀)下拉列表Combobox問(wèn)題

    tkinter禁用(只讀)下拉列表Combobox問(wèn)題

    這篇文章主要介紹了tkinter禁用(只讀)下拉列表Combobox問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 使用Python項(xiàng)目生成所有依賴包的清單方式

    使用Python項(xiàng)目生成所有依賴包的清單方式

    這篇文章主要介紹了使用Python項(xiàng)目生成所有依賴包的清單方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python 計(jì)算積分圖和haar特征的實(shí)例代碼

    python 計(jì)算積分圖和haar特征的實(shí)例代碼

    今天小編就為大家分享一篇python 計(jì)算積分圖和haar特征的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python操作Excel插入刪除行的方法

    Python操作Excel插入刪除行的方法

    今天小編就為大家分享一篇Python操作Excel插入刪除行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 對(duì)python中類的繼承與方法重寫(xiě)介紹

    對(duì)python中類的繼承與方法重寫(xiě)介紹

    今天小編就為大家分享一篇對(duì)python中類的繼承與方法重寫(xiě)介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Pandas中DataFrame數(shù)據(jù)刪除詳情

    Pandas中DataFrame數(shù)據(jù)刪除詳情

    這篇文章主要以介紹的是Pandas中DataFrame的數(shù)據(jù)刪除的相關(guān)資料,主要使用drop、del方式,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • Python3 列表list合并的4種方法

    Python3 列表list合并的4種方法

    這篇文章主要介紹了Python3 列表list合并的4種方法,需要的朋友可以參考下
    2021-04-04
  • Python安裝Talib庫(kù)的詳細(xì)圖文教程

    Python安裝Talib庫(kù)的詳細(xì)圖文教程

    talib庫(kù)的安裝之路坑特別多,這是最常見(jiàn)的,下面這篇文章主要給大家介紹了關(guān)于Python安裝Talib庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 解析ROC曲線繪制(python+sklearn+多分類)

    解析ROC曲線繪制(python+sklearn+多分類)

    這篇文章主要介紹了解析ROC曲線繪制(python+sklearn+多分類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python 正則表達(dá)式 re.match/re.search/re.sub的使用解析

    Python 正則表達(dá)式 re.match/re.search/re.sub的使用解析

    今天小編就為大家分享一篇Python 正則表達(dá)式 re.match/re.search/re.sub的使用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07

最新評(píng)論

青州市| 富阳市| 赤城县| 黔西县| 昆明市| 淳化县| 津南区| 山阳县| 青海省| 赣州市| 葫芦岛市| 武隆县| 淮北市| 黎城县| 白水县| 安丘市| 乌鲁木齐县| 阜宁县| 龙泉市| 华容县| 德兴市| 桃园县| 印江| 巧家县| 汾阳市| 边坝县| 时尚| 高尔夫| 灌阳县| 库车县| 邮箱| 南陵县| 溆浦县| 广灵县| 浦北县| 正宁县| 斗六市| 白山市| 昌平区| 连平县| 海盐县|