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

[pytorch]设备选择以及卷积神经网络的应用

0.写在前面:

首先这篇文章还没写完,因为今天要尝试对我之前的一个框架做一个简单的更新迭代,所以目前先更新这么多.

1.关于设备的选择

首先,目前的大多数电脑都是自带一些GPU(图形计算单元,在这里被称之为cuda), 需要安装相关的驱动才能正常使用这些设备和调用他们的具体情况.

nvidia-smi

 但是平时对于我们个人来说,我们的电脑基本无法承担上百万的数据调用,所以一般情况下,服务器是可以提供给我们这些东西.

如图所示是服务器上的GPU情况,可以看到服务器的开发者实现了一些其他的探测功能.

(1)单独设备的选取

首先注意一个情况,对于单一设备来说,我们称呼CPU为'cpu',称呼GPU为'gpu'

而在代码中,设备时被抽象为一个对象,我们可以通过torch包下的device来指定某个设备:

torch.device('cpu')
torch.device('cuda') # 默认找到地0个GPU
torch.device('cuda:1') # 可以指定第一个GPU# 以上三个函数会返回对应的一个设备连接对象

 以上三个函数用来创建设备链接对象没通过这些设备可以获得具体的对象

当然在拿不准的时候,可以直接查询GPU的数目

torch.cuda.device_count()

 

2.关于卷积神经网络的简单应用情况

如何构建神经网络,其实在上一篇博客中已经说到了,这里就简单介绍几个神经网络层构建函数

(1)卷积层

卷积层实现的效果其实就是一个简单的乘法加和,原理如图所示

import torch.nn as nnnn.Con2d( input_channels, kernet_num ,kernel_size=?, padding=0, stride=1)

 注意一下参数中的第二个参数是我个人的理解,其实按照正常的普遍理解,这个应该叫"输出通道数目".

(2)平均池化层

(注意,大池化层的特点之一,都是不会改变频道的数目,也就是只会修改输入的尺寸,而不会修改输入的通道数目!!!!这个的pool东西,默认只有一层通道,也就是一个2d的核)

另外两个池化层需要输入的参数只有核的大小,以及步长

import torch.nn as nnnn.AvgPool2D(kernel_size=? stride=1)

(3)最大池化层

import torch.nn as nnnn.MaxPool2D(kernel_size=? stride=1)

3.如何讲模型和设备移动到指定设备上

首先我们在大多数情况下创建的张量和模型,都是默认在cpu上面的\

arr.device    # cpu
net.device    # cuda/gpu

 而在进行模型计算的时候,需要首先将模型和张量移动到统一设备上,这样计算很省时间

虽然但是,torch对于跨设备的数据和模型,提供了一些奇奇怪怪的手段来完成一个自动传递,但是真到了在训练的时候,临时传输不可避免地会造成大量的开销

使用to函数建立新链接即可

cuda1=torch.device('cuda:1')
X = torch.tensor([0,1,2,3])
Y = X.to(cuda1)X.device # cpu
Y.device # cuda1

而对于模型来说也是一样的的移动方式,使用to函数来实现

# 顺便这里补充一个with语句
with语句用来创建一个上下文, 比如打开文件(这里要加上as)
或者说给模型设置为训练模式当with语句中的函数块执行结束以后,就可以讲with对应的操作做一个取消
with net.train():..........
当内部函数块执行结束以后,模型就会撤掉"转变为训练模式"这个操作

 

相关文章:

[pytorch]设备选择以及卷积神经网络的应用

0.写在前面: 首先这篇文章还没写完,因为今天要尝试对我之前的一个框架做一个简单的更新迭代,所以目前先更新这么多. 1.关于设备的选择 首先,目前的大多数电脑都是自带一些GPU(图形计算单元,在这里被称之为cuda), 需要安装相关的驱动才能正常使用这些设备和调用他们的具体情况…...

API SIX系列-服务搭建(一)

APIsix简介 APISIX是一个微服务API网关,具有高性能、可扩展性等优点。它基于nginx(openresty)、Lua、etcd实现功能,借鉴了Kong的思路。和传统的API网关相比,APISIX具有较高的性能和较低的资源消耗,并且具有…...

hadoop 大数据环境配置 同步时间 centos服务器时间同步 linux 安装ntp服务更新时间 hadoop(六)

1. 安装ntp软件 yum install -y ntp 2.创建软连接 # 删除之前得时间 sudo rm -rf /etc/localtime;# 更新时区sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime3. 更新时间 # root 权限运行 sudo ntpdate -u ntp.aliyun.com 4. 开机自启,更新时间 …...

基于单片机智能输液器监控系统的设计

**单片机设计介绍, 基于单片机智能输液器监控系统的设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能输液器监控系统可以实现对输液过程的实时监测和控制,以下是一个基本的设计介绍&am…...

Unity解决:没有UnityWebRequest.Result

