首页 > 其他分享 >2023.4.6学习记录

2023.4.6学习记录

时间:2023-04-06 18:47:36浏览次数:34  
标签:__ nn 记录 self torch 学习 2023.4 import output

p15神经网络_卷积层
import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
#准备测试集
dataset = torchvision.datasets.CIFAR10("dataset", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)

#声明一个土堆类,继承自nn.Moudle父类
class Tudui(nn.Module):

def __init__(self) -> None:#使用super调用了父类nn.Module中的__init__构造方法
super().__init__()
# in_channels:输入图像(矩阵形式)的通道数,out_channels输出图像的通道数,卷积核为3,无填充
self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)

def forward(self, x):#声明一个forward方法,该方法的功能是使输入的图片进行一次二维卷积,并返回卷积完成后的图片
x = self.conv1(x)
return x


tudui = Tudui()#实例化对象tudui
writer = SummaryWriter("p15logs")#创建日志
print(tudui) #输出实例化对象tudui中的内容(包含一次二维卷积)
step = 0 #日志步长标识符
for data in dataloader:#循环遍历整个测试集(batch_size = 64)
imgs, target = data#赋值图片,类别
output = tudui(imgs)#经过土堆神经网络之后的输出(神经网络中包含二维卷积层)
print(imgs.shape)#输出imgs的形状
print(output.shape)#输出 经卷积后的output
# torch.Size([64, 3, 32, 32])
writer.add_images("input", imgs, step)#展示日志
# torch.Size([64, 6, 30, 30])
# writer.add_images("output", output, step)
# torch.Size([64, 6, 30, 30])>>torch.Size([?, 3, 30, 30])
output = torch.reshape(output, (-1, 3, 30, 30))#重塑图片形状
writer.add_images("output", output, step)#展示日志
step = step + 1#日志步长+1
writer.close()


p16最大池化层的使用
#最大池化层的使用
import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
#准备测试数据集
dataset = torchvision.datasets.CIFAR10("dataset", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)


# 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
#
# )
# input = torch.reshape(input, (1, 1, 5, 5))
# tudui = Tudui()
# output = tudui(input)
# print(output)

class Tudui(nn.Module):#声明一个Tudui类继承自父类

def __init__(self) -> None:#使用super调用了父类nn.Module中的__init__构造方法
super().__init__()
# in_channels:输入图像(矩阵形式)的通道数,out_channels特征图
self.maxpool1 = MaxPool2d(kernel_size=3, ceil_mode=False)

def forward(self, input):#声明一个forward方法,该方法的功能是使输入的图片进行一次最大池化,并返回最大池化完成后的图片
output = self.maxpool1(input)
return output


tudui = Tudui()#实例化对象tudui
writer = SummaryWriter("p16logs")#创建日志

step = 0#日志步长标识符
for data in dataloader:#遍历测试集
imgs, target = data##赋值图片,类别
output = tudui(imgs)#经土堆神经网络之后的输出(神经网络包含最大池化层)
writer.add_images("imgs", imgs, step)#展示日志
writer.add_images("output", output, step)#展示日志
step = step + 1#步长+1
writer.close()
p17非线性激活
#p17非线性激活
import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
from torch.nn import ReLU
from torch.nn import Sigmoid


# input = torch.tensor([[1, -0.5],
# [-1, 3]])
# input = torch.reshape(input, (1, 1, 2, 2))
# tudui = Tudui()
# output = tudui(input)
# print(output)
#准备数据集
dataset = torchvision.datasets.CIFAR10("dataset", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)

class Tudui(nn.Module):#声明一个Tudui类继承自父类

def __init__(self) -> None:#使用super调用了父类nn.Module中的__init__构造方法
super().__init__()
# in_channels:输入图像(矩阵形式)的通道数,out_channels特征图
self.relu1 = ReLU()#relu层
self.sigmoid1 =Sigmoid()#sigmoid层


def forward(self, input):#声明一个forward方法,该方法的功能是使用sigmoid非线性激活函数
output = self.sigmoid1(input)
return output


tudui = Tudui()
writer = SummaryWriter("p17logs")

step = 0
for data in dataloader:
imgs, target = data
output = tudui(imgs)
writer.add_images("input", imgs, step)
writer.add_images("output", output, step)
step = step + 1
writer.close()

p18线性层及其他层介绍
import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
from torch.nn import ReLU
from torch.nn import Sigmoid
from torch.nn import Linear

