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

22、PyTorch nn.Conv2d卷积网络使用教程

文章目录

  • 1. 卷积
  • 2. python 代码
  • 3. notes

1. 卷积

  • 输入A张量为:
    A = [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] \begin{equation} A=\begin{bmatrix} 0&1&2&3\\\\ 4&5&6&7\\\\ 8&9&10&11\\\\ 12&13&14&15 \end{bmatrix} \end{equation} A= 0481215913261014371115
  • 卷积核矩阵
    w e i g h t = [ 0 1 2 3 4 5 6 7 8 ] , b i a s = 10 \begin{equation} weight=\begin{bmatrix} 0&1&2\\\\ 3&4&5\\\\ 6&7&8 \end{bmatrix},bias = 10 \end{equation} weight= 036147258 ,bias=10
    在这里插入图片描述

2. python 代码

  • pytorch
import torch
import torch.nn as nn
import torch.nn.functional as F

torch.set_printoptions(precision=3, sci_mode=False)

if __name__ == "__main__":
    run_code = 0
    batch_size = 1
    in_channels = 1
    out_channels = 1
    kernel_size = 4
    input_h = 4
    input_w = 4
    input_total = input_h * input_w
    input_matrix = torch.arange(input_total).reshape(batch_size, in_channels, input_h, input_w).to(torch.float)
    my_conv2d = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, bias=True,
                          stride=1)
    print(f"my_conv2d={my_conv2d}")

    my_conv2d_weight = torch.arange(9).reshape((1, 1, 3, 3)).to(torch.float)
    my_conv2d_bias = torch.tensor([10.0])
    my_conv2d.weight = nn.Parameter(my_conv2d_weight)
    my_conv2d.bias = nn.Parameter(my_conv2d_bias)

    print(f"my_conv2d_weight=\n{my_conv2d_weight}")
    print(f"my_conv2d_bias=\n{my_conv2d_bias}")
    output_matrix = my_conv2d(input_matrix)
    print(f"input_matrix=\n{input_matrix}")
    print(f"output_matrix=\n{output_matrix}")
    output_matrix_F = F.conv2d(input=input_matrix, weight=my_conv2d_weight, bias=my_conv2d_bias)
    print(f"output_matrix_F=\n{output_matrix_F}")
  • 结果:
my_conv2d=Conv2d(1, 1, kernel_size=(4, 4), stride=(1, 1))
my_conv2d_weight=
tensor([[[[0., 1., 2.],
          [3., 4., 5.],
          [6., 7., 8.]]]])
my_conv2d_bias=
tensor([10.])
input_matrix=
tensor([[[[ 0.,  1.,  2.,  3.],
          [ 4.,  5.,  6.,  7.],
          [ 8.,  9., 10., 11.],
          [12., 13., 14., 15.]]]])
output_matrix=
tensor([[[[268., 304.],
          [412., 448.]]]], grad_fn=<ConvolutionBackward0>)
output_matrix_F=
tensor([[[[268., 304.],
          [412., 448.]]]])

3. notes

在这里插入图片描述


http://www.kler.cn/a/504002.html

相关文章:

  • 智能物流升级利器——SAIL-RK3576核心板AI边缘计算网关设计方案(一)
  • 【Spring Boot 应用开发】-04-01 自动配置-数据源-连接池
  • 通过Apache、Nginx限制直接访问public下的静态文件
  • 22、PyTorch nn.Conv2d卷积网络使用教程
  • 51单片机 和 STM32 的烧录方式和通信协议的区别
  • ansible 检查目录大小
  • 在Spring中如何发布一个事件?
  • 懒汉式单例模式
  • 当当网热销书籍数据采集与可视化分析
  • 松散比较(PHP)(小迪网络安全笔记~
  • MySQL数据库(SQL分类)
  • WSL报错libcudnn_cnn_infer.so.8
  • 基于Hiperwalk的量子行走Python编程
  • 基于celery的任务管理,本文主要是处理自己的算法,暴露API,管理任务并发,多线程
  • LeetCode 2657. Find the Prefix Common Array of Two Arrays
  • SCDN跟高防IP相比哪个更好
  • 计算机视觉算法实战——实时车辆检测和分类(主页有相关源码)
  • 大语言模型训练的基本步骤解析
  • llama.cpp 模型可视化工具 GGUF Visualizer
  • 提高互联网Web安全性:避免越权漏洞的技术方案
  • 在Visual Studio中编译.c文件和.cpp文件主要有哪些不同
  • 第三篇 Avaya IP Office的架构及其服务组成
  • Mysql--运维篇--安全性(数据库访问控制,最小权限原则,表空间加密,TLS加密,证书签发,SQL注入及防范等)
  • centos 8 中安装Docker
  • [读书日志]8051软核处理器设计实战(基于FPGA)第七篇:8051软核处理器的测试(verilog+C)
  • 多商家入驻商城系统架构与功能分析