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

目录

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

构建模型

import torch
import torch.nn as nn
import torch.nn.functional as Fclass Net(nn.Module):def __init__(self):super(Net,self).__init__()#定义第一层卷积层,输入维度=1,输出维度=6,卷积核大小3*3self.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 xdef num_flat_features(self,x):size=x.size()[1:]num_features=1for s in size:num_features*=sreturn num_featuresnet=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.mzph.cn/news/6341.shtml

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

相关文章

【C++杂货铺】运算符重载

目录 前言一、运算符重载二、赋值运算符重载三、完善日期类3.1 重载关系运算符3.2 重载、3.3 重载-、-3.4 重载、--3.5 重载<<、>> 四、const成员五、取地址及const取地址操作符重载 前言 本文将以日期类为基础&#xff0c;去探寻运算符重载的特性与使用方法&…

Burp Suite---渗透测试工具

文章目录 Burp SuiteBurp Suite入门设置代理HTTP的代理 Proxy&#xff08;代理&#xff09; Burp Suite 是一款集成化的渗透测试工具&#xff0c;包含了很多功能&#xff0c;可以帮助我们高效地完成对Web应用程序的渗透测试和攻击。 Burp Suite由Java语言编写&#xff0c;基于…

【Docker】Docker的数据管理

目录 一、Docker 的数据管理1.1数据卷1.2 数据卷容器1.3端口映射1.4容器互联&#xff08;使用centos镜像&#xff09; 二、Docker镜像的创建2.1基于现有镜像创建2.2&#xff0e;基于本地模板创建2.3 基于Dockerfile 创建联合文件系统&#xff08;UnionFS&#xff09;镜像加载原…

【Vue3】Vue3核心内容(上)

&#x1f380;个人主页&#xff1a;努力学习前端知识的小羊 感谢你们的支持&#xff1a;收藏&#x1f384; 点赞&#x1f36c; 加关注&#x1fa90; 文章目录 常用的Composition APIsetup函数ref函数reactive函数vue3中的响应式原理vue2的响应式Vue3的响应式 reactive对比Refse…

基于FPGA的视频接口之PAL(NTSC)编码

简介 PAL又称帕尔制&#xff0c;是咱们中国早期视频所是使用的视频广播模式&#xff0c;基本上现在的电视都兼容这种视频模式&#xff0c;使用的接口也是传统的BNC插头&#xff0c;有兴趣的伙伴可以看看电视屁股后面是不是有一个单独的BNC接口&#xff0c;百分之98就是支持PAL格…

Folx Pro 5 最好用的Mac磁力链接BT种子下载工具

除了迅雷&#xff0c;还有哪个支持磁力链接下载&#xff1f;Mac电脑如何下载磁力链接&#xff1f;经常有小伙伴问老宅。今天&#xff0c;老宅给大家推荐Folx Pro For Mac&#xff0c;Mac系统超好用的磁力下载工具。 Folx是一款功能强大且易于使用的Mac下载管理器&#xff0c;并…

java slf4j,Commons Logging与log4j,Logback,tinylog和异常配合使用

maven 官网仓库地址&#xff1a;maven repo 历史背景 1、日志是什么&#xff1f; 日志是每天记录我们程序情况的。日志管理的目的是为了记录日志。 2、为什么会有日志&#xff1f; 1、问题追溯&#xff0c;通过日志文件的记录可以使我们运维或者程序员快速查找问题根源。 2、…

基于Matlab和V-Rep进行智能机器人手臂拾取和放置(附上完整源码+图片)

文章目录 项目说明完整源码图片下载 项目说明 智能机器人手臂在工业自动化领域中扮演着重要的角色。为了实现机器人手臂的自动化拾取和放置任务&#xff0c;我们可以利用Matlab和V-Rep进行仿真和控制。 Matlab是一种强大的数学计算软件&#xff0c;它提供了丰富的工具箱和函数…

R语言 BPNN 反向传播神经网络

##BPNN-neuronet set.seed(123) folds <- createFolds(y=data$Groups,k=10) 建一个放auc值的空向量 auc<-as.numeric() Errorrate<-as.numeric() accuracy<-as.numeric() sensitivity<-as.numeric() specificity<-as.numeric() roc <- vector("li…

如何在Vue中进行表单验证?

在Vue中进行表单验证有多种方式&#xff0c;以下是一种常用的方法&#xff1a; 定义表单数据和验证规则&#xff1a;在Vue实例的data选项中&#xff0c;定义表单数据和验证规则。例如&#xff1a; data() {return {formData: {username: ,password: },validationRules: {user…

