pytorch工具——使用pytorch构建一个神经网络

news2024/11/23 4:44:52

目录

  • 构建模型
  • 模型中的可训练参数
  • 假设输入尺寸为32*32
  • 损失函数
  • 反向传播
  • 更新网络参数

构建模型

import torch
import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        #定义第一层卷积层,输入维度=1,输出维度=6,卷积核大小3*3
        self.conv1=nn.Conv2d(1,6,3)
        self.conv2=nn.Conv2d(6,16,3)
        self.fc1=nn.Linear(16*6*6,120)
        self.fc2=nn.Linear(120,84)
        self.fc3=nn.Linear(84,10)
        
    def forward(self,x):
        #注意:任意卷积层后面要加激活层,池化层
        x=F.max_pool2d(F.relu(self.conv1(x),(2,2)))
        x=F.max_pool2d(F.relu(self.conv2(x),2))
        x=x.view(-1,self.num_flat_features(x))
        x=F.relu(self.fc1(x))
        x=F.relu(self.fc2(x))
        x=self.fc3(x)
        return x
    
    def num_flat_features(self,x):
        size=x.size()[1:]
        num_features=1
        for s in size:
            num_features*=s
        return num_features
    
net=Net()
print(net)

在这里插入图片描述

模型中的可训练参数

params=list(net.parameters())
print(len(params))
print(params[0].size()) #conv1的参数

在这里插入图片描述

假设输入尺寸为32*32

input=torch.randn(1,1,32,32) #个数,通道数,长,宽
out=net(input)
print(out)
print(out.size())

在这里插入图片描述
注意
在这里插入图片描述

损失函数

在这里插入图片描述

target=torch.randn(10)
target=target.view(1,-1)
criterion=nn.MSELoss()
loss=criterion(out,target)
print(loss)

在这里插入图片描述

print(loss.grad_fn)
print(loss.grad_fn.next_functions[0][0]) #上一层的grad_fn
print(loss.grad_fn.next_functions[0][0].next_functions[0][0]) #上上一层的grad_fn

在这里插入图片描述

反向传播

在这里插入图片描述

#首先要执行梯度清零的操作
net.zero_grad()

print('conv1.bisa.grad before backward')
print(net.conv1.bias.grad)

#实现一次反向传播
loss.backward()

print('conv1.bisa.grad after backward')
print(net.conv1.bias.grad)

在这里插入图片描述

更新网络参数

在这里插入图片描述

#导入优化器包
import torch.optim as optim
#构建优化器
optimizer=optim.SGD(net.parameters(),lr=0.01)
#优化器梯度清零
optimizer.zero_grad()
#进行网络计算并计算损失值
output=net(input)
loss=criterion(output,target)
#执行反向传播
loss.backward()
#更新参数
optimizer.step()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/779466.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配置NFS服务

环境 环境 ubuntu 10.4 vm 7.1 终端 ifconfig 得到 ubuntu资料 INET ADDR 192.168.0.4 BCAST 192.168.0.255 MASK 255.255.255.0 操作前先关闭防火墙 关闭防火墙: 命令:sudo ufw disable 打开防火墙 命令:sudo ufw enable 配置过程 一 安…

G--爬山---2023河南萌新联赛第(二)场:河南工业大学

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 示例1 输入 3 230 100 200 300 输出 192 示例2 输入 3 900 150 150 125 输出 -1 解析&#xff1a; 二分。 #include<bits/stdc.h> using namespace std; typedef long long ll…

单独在文件中打开allure生成的index.html报告时却显示为loading

