国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)

這篇具有很好參考價(jià)值的文章主要介紹了CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

作者:CSDN @ _養(yǎng)樂多_

背景

一維卷積的運(yùn)算過程網(wǎng)上很多人說不清楚,示意圖畫的也不清楚。因此,本人針對一維卷積的過程,繪制了計(jì)算過程,以我的知識量解釋一下 pytorch 中 Conv1d() 函數(shù)的機(jī)理。



Conv1d() 計(jì)算過程

假設(shè)我們現(xiàn)在有 n 行,3列數(shù)據(jù)。n 行可以是 n 個點(diǎn),也可以是 n 個樣本數(shù)據(jù)。3列可以視為3列特征,即特征向量。我們想要通過 MLP 將其從3列升維度為6維度,就需要用 Conv1d() 函數(shù)。具體過程就是讓每一行數(shù)據(jù)點(diǎn)乘一個卷積核,得到一個數(shù),6個卷積核就是6個數(shù),這樣就把一個點(diǎn)的3列變成了6列。然后逐行遍歷每個點(diǎn),就可以得到新的得分矩陣。

備注: 從6列變成12列,就點(diǎn)乘12個卷積核。從12列變成6列,就點(diǎn)乘6個卷積核。


Conv1d() 計(jì)算過程圖示

①、第1行數(shù)據(jù)參與卷積(這里的 a 是樣本數(shù)據(jù),W 是卷積核,f 是結(jié)果。)
CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)

②、第2行數(shù)據(jù)參與卷積

CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)

③、第n行數(shù)據(jù)參與卷積

CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)
Conv1d() 代碼舉例

我們以 PointNet 中分類的主干模型 (多層感知機(jī),MLP) 來說,Conv1d(64, 128, 1) 其實(shí)就是用 128 個 64 行 1 列的卷積核和前面 n 行 64 列的矩陣逐行點(diǎn)積,升維到 128 列。

class STNkd(nn.Module):
    def __init__(self, k=64):
        super(STNkd, self).__init__()
        self.conv1 = torch.nn.Conv1d(k, 64, 1)
        self.conv2 = torch.nn.Conv1d(64, 128, 1)
        self.conv3 = torch.nn.Conv1d(128, 1024, 1)
        self.fc1 = nn.Linear(1024, 512)
        self.fc2 = nn.Linear(512, 256)
        self.fc3 = nn.Linear(256, k*k)
        self.relu = nn.ReLU()

        self.bn1 = nn.BatchNorm1d(64)
        self.bn2 = nn.BatchNorm1d(128)
        self.bn3 = nn.BatchNorm1d(1024)
        self.bn4 = nn.BatchNorm1d(512)
        self.bn5 = nn.BatchNorm1d(256)

        self.k = k

    def forward(self, x):
        batchsize = x.size()[0]
        x = F.relu(self.bn1(self.conv1(x)))
        x = F.relu(self.bn2(self.conv2(x)))
        x = F.relu(self.bn3(self.conv3(x)))
        x = torch.max(x, 2, keepdim=True)[0]
        x = x.view(-1, 1024)

        x = F.relu(self.bn4(self.fc1(x)))
        x = F.relu(self.bn5(self.fc2(x)))
        x = self.fc3(x)

        iden = Variable(torch.from_numpy(np.eye(self.k).flatten().astype(np.float32))).view(1,self.k*self.k).repeat(batchsize,1)
        if x.is_cuda:
            iden = iden.cuda()
        x = x + iden
        x = x.view(-1, self.k, self.k)
        return x

Linear() 的原理

就是解 Y = X · A.T + b。其中的 A.T 是權(quán)重矩陣的轉(zhuǎn)置矩陣,b 為偏置矩陣。nn.Linear(1024, 512) 就是將 n 行 1024 列的 X 矩陣降維到 n 行 512 列的矩陣。只要 A.T 為 1024 行 512 列的矩陣,和 X 點(diǎn)乘,就可以得到 n 行 512 列的矩陣,達(dá)到降維的目的。
①、Linear() 計(jì)算 (忽略偏置矩陣)
CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)

Linear() 動圖

CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)


Conv1d() 和 Linear() 的區(qū)別

