日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

细读Autoformer—空间计量分析

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 细读Autoformer—空间计量分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 摘要
  • 一. 細讀Autoformer
    • 1.1 論文摘要
    • 1.2 研究內容
    • 1.3 Autoformer模型框架
      • 1.3.1 Series Decomp Block
      • 1.3.2 Model inputs
      • 1.3.3 Encoder
      • 1.3.4 Decoder
      • 1.3.5 Auto-Correlation Mechanism
  • 二. 空間計量分析理論部分
    • 2.1 空間計量經濟學概述
    • 2.2 空間權重矩陣得設定與選擇
      • 2.2.1 空間權重矩陣的設定
      • 2.2.2 如何選擇合適的空間權重矩陣
      • 2.2.3 空間權重矩陣的標準化處理
    • 2.3 空間自相關檢驗
      • 2.3.1 全局莫蘭指數與局部莫蘭指數
    • 2.4 空間計量模型得設定與選擇
      • 2.4.1 空間計量模型
      • 2.4.2 如何去選擇合適的空間模型
  • 三. pytorch框架基礎
    • 3.1 nn.Model
    • 3.2 CONV2D 是如何計算的
    • 3.3 卷積層的具體簡單代碼實現
    • 3.4 查看VGG16 model 卷積神經網絡怎么去寫
    • 3.5 Pooling layer MaxPool2(最大池化的作用)
    • 3.6 非線性激活操作Non-Linear Activations
    • 3.7 線性層網絡
    • 3.8 神經網絡實戰小舉例
  • 畢設
  • 總結

摘要

本周一是重新細讀了Autoformer模型,對Autoformer的組成部分:序列分解模塊(decompostion block),自相關機制(Auto-Correlation mechanism),編碼和解碼器(Encoder和Decoder),其輸入輸出有著詳細理解。尤其是該論文的自相關機制如何去取代原來的自注意力機制,以及結合長時間預測的實際需要,說明了為什么需要這樣做與自相關機制的獨特優勢。

二是對空間計量分析相關的理論部分進行了較為系統的學習,從空間計量概述,到空間權重矩陣的介紹與設定,以及應該如何選擇;再到空間自相關檢驗莫蘭指數等的公式介紹;以及空間計量模型的介紹與設定,如何去選擇一個合適需求的計量模型。

三是對 pytorch框架基礎的簡單實踐,都是基礎內容。

一. 細讀Autoformer

1.1 論文摘要

本文研究時間序列的長期預測問題,先前基于Transformer的模型都是采用各種自我注意機制來發現長期依賴關系,但對于長期預測來說表現并不是很好,難以發現可靠的依賴關系。并卻由于Transformer都必須采用逐點稀疏版的self-attention以提高長序列效率,從而導致信息利用缺失。該文提出的Autoformer 設計為一種具有自相關機制的新型分解架構。該模型的大體框架是與Transformer相似的,但是Autoformer嘗試將分解序列預測序列都合在一個模型里面看,新添加了decomposition block序列分解模塊,與用Auto-Correlation去替代自注意力機制。

1.2 研究內容

本文主要探索長期時間序列預測問題:待預測的序列長度(O)遠遠大于輸入長度(I),即基于有限的信息預測更長遠的未來。對于長時間預測來說,模型的預測能力及計算效率有著很強的要求。然而Transformer在長序列的O(L2)O(L^2)O(L2)時間復雜模式下很難發現可靠的時序依賴;基于Transformer的改進模型主要著力于稀疏注意力特征圖 (QKTQK^TQKT) 來降低模型復雜度,而這些模型仍使用以節點為最小單位進行消息匯聚,這樣將造成信息的丟失,這成為了長時間時序預測的性能瓶頸。

為了突破之前的困境,Autoformer的模型將從序列分解出發,提出Auto-Correlation機制替代self-attention,其考慮sub-series(子序列)間的相似度能更好的捕捉到趨勢性,更多的關注序列,而不是節點。不僅要保證時間復雜度,也需要防止信息的丟失。

1.3 Autoformer模型框架

Autoformer主要由三部分組成:

● 序列分解模塊(decompostion block);

● 自相關機制(Auto-Correlation mechanism);

● 編碼和解碼器(Encoder和Decoder)。

編碼解碼架構同時由Auto-Correlation、Series Decomp、Feed Forward三個模塊組成每一層,同時使用殘差結構。因為模型的輸入會用的Series Decomp Block,因此先介紹這個模塊。

1.3.1 Series Decomp Block

Series Decomp Block使用傳統的decomposition分解操作可以將序列分解為trend趨勢項和seasonal季節項這兩個部分,關于這兩個部分的理解是一個可以反應短期的波動另一個則反應長期的季節性。

其中padding是為了保證序列長度不變,avgpool是移動平均。獲取趨勢項后,序列-趨勢=季節。

XtX_tXt?存儲的是每個滑動窗口的均值,而XsX_sXs?則是保留季節性的平滑序列。

1.3.2 Model inputs

編碼器的輸入為已知歷史III個時間點長度的序列,解碼器的輸入包括季節項 和周期項 ;一個是季節項 [Xdes∈R(I/2+O)?dX_{des}\in\R^{(I/2+O)*d}Xdes?R(I/2+O)?d],另一個是周期項[Xdet∈R(I/2+O)?dX_{det}\in\R^{(I/2+O)*d}Xdet?R(I/2+O)?d]。前 I/2I/2I/2 部分由 XenX_{en}Xen? 分解得到,后面的OOO長度序列分別由0與均值mean補齊。d為時序條數,O為未來時間長度。

公式表示如下:



上圖來源知乎機器學習社區,上圖清晰的反應了編碼器與解碼器的輸入。

1.3.3 Encoder

關注季節部分建模的編碼器,輸出的是過去季節性信息,它將被用做互信息,幫助解碼器調整預測結果。只保留平滑的seasonal part, 每一層的處理公式如下:

假設我們有 N 個編碼器層。 第 l 個編碼器層的整體方程總結為:

1.3.4 Decoder

假設我們有M個解碼層,第l個解碼層 的內部細節如下;

解碼器包括兩個部分:

● 上路是對seasonal季節項成分使用堆疊自相關機制;

● 對trend-cyclical周期項成分使用累加操作。


對于季節項,自相關機制利用序列的周期性質,聚合不同周期中具有相似過程的子序列;對于趨勢項,使用權重累積的方式,逐步從預測的隱變量中提取出趨勢信息。。其中, [XenNX_{en}^NXenN?] 是encoder中的潛在變量,第l個decoder layer的方程可以看作Xdel=Decoder(Xdel?1),XenN)X_{de}^l=Decoder(X_{de}^{l-1}),X_{en}^N)Xdel?=Decoder(Xdel?1?),XenN?)

模型最終的輸出結果為:

1.3.5 Auto-Correlation Mechanism


自相關機制模塊關鍵是如何高效計算自相關系數:通過計算序列自相關系數,發現周期依賴項(Period-based dependencies),然后再平移時間做相似子序列的聚合(Time delay aggregation)。

如上圖所示,Q,K,V和Transformer一樣通過映射輸入得到,首先注意到對Q和K分別執行快速傅里葉變換操作 (FFT),K還執行了共軛操作,公式如下(基于Wiener–Khinchin theorem ):


τττ 是從1取到L,然后分別算出前K個最大的TOPK,取為K個 τ1,.....τkτ_1,.....τ_kτ1?,.....τk?做周期長度。

當使用FFT高效求解出τττ111L?1L-1L?1 的所有 RXX(T)R_{XX}(T)RXX?(T) 后,然后本文將只取出最大的 topktop ktopkRXX(T)R_{XX}(T)RXX?(T),并且對取出的 kkkRXX(T)R_{XX}(T)RXX?(T)執行softmaxsoftmaxsoftmax 操作轉換為概率,最后將 kkk個概率與對應的進行 ROLL()ROLL()ROLL)操作之后的VVV 相乘后相加得到最后的結果,如下所示:

其中ROLL()ROLL()ROLL操作是將VVV 按相同相位移動(前面得部分移動到后面對齊),具體圖解如下:

二. 空間計量分析理論部分

2.1 空間計量經濟學概述

所謂空間數據,就是在原來得橫截面或者面板數據上,加上橫截面單位的位置信息(或者相互距離)。研究如何處理空間數據的計量經濟學分支,稱為“空間計量經濟學”。

傳統的計量只是研究了個體的自變量對個體的因變量的影響,而空間計量在傳統計量的基礎上,進一步研究個體的自變量對其他個體的因變量的影響。因此空間計量經濟學最大的特色在于充分考慮橫截面單位(地理區域)之間的空間依賴性

空間相關性,也稱空間依賴性,是指不同區域的事物和現象之間在空間上的互相依賴、互相制約、互相影響和互相作用,是事物和現象本身固有的空間經濟屬性,是地理空間現象和空間過程的本質屬性。

空間依賴可以定義為觀測值及區位之間的依賴性。當相鄰區域特征變量的高值或低值在空間上呈現集聚傾向時為正的空間自相關,反之,當相鄰區域特征變量取值與本區域變量取值高低相反時則為負的空間自相關。

為什么會存在空間相關性!

原因1:觀測數據地理位置鄰近
原因2:截面層個體的相互競爭與合作
原因3: 模仿行為
原因4:溢出效應
原因5:測量誤差

2.2 空間權重矩陣得設定與選擇

如何將經濟變量的空間效應納入回歸方程中,這便需要根據某種標準建立空間權重矩陣。

2.2.1 空間權重矩陣的設定

之前也學習了三種空間權重矩陣,還有一個綜合距離,以及它們應該如何去獲取與創建。下面再簡單復習一下:

  • 鄰近權重矩陣

  • 地理距離權重矩陣

  • 經濟距離權重矩陣

一般的經濟指標是應用人均GDP,再按如下的公式去計算經濟距離矩陣:

對于如何創建經濟距離權重矩陣,在之前的文章中有相關介紹。

  • 綜合距離矩陣


由于選取的距離形式不同,對于空間相似度的度量也會造成不同的結果。所以需要根據不同的需求,對距離進行加權處理。但具體怎么做還不是很清楚?

2.2.2 如何選擇合適的空間權重矩陣

盡管二進制的空間鄰近權值矩陣并非適用于所有的空間計量經濟模型,但是,處于某些情況下的實用性,在構建空間計量模型時的首選就是從二進制的鄰近矩陣開始的。

一般是先從空間鄰近的最基本二進制矩陣開始,逐步選擇確定空間權值。

關于各種權值矩陣的選擇,沒有現成的理論根據,一般可考慮空間計量模型對各種空間權值矩陣的適用程度,檢驗估計結果對權值矩陣的敏感性,最終的依據實際上就是結果的客觀性和科學性。

2.2.3 空間權重矩陣的標準化處理

下面說明一下需要標準化的原因,以及處理的公式:


空間權重矩陣標準化的優缺點:

具體執行過程在Stata軟件分析中使用代碼可輕松實現這一操作。

2.3 空間自相關檢驗

在確定好空間權重矩陣之后,我們需要對判斷數據做是否存在空間自相關性。

“空間自相關”可以理解為位置相近的區域具有相似的變量取值。如果高值與高值集聚在一起,低值與低值集聚在一起,則為“正空間自相關”;反之,如果高值與低值相鄰,則為“負空間自相關”;如果高值與低值完全隨機地分布,則不存在空間自相關。

目前常用來考察數據空間自相關的指標為莫蘭指數I和吉爾里指數C,其中莫蘭指數是最常用的。

2.3.1 全局莫蘭指數與局部莫蘭指數


莫蘭指數I如果接近于0,則說明該空間分布是隨機的,不存在空間自相關。

它們的具體實現,之前也有demo做了執行代碼,結果展示,這里是再次理清它們的概念與判斷。

2.4 空間計量模型得設定與選擇

2.4.1 空間計量模型

再次理解一下空間計量模型表示與含義:

1. SAR