【问题描述】&#xff1a;单独在文件中打开allure生成的index.html报告时显示为loading&#xff0c;如下图&#xff1a; 【问题定位】&#xff1a;其实在allure-report下index.html文件是不能直接打开的&#xff0c;出现页面都是loading的情况&#xff0c;这是因为直接allure报…

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 ![6 基本介绍 1.MATLAB实现TCN-BiGRU时间卷积双向门控循…

RT-Thread qemu mps2-an385 bsp 移植制作 :系统启动篇

前言 前面准备了 RT-Thread qemu mps2-an385 bsp 制作相关的环境与相关文件&#xff0c;本篇开始讲解 bsp 如何适配到 RT-Thread CPU 部分已经适配好了&#xff0c;也就是通过 使能 ARCH_ARM_CORTEX_M3 &#xff0c;来使能 rt-thread/libcpu/arm/cortex-m3&#xff0c;这部分不…

使用docker进行MYSQL主从复制(一主两从)

目录 概述主从介绍 主从作用 主从作用有&#xff1a; 主从形式有&#xff1a; 配置步骤 主要配置 1>创建三个进程 2>修改配置文件 3>主机配置 4>从机配置 5>将文件修改后&#xff0c;复制到容器里面 6>进入主机进行配置 6.1>创建用户 6.2>…

从0到1完成UI自动化测试框架搭建之Pytest

上篇文章中&#xff0c;我们学会了如何使用UI Automator2atx编写简单的Android自动化脚本。 但是有个问题&#xff0c;大家可以思考下&#xff0c;光用自动化脚本让它自己动起来&#xff0c;是不是缺了点什么&#xff1f; 我们写测试用例的时候&#xff0c;是不是经常写&…

【C++】string的深入学习与模拟实现

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

Python 模块 ddt 数据驱动测试

简介 ddt 提供了一种方便的方法来实现数据驱动测试&#xff08;Data-Driven Testing&#xff09;。数据驱动测试是一种测试方法&#xff0c;通过将测试数据与测试逻辑分开&#xff0c;可以使用不同的数据集来运行相同的测试用例。这样可以提高测试的灵活性和可维护性&#xff0…

SQL SERVER ANALYSIS SERVICES决策树、聚类、关联规则挖掘分析电商购物网站的用户行为数据...

全文链接&#xff1a;http://tecdat.cn/?p32118 假如你有一个购物类的网站&#xff0c;那么你如何给你的客户来推荐产品呢&#xff1f;&#xff08;点击文末“阅读原文”获取完整文档、数据&#xff09; 相关视频 这个功能在很多电商类网站都有&#xff0c;那么&#xff0c;通…

Flink CEP (一)原理及概念

目录 1.Flink CEP 原理 2.Flink API开发 2.1 模式 pattern 2.2 模式 pattern属性 2.3 模式间的关系 1.Flink CEP 原理 Flink CEP内部是用NFA&#xff08;非确定有限自动机&#xff09;来实现的&#xff0c;由点和边组成的一个状态图&#xff0c;以一个初始状态作为起点&am…

Unity进阶-消息框架的理论知识与实际操作学习笔记

文章目录 Unity进阶-消息框架的理论知识与实际操作学习笔记 Unity进阶-消息框架的理论知识与实际操作学习笔记 笔记来源课程&#xff1a;https://study.163.com/course/courseMain.htm?courseId1212756805&_trace_c_p_k2_8c8d7393c43b400d89ae94ab037586fc 这种框架其实…

实现锂电池形状的数据可视化css+js

1.效果图 2.需求根据后端返回数据改变里面的高度 HTML&#xff1a; <div class"dianchichi"><div class"limian" id"divElementId"></div></div> css: .dianchichi {width: 84px;height: 146px;display: flex;justify-…

Two Days wpf 分享 分页组件

迟来的wpf分享。 目录 一、序言 二、前期准备 三、前端界面 四、后台代码部分 1、先定义些变量后面使用 2、先是按钮事件代码。 首页按钮 上一页按钮 下一页按钮 末尾按钮 画每页显示等数据 每页显示多少条 判断是否为数字的事件 分页数字的点击触发事件 跳转到…

Docker安装Nexus并配置Maven私服

1 准备工作 1 服务器已安装docker, docker各命令无报错 2 通过dockerhub查看nexus的版本信息&#xff0c;此次使用的镜像为&#xff1a;sonatype/nexus3&#xff0c;可以看到latest版本更前的的是3.58.0&#xff0c;我们这次就使用这个版本的nexus3. 2 开始安装 # 下载镜像 do…

springcloudAlibaba之springboot如何加载nacos配置文件

配置文件想必大家都很熟悉&#xff0c;无论什么架构 都离不开配置&#xff0c;虽然spring boot已经大大简化了配置&#xff0c;但如果服务很多 环境也好几个&#xff0c;管理配置起来还是很麻烦&#xff0c;并且每次改完配置都需要重启服务&#xff0c;nacos config出现就解决了…

【JavaEE】Servlet常用的API

目录 前言 一、HttpServlet类 1、Servlet的生命周期 ✨tomcat的两个端口 ✨设置告诉浏览器使用那种字符集解析响应 ✨Java中Unicode和utf8字符集的使用 二、HttpServletRequest类 1、获取请求的信息 2、 前端给后端传递数据的三种方式 2.1、通过query string传递 2.2…

unity--2d( A*寻路)

目录 一.网格式寻路 1.创建一个A*寻路脚本&#xff0c;命名为"AStarPathfinding.cs"。 2.创建一个人物控制的脚本&#xff0c;命名为"CharacterController2D.cs"。 3.创建一个游戏管理脚本&#xff0c;命名为"GameManager.cs"。 二.UGUI下的…

《零基础入门学习Python》第063讲:论一只爬虫的自我修养11:Scrapy框架之初窥门径

上一节课我们好不容易装好了 Scrapy&#xff0c;今天我们就来学习如何用好它&#xff0c;有些同学可能会有些疑惑&#xff0c;既然我们懂得了Python编写爬虫的技巧&#xff0c;那要这个所谓的爬虫框架又有什么用呢&#xff1f;其实啊&#xff0c;你懂得Python写爬虫的代码&…

基于半监督算法的工业图像缺陷检测方法:MemSeg

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文&#xff1a;https://arxiv.org/ftp/arxiv/papers/2205/2205.00908.pdf 代码&#xff1a;https://github.com/TooTouch/MemSeg 主要贡献 提出了一个精心设计的异常模拟策略&#xff0c;用于模型的自监督…