八、卷積層

一、Conv2d

torch.nn.Conv2d官網文檔
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輸入的通道數,如果是彩色照片通道數(RGB)就是3(int) – Number of channels in the input image
out_channels輸出的通道數。若輸入為一張單通道的灰度圖像,輸出通道設置為2,則卷積層會提供2個卷積核(不一定完全相同)來分別對這個單通道圖像進行卷據操作,得到2張特征圖(int) – Number of channels produced by the convolution
kernel_size卷積核的大小,可以輸入一個整數或者一個元組(int or tuple) – Size of the convolving kernel
stride卷積的過程中移動的步數(int or tuple, optional) – Stride of the convolution. Default: 1
padding是否對原始圖像進行加邊操作(int, tuple or str, optional) – Padding added to all four sides of the input. Default: 0
dilation卷積核對應位置的距離,卷積的各個元素之間具有位置,并非全部相鄰(int or tuple, optional) – Spacing between kernel elements. Default: 1
groups分組卷積,一般都是設置為1,幾乎不用分組卷積(int, optional) – Number of blocked connections from input channels to output channels. Default: 1
bias偏置,常設置為True,也就是最后加個常數進行微調(bool, optional) – If True, adds a learnable bias to the output. Default: True
padding_mode在padding進行加邊操作的時候,需要加的內容是啥,一般都是zero 全填充0(string, optional) – ‘zeros’, ‘reflect’, ‘replicate’ or ‘circular’. Default: ‘zeros’

相關參數設置的演示,需要科學上網,懂得都懂

二、代碼演示

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset_test = torchvision.datasets.CIFAR10("CIFAR_10",train=False,transform=torchvision.transforms.ToTensor(),download=True)
#下載CIFAR10數據集到CIFAR_10文件夾下,train=False下載測試集,transform=torchvision.transforms.ToTensor()對數據進行轉換為tensor類型,download=True若沒有則下載數據集dataloader = DataLoader(dataset=dataset_test,batch_size=32)
#dataset=dataset_test指定裝載的數據集為dataset_test也就是CIAFAR10數據集中的測試集;batch_size=32每32張為一組class Beyond(nn.Module):def __init__(self):super(Beyond, self).__init__()self.conv2d_1 = Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=1)#in_channels=3輸入的3通道的彩色圖片#out_channels=6輸出為通過卷積之后得到的6通道的特征圖#kernel_size=3卷積核的大小為(3,3)#stride=1每一步進行(1,1)的移動#padding=1為了防止卷積之后的特征圖大小變化,這里向圖片的加了一圈邊def forward(self,input):result = self.conv2d_1(input)#對傳入的input數據進行卷積,卷積的配置在__init__中進行定義return resultbeyond = Beyond()
print(beyond)
"""
Beyond((conv2d_1): Conv2d(3, 6, kernel_size=(3, 3), stride=(1, 1))#也就是__init__中的定義
)
"""writer = SummaryWriter("y_log")#準備上傳至tensorboardi = 0
for data in dataloader:imgs,targets = dataoutput = beyond(imgs)#print(imgs.shape)#torch.Size([32, 3, 32, 32])#print(output.shape)#torch.Size([32, 6, 32, 32])#原始的數據為[32, 3, 32, 32],[batch,channel,H,W]#卷積之后變成了6通道,故需要轉換輸出數據output = torch.reshape(output,(-1,3,32,32))#這里的channel為3,而batch為-1表示:輸出就為3個,剩下的往batch上加,相當于多來幾組writer.add_images("input_CIFAR10",imgs,i)writer.add_images("output_CIFAR10",output,i)i = i + 1writer.close()

在Terminal下運行tensorboard --logdir=y_log --port=7870,logdir為打開事件文件的路徑,port為指定端口打開;
通過指定端口2312進行打開tensorboard,若不設置port參數,默認通過6006端口進行打開。
在這里插入圖片描述
點擊該鏈接或者復制鏈接到瀏覽器打開即可
input_CIFAR10為32張一組,而output_CIFAR10則不一樣
原因是在神經網絡模型構建的時候Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=1),輸入3通道,卷積操作之后輸出6通道
因為通道數的不同,無法上傳至tensorboard展示,故又通過torch.reshape(output,(-1,3,32,32))對output進行了轉換下格式,其中(-1,3,32,32),out_channels將強制轉換為3,而因為是-1故需要將多余的通過batch進行擴展,也就是增加每組圖片的數量,故在tensorboard中顯示的時候input和output顯示的每組數量不一樣。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377576.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377576.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377576.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTMl5結構元素:header

頁眉header 頁眉將是頁面加載的第一個元素&#xff0c;包含了站點的標題、logo、網站導航等。<header> <div class"container_16"> <div class"logo"> <h1><a href"index.html"><strong>Real</st…

【C++grammar】左值、右值和將亡值

目錄C03的左值和右值C11的左值和右值將亡值在C03中就有相關的概念 C03的左值和右值 通俗的理解&#xff1a; (1) 能放在等號左邊的是lvalue (2) 只能放在等號右邊的是rvalue (3) lvalue可以作為rvalue使用 對于第三點可以舉個例子&#xff1a; int x ; x 6; //x是左值&#…

scala字符串的拉鏈操作_在Scala中對字符串進行操作

scala字符串的拉鏈操作Scala字符串操作 (Scala strings operation) A string is a very important datatype in Scala. This is why there are a lot of operations that can be done on the string object. Since the regular operations like addition, subtraction is not v…

九、池化層

一、Pooling layers Pooling layers官網文檔 MaxPool最大池化層下采樣 MaxUnpool最大池化層上采樣 AvgPool最大池化層平均采樣 例如&#xff1a;池化核為(3,3)&#xff0c;輸入圖像為(5,5)&#xff0c;步長為1&#xff0c;不加邊 最大池化就是選出在池化核為單位圖像中的最大…

