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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第八讲,nn模型

發(fā)布時間:2024/3/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第八讲,nn模型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一,torch.nn組成和屬性

nn模塊組成

nn.Module的屬性

nn.Module的特點和注意點:

  • 一個module可以包含多個子module
  • 一個module相當(dāng)于一個運算,必須實現(xiàn)forward()函數(shù)
  • 每個module都有8個字典管理他的屬性

二,模型的容器,裝有子module

nn.Sequential:按順序包裝多個網(wǎng)絡(luò)層

  • 順序性
  • 自帶forward()–》自動通過for循環(huán)依次執(zhí)行前向傳播運算
import torch import torchvision import torch.nn as nn from collections import OrderedDictclass LeNetSequential(nn.Module):def __init__(self, classes):super(LeNetSequential, self).__init__()self.features = nn.Sequential(nn.Conv2d(3, 6, 5),nn.ReLU(),nn.MaxPool2d(kernel_size=2, stride=2),nn.Conv2d(6, 16, 5),nn.ReLU(),nn.MaxPool2d(kernel_size=2, stride=2),)self.classifier = nn.Sequential(nn.Linear(16*5*5, 120),nn.ReLU(),nn.Linear(120, 84),nn.ReLU(),nn.Linear(84, classes),)def forward(self, x):x = self.features(x)x = x.view(x.size()[0], -1)x = self.classifier(x)return xclass LeNetSequentialOrderDict(nn.Module):def __init__(self, classes):super(LeNetSequentialOrderDict, self).__init__()self.features = nn.Sequential(OrderedDict({ #通過有序字典對網(wǎng)絡(luò)中的操作進行命名,這樣可以很容易的索引到'conv1': nn.Conv2d(3, 6, 5),'relu1': nn.ReLU(inplace=True),'pool1': nn.MaxPool2d(kernel_size=2, stride=2),'conv2': nn.Conv2d(6, 16, 5),'relu2': nn.ReLU(inplace=True),'pool2': nn.MaxPool2d(kernel_size=2, stride=2),}))self.classifier = nn.Sequential(OrderedDict({'fc1': nn.Linear(16*5*5, 120),'relu3': nn.ReLU(),'fc2': nn.Linear(120, 84),'relu4': nn.ReLU(inplace=True),'fc3': nn.Linear(84, classes),}))def forward(self, x):x = self.features(x)x = x.view(x.size()[0], -1)x = self.classifier(x)return xnet = LeNetSequential(classes=2) net = LeNetSequentialOrderDict(classes=2)fake_img = torch.randn((4, 3, 32, 32), dtype=torch.float32)#4張3通道大小為32*32output = net(fake_img)print(net) print(output)

nn.ModuleList:像Python的list一樣包裝多個網(wǎng)絡(luò)層

  • append():在ModuleList后面添加網(wǎng)絡(luò)層
  • extend():拼接兩個ModuleList
  • insert():指定在ModuleList中位置插入網(wǎng)絡(luò)層
import torch import torchvision import torch.nn as nn from collections import OrderedDictclass ModuleList(nn.Module):def __init__(self):super(ModuleList, self).__init__()self.linears = nn.ModuleList([nn.Linear(10, 10) for i in range(20)])#20個全連接層,每一個是10個神經(jīng)元def forward(self, x):for i, linear in enumerate(self.linears):x = linear(x)return xnet = ModuleList()print(net)fake_data = torch.ones((10, 10))output = net(fake_data)print(output)

nn.ModuleDict:像Python的dict一樣包裝多個網(wǎng)絡(luò)層

  • clear():清空ModuleDict
  • items():返回可迭代的鍵值對
  • keys():返回鍵
  • values():返回值
  • pop():返回一對鍵值,并從字典中刪除
import torch import torchvision import torch.nn as nn from collections import OrderedDictclass ModuleDict(nn.Module):def __init__(self):super(ModuleDict, self).__init__()self.choices = nn.ModuleDict({'conv': nn.Conv2d(10, 10, 3),'pool': nn.MaxPool2d(3)})self.activations = nn.ModuleDict({'relu': nn.ReLU(),'prelu': nn.PReLU()})def forward(self, x, choice, act):x = self.choices[choice](x)x = self.activations[act](x)return xnet = ModuleDict()fake_img = torch.randn((4, 10, 32, 32))output = net(fake_img, 'conv', 'relu')print(output)

三,常用nn網(wǎng)絡(luò)層

nn.Conv2d():二維卷積

  • in_channels:輸入通道數(shù)
  • out_channels:輸出通道數(shù)
  • kernel_size:卷積核尺寸
  • stride:步長
  • padding:填充個數(shù)
  • dilation:空洞卷積大小
  • groups:分組卷積設(shè)置
  • bias:偏置

nn.ConvTranspose2d:轉(zhuǎn)置卷積,實現(xiàn)上采樣

  • in_channels:輸入通道數(shù)
  • out_channels:輸出通道數(shù)
  • kernel_size:卷積核尺寸
  • stride:步長
  • padding:填充個數(shù)
  • dilation:空洞卷積大小
  • groups:分組卷積設(shè)置
  • bias:偏置

nn.MaxPool2d:二維最大池化

  • kernel_size:池化核尺寸
  • stride:步長
  • padding:填充個數(shù)
  • dilation:池化核間隔大小
  • ceil_mode:尺寸向上取整
  • return_indices:記錄池化像素索引(取出最大值時當(dāng)時最大的值所處的位置索引)

nn.AvgPool2d:二維平均池化

  • kernel_size:池化核尺寸
  • stride:步長
  • padding:填充個數(shù)
  • dilation:池化核間隔大小
  • ceil_mode:尺寸向上取整
  • count_include_pad:填充值用于計算
  • divisor_override:除法因子–》當(dāng)設(shè)置了除法因子之后,全部權(quán)值加和之后不除以權(quán)值個數(shù)而除以因子

nn.MaxUnpool2d:反池化—》對二維圖像進行最大池化上采樣

  • kernel_size:池化核尺寸
  • stride:步長
  • padding:填充個數(shù)
  • 需將正常池化以后記錄的索引值傳入反池化函數(shù)

nn.Linear:線性層—》對一維信號進行線性組合

  • in_features:輸入節(jié)點數(shù)
  • out_features:輸出節(jié)點數(shù)
  • bias:是否需要偏置

總結(jié)

以上是生活随笔為你收集整理的第八讲,nn模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂网中文在线 | 国产一级特黄视频 | 欧美www视频| 尤物精品视频在线观看 | 又爽又黄又无遮挡 | 色屁屁www | 性少妇videosexfre | 亚洲熟女综合一区二区三区 | 国产欧美日韩专区 | 国产免费成人av | 日韩精品第1页 | 国产资源久久 | 狠狠入 | av导航在线 | 亚洲人在线视频 | 视频在线看 | 最近免费中文字幕 | 欧美日韩亚洲免费 | 久久国产精品久久久久久 | 欧美老肥熟 | 黄色片在线免费观看视频 | 成人午夜又粗又硬又大 | 中文字幕一二三 | 韩国三级中文字幕hd浴缸戏 | 四虎影视免费在线观看 | 在线欧美 | 日韩一三区 | 国产一级视频免费观看 | 国产伊人自拍 | 日本一品道 | 成年人小视频在线观看 | 91精品国产自产91精品 | 久久久九九九九 | 狠狠干伊人| 97视频入口 | 午夜视频在线观看一区二区 | 久久无码精品丰满人妻 | 五月天开心网 | 欧美日韩亚洲第一 | 亚洲最大毛片 | 国产精品视频全国免费观看 | 国产粉嫩一区二区三区 | 黄色不卡 | 久久艹av| 久久久久久久艹 | 日本a级一区 | 嫩草影院永久入口 | 在线观看黄网 | 在线观看特色大片免费网站 | 中文字幕乱码无码人妻系列蜜桃 | 欧美日韩免费高清一区色橹橹 | www天堂在线| 久久77 | 九九九亚洲| 5d肉蒲团之性战奶水 | 亚洲熟女乱色一区二区三区久久久 | 黄色avav | 日韩欧美aaa | 黄色网页免费看 | 制服丝袜成人动漫 | 在线观看羞羞漫画 | 日韩久久精品电影 | 国产亚洲精品久久久久久久久动漫 | 国产成人无码精品久久久性色 | 三级黄毛片 | 欧美一级片免费观看 | 污漫网站 | 国内成人av| 在线免费亚洲 | 草逼免费视频 | 97人人精品 | jizz欧洲| 老牛影视av一区二区在线观看 | 亚洲九九夜夜 | 一区精品视频在线观看 | 亚洲欧美日本在线观看 | 外国电影免费观看高清完整版 | 无码人妻精品一区二区三区99不卡 | av字幕在线 | 日本一区视频在线 | 朝鲜美女黑毛bbw | 69色视频 | 亚洲欧美一区二区三区不卡 | 亚洲激情视频网站 | 日韩欧美高清视频 | 精品久久久久久久久久久久久久久久 | 欧美做受xxxxxⅹ性视频 | 中文在线8资源库 | av88av| av私库| 91视频看片 | 久久国产精品久久 | 国产乱淫av免费 | 中文字幕第页 | 色哟哟无码精品一区二区三区 | av不卡高清| 婷婷久久久 | 婷婷五月色综合 | 17c国产精品一区二区 |