dataset = torchvision.datasets.CIFAR10("dataset", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)


class Tudui(nn.Module):

def __init__(self) -> None:#使用super调用了父类nn.Module中的__init__构造方法
super().__init__()
# in_channels:输入图像(矩阵形式)的通道数,out_channels特征图
self.linera1 = Linear(196608, 10)

def forward(self, input):#声明一个forward方法,该方法的功能是使输入的图片进行一次线性层
output = self.linera1(input)
return output

tudui = Tudui()#实例化对象tudui

for data in dataloader:#循环遍历数据集
imgs, target = data#赋值图片,类别
print(imgs.shape)#输出图片形状
# output = torch.reshape(imgs, (1, 1, 1, -1))
output = torch.flatten(imgs)#将张量拉成一维的向量
print(output.shape)#输出被拉成一维的张量
output = tudui(output)#经土堆神经网络之后的输出(神经网络包含线性层)
print(output.shape)#输出经土堆神经网络操作后的形状
 
 



标签:__,nn,记录,self,torch,学习,2023.4,import,output
From: https://www.cnblogs.com/zxpython/p/17293753.html

相关文章

  • 二、linux学习笔记
    二、Linux学习笔记命令:命令本体command+选项,控制命令的行为细节[-options]+参数,控制命令的指向目标[parameter)]1、ls命令,作用是列出目录下的内容,语法如下:ls[-a-l-h][linux路径]ls-l-als-lals-al三种写法都是一样的,同时应用-l(竖向排列展示内容)和-a(列出所有文件夹,包含隐藏的)功......
  • 2023.4.5每日总结
    二进制存储packagepdf;importjava.io.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassout{publicbooleanin(Filefile)throwsException{Class.forName("com.mysql.jdbc.Driver");......
  • 2023.4.6每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • Python学习——Day1
      学习python与C语言相似,第一件事也是输出一个”HelloWorld"。  但是相比C语言,python的输出要简洁好多,他没有换行符\n也能自动换行,print()函数里字符串无论是使用单引号还是双引号结果都能正常输出且输出结果一样。  第二个就是注释,python则与C语言不同,这里用到......
  • 记录一次小程序中讨厌的拍照上传的优化
    背景工作中出现了一个业务,需要用户拍照并上传base64格式的图片内容供后台识别。项目并非从零开始,一通配置后跑了起来。自测了一会,下班时间到,开溜。就在回家路上,打开手机分享图片时傻眼了,相册里全是自测的时候拍摄的照片,感到不舒服,这个项目之前据说已经交付过,我觉得用户肯定和我......
  • Spring学习第一天
    学习Spring第一天Spring是什么 .spring是一个开源框架,为了解决企业应用的复杂性而创建的,在现在不止以用于企业在一些个人网站上使用了, .是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架    - 从大小与开销两方面而言Spring都是轻量级的   -通过控制反转(IoC)......
  • 学习一 ——HTML的基础标签
    HTML意为超文本标记语言。在HTML+CSS+JS的体系中主要构建网站内容展示。<meta>设置编码方式例如UTF-8;GBK等。<ul>表示无序列表,<ol>有序列表<p>表示段落,<u>表示下划线 <b>字体加粗<i>斜体<sub>下标 <sup>上标 <alt>表示HTML元素本身的物件无法被渲染时,就可以显示alt......
  • 20230406 英语学习进度慢
    我从2月中开始,一直在做精听的练习.但是,你关于精听的进度,你认为太慢了.你的听力加起来,不至5篇,这个量,我认为是严重不足地.正如大佬所言,20篇以上的精听&英转中的完全掌握,将会有英语的极大提升.一方面,精听的确需要大量的时间投入.但是,另外一方面,你的确时间投入需要加......
  • svn清理时提示:没有校验和记录,因此不能从原始内容仓库中安装
      1.进入官网https://www.sqlite.org/download.html2.找到sqlite-dll-win32-x86-3410200.zip下载  3.解压后复制sqlite3.exe到无法清理svn的那个路径地下的.svn文件夹 如果找不到.svn文件夹,勾选下方    4.在当前文件夹下运行cmd执行以下语句5.再之后就......
  • Vue3.0学习(一)------Vue简单介绍
    什么是Vue?官方原文:Vue是一款用于构建用户界面的JavaScript框架。它基于标准的HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。简单来说,Vue就是一个构建用户界面的前端框架Vue的两个核心功能声明式渲染Vue基于标准HTML扩展了一......