[分享]SharePoint移動設備解決方案

老外寫的一個PPT&#xff0c;講SharePoint在移動領域的應用&#xff0c;2012年最新的&#xff0c;有iPad喲。/Files/zhaojunqi/SharePoint2010andMobileDevices.pdf 轉載于:https://www.cnblogs.com/zhaojunqi/archive/2012/04/12/2444712.html

十、非線性激活函數

一、ReLU torch.nn.ReLU(inplaceFalse)官網提供的API 其中inplace表示是否在對原始數據進行替換 由函數圖可以看出&#xff0c;負數通過ReLU之后會變成0&#xff0c;正數則不發生變化 例如&#xff1a;input -1&#xff0c;若inplace True&#xff0c;表示對原始輸入數據進…

最短公共子序列_最短公共超序列

最短公共子序列Problem statement: 問題陳述&#xff1a; Given two strings, you have to find the shortest common super sequence between them and print the length of the super sequence. 給定兩個字符串&#xff0c;您必須找到它們之間最短的公共超級序列&#xff0c…

單調棧 leetcode整理(二)

目錄為什么單調棧的時間復雜度是O(n)496. 下一個更大元素 I方法一&#xff1a;暴力方法二:單調棧哈希表739. 每日溫度單調棧模版解優化503. 下一個更大元素 II單調棧循環遍歷為什么單調棧的時間復雜度是O(n) 盡管for 循環里面還有while 循環&#xff0c;但是里面的while最多執…

Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解決辦法)

ZZ&#xff1a;http://www.blogjava.net/anchor110/articles/355699.html1、在工程下新建lib文件夾&#xff0c;將需要的第三方包拷貝進來。2、將引用的第三方包&#xff0c;添加進工作的build path。3、&#xff08;關鍵的一步&#xff09;將lib設為源文件夾。如果不設置&…

QTP自傳之web常用對象

隨著科技的進步&#xff0c;“下載-安裝-運行”這經典的三步曲已離我們遠去。web應用的高速發展&#xff0c;改變了我們的思維和生活習慣&#xff0c;同時也使web方面的自動化測試越來越重要。今天&#xff0c;介紹一下我對web對象的識別&#xff0c;為以后的對象庫編程打下基礎…

leetcode中使用c++需要注意的點以及各類容器的初始化、常用成員函數

目錄1、傳引用2、vector使用初始化方法常用成員函數3、字符串string初始化方法常用成員函數4、哈希表 unordered_map初始化常用成員函數示例&#xff1a;計數器5、哈希集合 unordered_set初始化常用成員函數6、隊列 queue初始化成員函數7、棧stack初始化常用成員函數7、emplace…

Linq list 排序,Dictionary 排序

C# 對List成員排序的簡單方法 http://blog.csdn.net/wanzhuan2010/article/details/6205884 LINQ之路系列博客導航 http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html 用一句Linq把一個集合的屬性值根據條件改了&#xff0c;其他值不變 list去重 list.Where((x…

javascript Ajax 同步請求與異步請求的問題

先來看以下代碼&#xff1a; var flagtrue; var index0; $.ajax({url: "http://www.baidu.com/",success: function(data){flagfalse;} }); while(flag){index; } alert(index); 請問最后alert的index的結果是多少&#xff1f; 可能有人會說0唄。實際上卻沒那么簡單…

定義類的Python示例

The task to define a class in Python. 在Python中定義類的任務。 Here, we are defining a class named Number with an attribute num, initializing it with a value 123, then creating two objects N1 and N2 and finally, printing the objects memory locations and a…

十一、線性層

一、Linear Layers torch.nn.Linear(in_features, out_features, biasTrue, deviceNone, dtypeNone) 以VGG神經網絡為例&#xff0c;Linear Layers可以將特征圖的大小進行變換由(1,1,4096)轉換為(1,1,1000) 二、torch.nn.Linear實戰 將CIFAR-10數據集中的測試集二維圖像[6…

easyui plugin——etreegrid:CRUD Treegrid

昨天寫了一個koeasyui的同樣的實現&#xff0c;感覺寫的太亂&#xff0c;用起來十分麻煩&#xff0c;于是今天照著edatagrid&#xff0c;寫了一個etreegrid&#xff0c;這樣再用ko綁定就方便多了。 使用很簡單,$(tableId).etreegrid({idField:parentIdField:,treeField:,saveUr…

expr

expr在linux中 是一個功能非常強大的命令。通過學習做一個小小的總結。 1、計算字符串的長度。我們可以用awk中的length(s)進行計算。我們 也可以用echo中的echo ${#string}進行計算&#xff0c;當然也可以expr中的expr length $string 求出字符串的長度。舉 例[rootlocalhost …

leetcode 42. 接雨水 思考分析(暴力、動態規劃、雙指針、單調棧)

目錄題目思路暴力法動態規劃雙指針法單調棧題目 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖&#xff0c;計算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 輸入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 輸出&#xff1a;6 解釋&#xff1a;上面是由數組…

chdir函數_PHP chdir()函數與示例

chdir函數PHP chdir()函數 (PHP chdir() function) The full form of chdir is "Change Directory", the function chdir() is used to change the current working directory. chdir的完整形式是“更改目錄” &#xff0c; 功能chdir()用于更改當前工作目錄。 Synt…

十二、Sequential

一、Sequential介紹 torch.nn.Sequential(*args) 由官網給的Example可以大概了解到Sequential是將多層網絡進行便捷整合&#xff0c;方便可視化以及簡化網絡復雜性 二、復現網絡模型訓練CIFAR-10數據集 這里面有個Hidden units隱藏單元其實就是連個線性層 把隱藏層全部展開整…