第 109 场 LeetCode 双周赛

A 检查数组是否是好的 暴力: 排序后遍历判断 class Solution { public:bool isGood(vector<int> &nums) {sort(nums.begin(), nums.end());for (int i 0; i < nums.size() - 1; i)if (nums[i] ! i 1)return false;return nums.back() nums.size() - 1;} };B 将…

【转载】elasticsearch 倒排索引原理

由于整型数字 integer 可以被高效压缩的特质&#xff0c;integer 是最适合放在 postings list 作为文档的唯一标识的&#xff0c;ES 会对这些存入的文档进行处理&#xff0c;转化成一个唯一的整型 id&#xff08;这个id是document的id&#xff09;。 再说下这个 id 的范围&…

钉钉和MySQL接口打通对接实战

钉钉和MySQL接口打通对接实战 对接系统钉钉 钉钉&#xff08;DingTalk&#xff09;是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台&#xff0c;提供PC版&#xff0c;Web版和手机版&#xff0c;有考勤打卡、签到、审批、日志、公告、钉盘、钉邮等强大功能。 目标系统…

【测试开发】Python+Django实现接口测试工具

PythonDjango接口自动化 引言&#xff1a; 最近被几个公司实习生整自闭了&#xff0c;没有基础&#xff0c;想学自动化又不知道怎么去学&#xff0c;没有方向没有头绪&#xff0c;说白了其实就是学习过程中没有成就感&#xff0c;所以学不下去。出于各种花里胡哨的原因&#xf…

目标检测——SSD模型介绍

目录 SSD网络结构backboneextra部分loc和clsPriorBox层先验框的生成方法loc的预测结果 模型训练正负样本标记损失函数困难样本挖掘 模型预测 SSD网络结构 backbone extra部分 loc和cls PriorBox层先验框的生成方法 loc的预测结果 模型训练 正负样本标记 损失函数 困难样本挖掘…

4 | 百度贴吧

文章目录 爬取百度贴吧首页1. 简介2. 前提条件3. 理解脚本4. 使用脚本爬取百度贴吧首页5. 结论6. 爬虫脚本爬取百度贴吧首页 1. 简介 百度贴吧是一个流行的中文在线社区,用户可以在各种话题下发表帖子并参与讨论。本教程将指导您使用Python来爬取百度贴吧首页,并将帖子信息…

原神盲盒风格:AI绘画Stable Diffusion原神人物公仔实操:核心tag+lora模型汇总

本教程收集于&#xff1a;AIGC从入门到精通教程汇总 在这篇文章中&#xff0c;我们将深入探讨原神盲盒的艺术风格&#xff0c;以及如何运用AI绘画技术&#xff08;Stable Diffusion&#xff09;——来创造原神角色公仔。我们将通过实践操作让读者更好地理解这种技术&#xff0…

【Java基础教程】(十八)包及访问权限篇 · 下:Java编程中的权限控制修饰符、单例设计模式 (Singleton)和多例设计模式的综合探析~

Java基础教程之包及访问权限 下 本节学习目标1️⃣ 访问控制权限2️⃣ 命名规范3️⃣ 单例设计模式 (Singleton)4️⃣ 多例设计模式 本节学习目标 掌握Java 中的4种访问权限&#xff1b;掌握Java 语言的命名规范&#xff1b;掌握单例设计模式与多例设计模式的定义结构&#x…

界面控件DevExpress WPF数据编辑器组件,让数据处理更灵活!(二)

界面控件DevExpress WPF编辑器库可以帮助用户提供直观的用户体验&#xff0c;具有无与伦比的运行时选项和灵活性。WPF数据编辑器提供了全面的掩码和数据验证支持&#xff0c;可以独立使用&#xff0c;也可以作为容器控件(如DevExpress WPF Grid和WPF TreeList)中的单元格编辑器…

[实习笔记] Intel MkL ,FFT,Vcpkg,FFTW,ITPP,IMGUI,Scibox,Matlab,Simlate,方波等概念的认识

目录 Intel MKLVcpkgFFTWIMGUIFFTITPPSciboxMatlab方波 使用C代码进行麦克风的信号识别&#xff0c;需要使用MKL这种高效的数学库来提高傅里叶变换的性能. Intel MKL Intel MKL&#xff08;Math Kernel Library&#xff09;是英特尔&#xff08;Intel&#xff09;公司开发的一…