在空間自回歸模型(空間滯后模型)中,被解釋變量間存在較強的空間依賴性,進而鄰地被解釋變量會通過空間傳導機制影響到本地的被解釋變量。(比如技術擴散)

2.SEM


3.SDM

一般的空間計量模型:

2.4.2 如何去選擇合適的空間模型

對一般性空間計量模型進行拉格朗日乘數檢驗**(LM檢驗**)、穩健的拉格朗日乘數檢驗(RLM檢驗)和似然比檢驗(LR檢驗),根據檢驗結果來選擇合適的模型。

對于空間截面數據:

對于空間面板模型:

具體過程可參考空間計量領域經典論文:如【中國東部沿海五大城市創新效率,影響因素及空間溢出效應】

三. pytorch框架基礎

3.1 nn.Model

神經網絡的基本骨架-nn.Module

import torch from torch import nnclass Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()## 調用父類初始化函數def forward(self,input):output = input+1 # 最簡單的自定義return output ## 自定義輸出y=Tudui() # 實例化類 x = torch.tensor(1.1) # 注意: Tensor是class,tensor是function,將數據類型轉換為Tensor output = y(x) print(output) # tensor(2.1000)

3.2 CONV2D 是如何計算的

詳細計算過程可見:torch.nn.functional.conv卷積模塊詳解模塊

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor

functional.conv2d函數的使用

import torch import torch.nn.functional as F# 輸入:5x5矩陣 input = torch.tensor([[1, 2, 0, 3, 1],[0, 1, 2, 3, 1],[1, 2, 1, 0, 0],[5, 2, 3, 1, 1],[2, 1, 0, 1, 1]]) # 卷積核3x3矩陣 kernel = torch.tensor([[1, 2, 1],[0, 1, 0],[2, 1, 0]])# 尺寸變換,要對應conv2d input的要求(minibatch=1,channel=1,h,w) input = torch.reshape(input, (1, 1, 5, 5)) kernel = torch.reshape(kernel, (1, 1, 3, 3))# stride:每次(在哪個方向)移動幾步 output = F.conv2d(input, kernel, stride=1) print(output)output1 = F.conv2d(input, kernel, stride=2) print(output1)output2 = F.conv2d(input, kernel, stride=1, padding=1) # padding=1是一般默認為全零填充一圈 print(output2)# output # tensor([[[[10, 12, 12], # [18, 16, 16], # [13, 9, 3]]]])# tensor([[[[10, 12], # [13, 3]]]])# tensor([[[[ 1, 3, 4, 10, 8], # [ 5, 10, 12, 12, 6], # [ 7, 18, 16, 16, 8], # [11, 13, 9, 3, 4], # [14, 13, 9, 7, 4]]]])

3.3 卷積層的具體簡單代碼實現

GitHub上可視化卷積過程 卷積層動圖理解(藍色input,綠色output,深色kernel)。
dilation:設置了的話就是空洞卷積(可見上面鏈接中的可視化)。

#CLASS torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None) # 卷積層的具體代碼實現 # 先理解參數: # in_channels (int) – 輸入圖像中的通道數 # # out_channels (int) – 卷積產生的通道數 # # kernel_size (int 或元組) – 卷積核的大小(3代表3*3,或者(12) # # stride (int 或元組,可選) – 卷積的步幅。默認值:1 # # padding(int、元組或 str,可選) – 填充添加到輸入的所有四個邊。默認值:0 # # padding_mode (字符串, 可選) – , , 或 .違約:'zeros''reflect''replicate''circular''zeros' # # dilation(int或元組,可選)——核元素之間的間距。默認值:1 # # groups(int,可選) – 從輸入通道到輸出通道的阻塞連接數。默認值:1 # # bais(bool,可選) – 如果 ,向輸出添加一個可學習的偏差。默認:TrueTrueimport torch import torchvision from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(),download=True) dataloader = DataLoader(dataset=dataset, batch_size=64, shuffle=True, drop_last=False)class test(nn.Module):def __init__(self):super(test, self).__init__()self.conv1 = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0) ## 注意這里必須配置正確nn.Conv2d()def forward(self, x):x = self.conv1(x)return xwriter = SummaryWriter("../log1")test1 = test() step = 0 for data in dataloader:imgs, t = dataoutput = test1(imgs)print(imgs.shape)# torch.size([64,3,32,32]) ([B,C,H,W])print(output.shape)# torch.Size([64, 6, 30, 30])writer.add_images("input", imgs, step)# 由于圖片只能以三個通道顯示,因此要把6個channel改成3個# torch.size([64,6,30,30])->[???,3,30,30]# 注意這個 batch_size不知道寫多少的時候就寫-1,它會自動計算output = torch.reshape(output, (-1, 3, 30, 30))## 需要轉換shape(如上)writer.add_images("output", output, step)step = step + 1 writer.close()## 查看VGG16 model 卷積神經網絡怎么去寫