已經(jīng)有人比較了在相同輸入數(shù)據(jù)的條件下兩者之間的區(qū)別:(1)Linear() 比 conv1d() 的計(jì)算速度快;(2)Conv1d() 的精度比 Linear() 的高;(3)在反向傳播更新梯度的時(shí)候,數(shù)值有差異。
那么為什么這么設(shè)計(jì)呢?查了大量資料以后,我覺得這個答案最靠譜。當(dāng)你必須保留語義分割中的空間信息時(shí),使用卷積 Conv1d() 。當(dāng)你不需要做任何與空間信息相關(guān)的事情時(shí),比如在基本分類(mnist、貓狗分類器)中,使用線性層 Linear() 。

Conv1d Linear
先驗(yàn)知識
共享參數(shù)
運(yùn)行速度
空間信息
作用 特征工程 分類器

卷積核

以 PointNet 為例,將卷積核打印出來查看卷積核的形狀,請看本人的另一篇文章。鏈接如下,
https://blog.csdn.net/qq_35591253/article/details/127671790文章來源地址http://www.zghlxwxcb.cn/news/detail-455399.html

到了這里,關(guān)于CONV1D一維卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算過程(舉例:n行3列?n行6列)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • pytorch框架:conv1d、conv2d的輸入數(shù)據(jù)維度是什么樣的

    Conv1d 的輸入數(shù)據(jù)維度通常是一個三維張量,形狀為 (batch_size, in_channels, sequence_length),其中: batch_size 表示當(dāng)前輸入數(shù)據(jù)的批次大??; in_channels 表示當(dāng)前輸入數(shù)據(jù)的通道數(shù),對于文本分類任務(wù)通常為 1,對于圖像分類任務(wù)通常為 3(RGB)、1(灰度)等; sequence_length 表示當(dāng)前輸

    2024年01月16日
    瀏覽(23)
  • 基于FPGA的一維卷積神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)(1D-CNN、BNN的FPGA加速實(shí)現(xiàn))

    基于FPGA的一維卷積神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)(1D-CNN、BNN的FPGA加速實(shí)現(xiàn))

    本文介紹一種基于FPGA的1維卷積神經(jīng)網(wǎng)絡(luò)算法加速實(shí)現(xiàn)的方案,其中為了進(jìn)一步提升運(yùn)算速度,除了第一層卷積采用的是普通卷積運(yùn)算(CONV),其余卷積層和池化層采用的是二值化運(yùn)算,即二值化的卷積與池化。 運(yùn)算過程包含了卷積層、池化層、批標(biāo)準(zhǔn)化層、全局池化、二值

    2024年02月16日
    瀏覽(23)
  • 入門孿生網(wǎng)絡(luò)3-------使用一維卷積神經(jīng)網(wǎng)絡(luò)1DCNN與孿生網(wǎng)絡(luò)的組合模型來實(shí)現(xiàn)excel數(shù)據(jù)的分類

    入門孿生網(wǎng)絡(luò)3-------使用一維卷積神經(jīng)網(wǎng)絡(luò)1DCNN與孿生網(wǎng)絡(luò)的組合模型來實(shí)現(xiàn)excel數(shù)據(jù)的分類

    讀取數(shù)據(jù):使用NumPy加載數(shù)據(jù)文件(假設(shè)為\\\" data.csv \\\"),并將其分為訓(xùn)練集和測試集。 定義1D卷積神經(jīng)網(wǎng)絡(luò)模型:通過創(chuàng)建get_cnn_model()函數(shù)來定義1DCNN模型,該模型包括一系列卷積層和池化層,以及最后的全連接層輸出。這個模型將用于構(gòu)建孿生網(wǎng)絡(luò)模型的多個分支。 定義孿

    2024年02月09日
    瀏覽(19)
  • 在樹莓派上實(shí)現(xiàn)numpy的conv2d卷積神經(jīng)網(wǎng)絡(luò)做圖像分類,加載pytorch的模型參數(shù),推理mnist手寫數(shù)字識別,并使用多進(jìn)程加速

    在樹莓派上實(shí)現(xiàn)numpy的conv2d卷積神經(jīng)網(wǎng)絡(luò)做圖像分類,加載pytorch的模型參數(shù),推理mnist手寫數(shù)字識別,并使用多進(jìn)程加速

    這幾天又在玩樹莓派,先是搞了個物聯(lián)網(wǎng),又在嘗試在樹莓派上搞一些簡單的神經(jīng)網(wǎng)絡(luò),這次搞得是卷積識別mnist手寫數(shù)字識別 訓(xùn)練代碼在電腦上,cpu就能訓(xùn)練,很快的: 然后需要自己在dataset里導(dǎo)出一些圖片:我保存在了mnist_pi文件夾下,“_”后面的是標(biāo)簽,主要是在pc端導(dǎo)

    2024年02月07日
    瀏覽(33)
  • PyTorch-實(shí)現(xiàn)對表格類型數(shù)據(jù)的一維卷積(CNN1D)

    PyTorch-實(shí)現(xiàn)對表格類型數(shù)據(jù)的一維卷積(CNN1D)

    看到大家都私信要代碼,太多了發(fā)不過來,我把代碼放到github上了: github鏈接: https://github.com/JiaBinBin233/CNN1D 我的數(shù)據(jù)集是一個二分類的數(shù)據(jù)集,是一個12維的數(shù)據(jù)(第一列為標(biāo)簽列,其他的11列是屬性列) 首先看一下沒有經(jīng)過處理過的數(shù)據(jù) 輸出結(jié)果如下 原始數(shù)據(jù)是一個128行

    2024年02月11日
    瀏覽(23)
  • 神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)

    神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)

    全連接神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)模型,也被稱為多層感知機(jī)(MLP)。它由多個神經(jīng)元組成的層級結(jié)構(gòu),每個神經(jīng)元都與前一層的所有神經(jīng)元相連,它們之間的連接權(quán)重是可訓(xùn)練的。每個神經(jīng)元都計(jì)算輸入的加權(quán)和,并通過一個非線性激活函數(shù)進(jìn)行轉(zhuǎn)換,然后將結(jié)果傳遞到下一

    2024年02月10日
    瀏覽(25)
  • 神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)--卷積神經(jīng)網(wǎng)絡(luò)

    神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)--卷積神經(jīng)網(wǎng)絡(luò)

    本實(shí)驗(yàn)主要為了掌握深度學(xué)習(xí)的基本原理;能夠使用TensorFlow實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),完成圖像識別任務(wù)。 文章目錄 1. 實(shí)驗(yàn)?zāi)康?2. 實(shí)驗(yàn)內(nèi)容 3. 實(shí)驗(yàn)過程 題目一: 題目二: 實(shí)驗(yàn)小結(jié)討論題 ①掌握深度學(xué)習(xí)的基本原理; ②能夠使用TensorFlow實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),完成圖像識別任務(wù)。

    2024年02月06日
    瀏覽(20)
  • 卷積神經(jīng)網(wǎng)絡(luò)與前饋神經(jīng)網(wǎng)絡(luò)

    常見的人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 人工神經(jīng)網(wǎng)絡(luò)是一類由人工神經(jīng)元組成的網(wǎng)絡(luò),常見的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括: 前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network,F(xiàn)NN):最簡單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),由一個輸入層、一個輸出層和若干個隱藏層組成,信號只能從輸入層流向輸出層,不允許在網(wǎng)絡(luò)中形成回

    2023年04月26日
    瀏覽(20)
  • 卷積神經(jīng)網(wǎng)絡(luò) —— 圖像卷積

    卷積神經(jīng)網(wǎng)絡(luò) —— 圖像卷積

    卷積神經(jīng)網(wǎng)絡(luò)是最具代表性的深度學(xué)習(xí)算法之一,目前已經(jīng)被大范圍的應(yīng)用與計(jì)算機(jī)視覺等領(lǐng)域,并且取得了眾多突破性的進(jìn)展,在學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)之前,我們需要學(xué)習(xí)圖像卷積運(yùn)算。 圖像卷積運(yùn)算是一種圖像處理算法。通過它可以實(shí)現(xiàn)很多不同的效果。例如,模糊圖像中

    2024年02月07日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包