当我在Unity 2019中使用Unity 2021的代码satable时。 控制台显示 “UnityWebRequest”不包含“result”的定义,并且找不到接受“UnityWebRequest”类型的第一个参数的可访问扩展方法“result”(是否缺少using指令或程序集引用?) 漏洞/问题: if (req.result == UnityWebRe…...

记录Linux的Bug

项目场景: 提示:这里简述项目相关背景: 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大) 问题描述 提示:这里描述项目中遇到的问题&#xff1…...

优化改进YOLOv5算法之感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等

目录 1 RFAConv原理 1.1 回顾标准卷积 1.2 回顾空间注意力 1.4 创新空间注意力与标准卷积...

【设计原则篇】聊聊里氏替换原则

是什么 子类对象可以替换程序中父类对象出现的任何地方,并且保证原有程序逻辑的正确性不被破坏。 比如我们在实际开发中定义了数据读取的父类,子类可以进行在此功能的拓展、增强但是不能修改原有的内在含义。 里氏替换原则和多态的区别,多态…...

k8s系列-kuboard创建工作负载 docker上传java微服务jar包到仓库的过程

文章目录 docker环境准备docker 镜像相关命令docker 容器相关命令容器和主机之间信息传递 内网中将jar包上传到docker仓库中 docker环境准备 1.查看环境中是否存在docker环境 docker version 2.不存在的话需要创建docker 镜像(image): dock…...

基于单片机的塑料厂房气体检测系统设计

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、设计的主要内容二、系统硬件设计三、软件设计实物 四、结论五、 文章目录 概要 本文首先分析了基于单片机的可燃…...

HTTP-FLV详解及分析

文章目录 前言一、HTTP-FLV 简介1、市场上使用 http-flv 的商家2、http-flv、rtmp 和 hls 直播的优缺点3、http-flv 技术实现 二、Nginx 配置 http-flv1、Windows 安装 nginx,已经集成 nginx-http-flv-module2、nginx.conf 配置文件3、运行 nginx 服务器4、ffmpeg 推…...

docker应用实例及dockerfile

实际应用 神经网络项目由x86cpu的linux环境移到arm cpu架构上运行,使用docker进行测试以及环境配置。 docker load -i 镜像压缩文件.tar docker load -i命令用于从一个压缩的镜像存档文件(通常是以.tar扩展名结尾)中加载镜像到本地Docker引擎…...

【Qt之QWizard】使用1

QWizard使用 描述方法枚举:enum QWizard::WizardButton枚举:enum QWizard::WizardOption枚举:enum QWizard::WizardStyle枚举:enum QWizard::WizardPixmap常用成员方法槽函数信号 示例设置标题添加page页设置按钮文本设置自定义按…...

移植LVGL到单片机的一个demo简单介绍

简介 背景: 本文使用的是主控IC为stm32f103zet6, 显示IC为ST7735s,它是128*160的像素,色深为RGB565颜色。 官方虽然说LVGL移植平台只需 64kB 闪存和 8kB RAM 就足以满足简单的用户界面。但我移植到stm32f103c8t6,不管怎么修改配…...

rust_for_linux驱动完整版记录

文章目录 [清华开源操作系统训练营]《Rust fox Linux》课程的练习1-2完整版记录。1. 环境搭建2. 编译rust内核2.1 下载源代码2.2 安装rust支持2.3 检查linux内核是否支持rust2.4 编译linux内核 3. aarch64的qemu环境3.1.下载源代码3.2. 解压编译安装3.3. 配置环境变量3.4.验证 …...

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图,Kotlin(6)

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图,Kotlin(6) Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图,Kotlin(5)-CSDN博客文章浏览阅读1.3k次。Android Dyna…...

计算机网络课后作业2023秋

计算机网络第三版吴功宜版 课后作业 第一章作业三、计算与问答3.73.8 第二章作业三、计算与问答3.23.53.6 第三章作业三、计算与问答3.13.53.73.8 第四章作业三、计算与问答3.13.2 第五章作业三、计算与问答3.13.33.4VLAN交换机模式模式切换重置交换机VLAN配置命令其…...

阿里云国际站:全球加速GA

文章目录 一、前言 二、阿里云全球加速的概念 三、阿里云全球加速的功能优势 四、阿里云全球加速的原理 五、阿里云全球加速的应用场景 六、写在最后 一、前言 随着互联网的快速发展,网站速度已经成为了用户访问体验的一个重要指标。阿里云加速作为一种新的技…...

M2LC-Net

模型结构 作者未提供代码...

Jenkins 质量扫描

代码质量扫描工具(SonarQube) 质量评审 SonarQube有四个关键组件 ◼ SonarQube Server运行有三个组件 ◆ Web Server:UI ◆ Search Server:为UI提供搜索功能,基于ElasticSearch ◆ Compute Engine Server&#xff1a…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

CSS | transition 和 transform的用处和区别

省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下&#xf…...