3.4 查看VGG16 model 卷積神經網絡怎么去寫

如下圖一個經典案例:

可見其input是 3通道,224224;然而其卷積之后是(224224*64),可知是維持了圖片的尺寸,定是padding 進行了填充,所以我們可以將 【上個案例中卷積操作:nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)】
那么本圖中可知:(in_channels=3,out_channels=64,…)

由上面公式可推導出padding 等參數。

3.5 Pooling layer MaxPool2(最大池化的作用)

上官網查看具體的知識:Maxpooling

參數有:
kernel_size – 窗口的大小,以達到最大值

stride – 移動窗戶的步幅。默認值為kernel_size

padding– 要在兩側添加的隱式零填充

dilation– 控制窗口中元素步幅的參數(空洞卷積)

return_indices – if 將返回最大指數和輸出。對torch.nn.MaxUnpool2d稍后有用True

ceil_mode – 當為 True 時,將使用ceil而不是floor來計算輸出形狀(ceil向上取整,floor向下取整)

import torch import torchvision from torch import nn from torch.nn import MaxPool2d from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(),download=True) dataloader = DataLoader(dataset=dataset, batch_size=64, shuffle=True, drop_last=False)# #輸入:5x5矩陣 # input=torch.tensor([[1,2,0,3,1], # [0,1,2,3,1], # [1,2,1,0,0], # [5,2,3,1,1], # [2,1,0,1,1]],dtype=torch.float32) #dtype:將數據類型更改為浮點數 # ## 由于方法規定,必須轉換形狀 # input=torch.reshape(input,(-1,1,5,5)) # print(input.shape)class Test(nn.Module):def __init__(self):super(Test, self).__init__()self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)self.maxpool2 = MaxPool2d(kernel_size=3,ceil_mode=False)def forward(self,input):output1 = self.maxpool1(input)output2 = self.maxpool2(input)# return output1return output1,output2 test = Test() # 與之前的input 對應輸出 # output = test(input) # print(output) # 輸出結果 兩種情況 # (tensor([[[[2., 3.], # [5., 1.]]]]), tensor([[[[2.]]]])) writer = SummaryWriter("../log1") step= 0for data in dataloader:imgs,targets = datawriter.add_images("input",imgs,step)# 注意,最大池化不會改變channel(input是3通道,output也是3通道)output1,output2 = test(imgs)writer.add_images("output1",output1,step)writer.add_images("output2",output2,step)step=step+1writer.close()

輸出池化之后的結果圖片:

最大池化的作用:在保留原有數據特征的情況下 減小數據量。

3.6 非線性激活操作Non-Linear Activations

看官方文檔:官方非線性激活文檔

import torchvision from torch import nn from torch.nn import ReLU, Sigmoid from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(),download=True) dataloader = DataLoader(dataset=dataset, batch_size=64, shuffle=True, drop_last=False)class test(nn.Module):def __init__(self):super(test, self).__init__()# inplace:是否將 input 替換成output (一般默認為False,不會取代原來的input)self.relu1 = ReLU(inplace=False)self.sigmoid1 = Sigmoid()def forward(self, input):output = self.relu1(input)output = self.sigmoid1(output)return outputtest1 = test()writer = SummaryWriter("../log1") step = 0 # 每一個循環是一個batch=64,drop_last為False是不舍棄不足的 for data in dataloader:imgs, t = datawriter.add_images("input", imgs, step)output = test1(imgs)writer.add_images("output", output, step)step = step + 1writer.close()

