当前位置: 首页 > news >正文

郴州公司做网站wordpress添加分类图片尺寸

郴州公司做网站,wordpress添加分类图片尺寸,如何做网站meta设置,品牌建设年神经网络 卷积操作 例子: 输入:二维图像 [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] 卷积核: [1,2,1] [0,1,0] [2,1,0] 然后需要将输入图像和卷积核转化为4维张量 为什么转为4维张量?因为卷积操作需要输入图像…
  1. 神经网络 卷积操作

    例子:

    输入:二维图像

    [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]

    卷积核:

    [1,2,1]

    [0,1,0]

    [2,1,0]

    然后需要将输入图像和卷积核转化为4维张量

    为什么转为4维张量?因为卷积操作需要输入图像和卷积核的维度相同,所以需要将其转化为相同的维度。

    (插入 channel:彩色图像就是rgb为3 灰度图像就是1)

    下面进行二维卷积操作:

    1. 步长为1 就是每次移动一步

      stride = 1

    2. 步长为2 就是每次移动两步

    3. 填充为1

      padding = 1

      达到填充后的输出和输入的大小相同 都是5x5

      为了充分学习边缘信息 提取边缘特征

    4. 上述输出

      在这里插入图片描述

    code:

    import torch
    import torch.nn.functional as F#原始输入图像
    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]])
    #卷积核
    kernel = torch.tensor([[1,2,1],[0,1,0],[2,1,0]])
    #将输入图像和卷积核转化为4维张量 reshape(batch_size, channel, height, width)
    #为什么转为4维张量?因为卷积操作需要输入图像和卷积核的维度相同,所以需要将其转化为相同的维度
    input = torch.reshape(input,(1,1,5,5))
    kernel = torch.reshape(kernel,(1,1,3,3))#二维卷积
    #stride=1 表示步长为1
    output = F.conv2d(input,kernel,stride=1)
    print(output)#步长为2
    output = F.conv2d(input,kernel,stride=2)
    print(output)#填充为1
    #填充后输出的大小和输入相同
    #就是卷积的时候在原输入的周围补0 上下左右补0
    #padding 也是为了充分利用边缘信息 提取边缘特征
    output = F.conv2d(input,kernel,stride=1,padding=1)
    print(output)
    
  2. 神经网络 卷积层

    作用:提取特征

    流程:

    1. 选取数据集

      这里我用的是自定义的数据集 还是放一下目录结构

      数据集在images下 注意DataLoader加载数据集需要的目录结构是datasets/classes 需要注意下

      在这里插入图片描述

    2. 数据预处理

      主要是使用transforms工具箱

      这里我先统一大小

      转成Tensor格式

      标准化

      #数据预处理
      transform = transforms.Compose([transforms.Resize((224,224)),transforms.ToTensor(),transforms.Normalize(mean = [0.5,0.5,0.5],std = [0.5,0.5,0.5])
      ])
      
    3. 加载数据集

      ImageFloder()的时候应用transform

      batch_size是指一次取出多少图片来处理(2的倍数)

      folder_path = '../images'
      dataset = ImageFolder(folder_path,transform=transform)
      dataloader = DataLoader(dataset,batch_size=1)
      
    4. 构建卷积层

      这里的in_channels为3(彩色图片)out_channels为6(说明应该是应用了两个卷积核去卷积操作 会产生两个输出 所以最后的output的数量是input的两倍)kernel_size=3 卷积核设置的3x3的

      然后前向传播 输出结果

      class convNet(nn.Module):def __init__(self):#调用父类nn.Module的构造函数super(convNet,self).__init__()self.conv1 = Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=0)def forward(self,x):x = self.conv1(x)return xconvnet = convNet()
      
    5. 使用tensorboard观察结果

      日志存在logs文件夹下

      writer = SummaryWriter('../logs')
      ...
      ...
      ...
      writer.close()
      
       writer.add_images('input',img,cnt)writer.add_images('output',output,cnt)
      
    6. 开始遍历处理加载的图片(见后面完整代码中)

      output = torch.reshape(output,(-1,3,222,222))
      

      这一个操作是因为output的通道数是6 运行会报错 这里就给他强制性转换一下shape

      输入通道数变成几不知道 就填写-1

      (222,222)这个是怎么得到的?

      print(output.shape)得到的

    7. tensorboard结果:

      tensorboard --logdir=../logs
      

      (我数据集中就放了一张图片哈哈哈哈哈 大家能够认出是谁吗)

      在这里插入图片描述

      (笑死我了 这里是变形的小苏苏)

    8. 完整代码

      code:

      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
      from torchvision.datasets import ImageFolder
      from torchvision import transforms#数据预处理
      transform = transforms.Compose([transforms.Resize((224,224)),transforms.ToTensor(),transforms.Normalize(mean = [0.5,0.5,0.5],std = [0.5,0.5,0.5])
      ])#加载数据集
      folder_path = '../images'
      dataset = ImageFolder(folder_path,transform=transform)
      dataloader = DataLoader(dataset,batch_size=1)class convNet(nn.Module):def __init__(self):#调用父类nn.Module的构造函数super(convNet,self).__init__()self.conv1 = Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=0)def forward(self,x):x = self.conv1(x)return xconvnet = convNet()writer = SummaryWriter('../logs')cnt = 0
      for data in dataloader:img,label = dataprint(img.shape)output = convnet(img)print(output.shape)writer.add_images('input',img,cnt)output = torch.reshape(output,(-1,3,222,222))writer.add_images('output',output,cnt)cnt = cnt + 1writer.close()
      
http://www.dtcms.com/a/555428.html

相关文章:

  • 网站长尾词怎么做初中文化如何提升学历
  • 怎么自己做网站游戏网站ico添加
  • C++类和对象(上):面向对象编程的基石
  • 建设行业门户网站安卓开发工具idea手机版
  • 如何处理消费过程中的重复消息
  • 游戏网站开发名字兰州官网seo技巧
  • 网站平台项目交接需要什么阿里有做网站
  • 最小二乘问题详解7:正则化最小二乘
  • 网站表格布局网站seo优化软件
  • 网站图标怎么做的做网站页面大小多大
  • 淘城汇网站谁做的一个简单的个人网站
  • background样式问题踩坑
  • 淮安做网站公司深圳做网站知名排行
  • 有没有专门做航拍婚礼网站建设网站课程设计摘要
  • 浙江省国有建设用地出让网站建设网站一般用什么字体
  • 沧州高端网站制作用html制作百度首页
  • 手机网站开发是什么前端seo怎么优化
  • 咖啡网站设计模板化妆品网站设计思路
  • Servlet 数据库访问
  • 无锡自助建站软件logo设计免费在线制作
  • 怎么建设淘宝联盟的网站个人怎么免费注册公司流程
  • 怎样看一个网站是哪个公司做的wordpress 判断语言
  • 莱芜网站建设开发公司wordpress 热门头条
  • 湖北疾控发布最新通告做十来个网站优化
  • 凡科网做音乐网站微网站开发平台 开源
  • 做魔方网站用什么背景最好网站 乱码
  • FlashAttention whl本地快速安装
  • 泰安集团网站建设方案东莞图文短视频推广
  • 官方网站拼多多商洛做网站多少钱
  • 【断路器深入认识加选型】