經過ReLU與Sigmoid非線性激活的操作后:

非線性激活的作用是:提升模型的泛化能力

3.7 線性層網絡

正則化的官方文檔:BATCHNORM2D

查看官網線性層的文檔: Linear Layers

torch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None)

  • in_features – 每個輸入樣本的大小

  • out_features – 每個輸出樣本的大小

  • bias – If set to False, the layer will not learn an additive bias. Default: True

  • 下面是經典的VGG16 model :


    可見圖上后兩層是由(1?1?40961*1*40961?1?4096)–線性層->(1?1?10001*1*10001?1?1000),那這里是如何實現的?

    線性層的簡單實現:

    import torch import torchvision from torch import nn from torch.nn import Linear from torch.utils.data import DataLoaderdataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(),download=True) # 這里不droplast=True 后面會報錯,因為linear1的定義是 196608,而最后一組圖片不夠64張, 最后的大小也不足 196608 dataloader = DataLoader(dataset, batch_size=64, drop_last=True)class test(nn.Module):def __init__(self):super(test, self).__init__()self.linear1 = Linear(196608, 10) ## 線性層(輸入 feature,輸出 feature)def forward(self, input):output = self.linear1(input)return outputtest1 = test() for data in dataloader:imgs, t = dataprint(imgs.shape)# 將圖片線性化output = torch.reshape(imgs, (1, 1, 1, -1))# flatten也可以用#output=torch.flatten(imgs)print(output.shape)output = test1(output) # 經過linear層之后變成10print(output.shape)# torch.Size([64, 3, 32, 32]) #torch.Size([1, 1, 1, 196608]) # torch.Size([1, 1, 1, 10])

    3.8 神經網絡實戰小舉例

    我們應用CIFAR10數據集做一個十分簡單的分類,根據圖片的內容識別屬于哪一個類即可。

    CIFAR10模型結果如下:

    import torch from torch import nnclass test(nn.Module):def __init__(self):super(test, self).__init__()#因為size_in和size_out都是32,經過計算得出padding=2,stride=1self.conv1=nn.Conv2d(3,32,5,padding=2,stride=1)self.pool1=nn.MaxPool2d(2)#尺寸不變,和上面一樣self.conv2=nn.Conv2d(32,32,5,stride=1,padding=2)self.pool2=nn.MaxPool2d(2)# 尺寸不變,和上面一樣self.conv3=nn.Conv2d(32,64,5,stride=1,padding=2)self.pool3 = nn.MaxPool2d(2)self.flatten=nn.Flatten()#in_feature:64*4*4,out_feature:64self.linear1=nn.Linear(1024,64)self.linear2=nn.Linear(64,10)def forward(self,x):x=self.conv1(x)x = self.pool1(x)x = self.conv2(x)x = self.pool2(x)x = self.conv3(x)x = self.pool3(x)x=self.flatten(x)x=self.linear1(x)x=self.linear2(x)return x test1=test() #對網絡結構進行檢驗 input=torch.ones((64,3,32,32)) output=test1(input) print(output.shape)output: #torch.Size([64, 10])

    用nn.Sequential將代碼變得更簡潔:

    class test(nn.Module):def __init__(self):super(test, self).__init__()self.model1=nn.Sequential(nn.Conv2d(3, 32, 5, padding=2, stride=1),nn.MaxPool2d(2),nn.Conv2d(32, 32, 5, stride=1, padding=2),nn.MaxPool2d(2),nn.Conv2d(32, 64, 5, stride=1, padding=2),nn.MaxPool2d(2),nn.Flatten(),nn.Linear(1024, 64),nn.Linear(64, 10))def forward(self,x):x=self.model1(x)return x

    畢設

    學弟初稿已交,項目正在搭建,保持聯系。

    總結

    一是:對于Transformer類模型應用于時序任務,主要分為網絡模型的修改以及應用領域兩個角度:

    • 網絡的修改:主要圍繞著位置編碼、注意力機制以及模型層級設計進行展開;

    • 應用領域:主要圍繞著時序預測、時序分類以及異常值檢測進行展開。

    具體的關于Transformer類模型應用在時序預測文獻可詳見:Transformer應用于時序任務的綜述

    二是:對于空間計量分析,需要重新考量解釋變量與被解釋變量,如何建立合適的面板數據,合適的權重矩陣等,以及之間應該如何去建立空間計量模型,如何優化生態環境與經濟環境的相關關系。

    三是: 抓緊學習模型框架代碼,從最基礎的模型與利用現有數據集,到搭建自己的模型與利用自己的時序數據去做一些預測實現是近期的任務。

    總結

    以上是生活随笔為你收集整理的细读Autoformer—空间计量分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本特黄特色aaa大片免费 | 和漂亮岳做爰3中文字幕 | 久久久久久久久久网 | 午夜精品一区二区三区在线播放 | 国产欧美精品一区二区三区app | 第四色成人网 | 国产三级黄色 | 午夜精品福利一区二区 | a天堂在线视频 | 午夜婷婷色 | 久久久久久亚洲 | 国产欧美一区二区三区视频在线观看 | 国产精品久久久久久久久免费桃花 | 欧美xxxxxxxxx | 成人国产片 | 欧美视频在线免费 | 精品福利一区二区三区 | 成年人性视频 | 国产又粗又猛又爽又黄的网站 | 国产永久毛片 | 91视频在线视频 | 欧美三级电影在线观看 | 国产成人精品亚洲 | 午夜久久久久久久久久 | 亚洲电影一区二区三区 | 色99视频 | 在线国产小视频 | 中文字幕一区二区三区精华液 | 懂色中文一区二区在线播放 | 高贵麻麻被调教成玩物 | 免费成人av在线播放 | 日韩av免费在线播放 | 欧美激情首页 | 日本欧美久久久 | 男人天堂视频在线 | 男女做爰猛烈刺激 | 国产67194| 国产日韩欧美精品一区二区 | 大学生三级中国dvd 日韩欧美一区二区区 | 神秘马戏团在线观看免费高清中文 | 亚洲成a人在线观看 | 欧美国产综合视频 | 日本韩国欧美一区二区 | 91国产免费观看 | 久久久久久久伊人 | 欧洲一区二区在线 | 亚洲一区 在线播放 | 人操人操| 成人理论视频 | 亚洲第一国产 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 国产精品极品白嫩 | 无码国产色欲xxxx视频 | 搡老熟女老女人一区二区 | xxx性欧美| 中文字幕视频网站 | 女女同性女同一区二区三区九色 | 欧美激情国产精品免费 | 欧美一区二区三区四 | 91av国产视频| 一节黄色片 | 国产老女人精品毛片久久 | 极品少妇一区二区三区 | 96国产在线 | 国产又粗又长又黄的视频 | 免费人成又黄又爽又色 | 国产女大学生av | 手机成人在线 | 日本a级一区 | 中日韩中文字幕 | 韩国中文字幕 | 精品乱子伦 | 日韩和欧美一区二区 | 激情久久中文字幕 | 亚洲精品天堂在线 | 天天撸在线视频 | 国产香蕉在线视频 | 亚洲偷拍一区 | 精品黄色 | 久久精品日韩无码 | 人妻洗澡被强公日日澡 | 成 人 黄 色 片 在线播放 | 韩国主播青草55部完整 | 国产精品av在线播放 | 18+视频在线观看 | 特黄特色大片免费播放器使用方法 | 日韩激情av | 91大奶| 午夜影院免费 | 欧美xxx性 | 久久国内| 精品一区二区三区无码按摩 | 日韩有码第一页 | 韩日午夜在线资源一区二区 | 欧美aaa大片 | 91麻豆精品一二三区在线 | 性欧美ⅹxxxx极品护士 | 欧美tickle狂笑裸体vk | 在线香蕉视频 |