PyTorch深度学习快速入门
PyTorch深度学习快速入门
- 1.PyTorch环境配置及安装
- 2.python编辑器的选择、安装、配置(pycharm、JupyTer安装)
- 3.为什么torch.cuda.is_available()返回false
- 4.python学习中两大法宝函数(也可用在pytorch)
- 5.pycharm和jupyter(究bi特)使用及对比
- 6.pytorch加载数据初认识
- 7.dataset类代码实战
- 8.TensorBoard的使用(一)
- 9.TensorBoard的使用(二)
- 10.Transforms的使用(一)
- 11.Transforms的使用(二)
- 12.常见的Transforms(一)
- 13.常见的Transforms(二)
- 14.torchvision中的数据集的使用
- 15.DataLoader的使用
1.PyTorch环境配置及安装
https://repo.anaconda.com/
在开始菜单打开Anaconda prompt
在命令行窗口看见base就是安装成功
我们要检查显卡的驱动是否正确安装
看到GPU正常显示型号,则显卡驱动已经正确安装了
在正确安装pytorch之前
我们要学会如何正确管理环境
因为我们之后在不同的项目、代码需要的环境是不一样的
有的代码需要pytorch0.4、有的需要1.0
conda create -n pytorch python=3.6
n表示name的意思,pytorch就是这个环境的名字
python=3表示要安装的包
conda activate pytorch用来激活这个环境
左边括号里面的就是环境的名称
pip list用来查看环境中有哪些工具包
但其中没有我们需要的pytorch
下面我们开始安装pytorch
我们需要知道自己GPU的型号
没有显卡 CUDA选择None
conda9.2以上要确保我们的驱动版本大于396.26
我们要先查询一下自己的驱动版本nvidia-smi
conda install pytorch torchvision cudatoolkit=9.2 -c pytorch -c defaults -c numba/label/dev
使用python
import torch
观察pytorch是否安装成功
使用torch.cuda.is_available()这个命令观察是否可以使用GPU
显示false是因为cuda下错版本了,要与自己的电脑对应起来
比如我的
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
3060最低要11.1的cuda
2.python编辑器的选择、安装、配置(pycharm、JupyTer安装)
选择地址和环境
下面检测一下pycharm是否成功导入了conda的运行环境
torch.cuda.is_available()
jupyter是默认安装在外面的base环境中的
但我们的base环境是没有安装pytorch的
所以这个jupyter无法使用pytorch
我们可以在base环境中安装pytorch或者在pytorch环境中安装jupyter
我们使用第二种方法
先进入pytorch环境
conda activate pytorch
我的pytorch环境中没有
使用conda install nb_conda安装
安装完成后输入jupyter notebook
http://localhost:8888/?token=f0d9cb3f4543dceeb4737d957381b4c3ab37070ce474b819
点击shift+回车运行代码块
torch.cuda.is_available()
如果是中文用户名可能会运行不了
在环境变量下做如下修改
%systemroot%\TEMP
%USERPROFILE%\AppData\Local\Temp
3.为什么torch.cuda.is_available()返回false
4.python学习中两大法宝函数(也可用在pytorch)
输出只有一行的,可以点击此刻页面最左侧第2列第一个按钮“Soft-warp”
查看torch.cuda
我们可以看见之前用的is.available
有_表示它是一个函数
5.pycharm和jupyter(究bi特)使用及对比
首先是pycharm
如何确定这个文件使用的是我们的pytorch的cuda环境呢
新建一个python文件
如何运行这个文件
我们要添加相应的python解释器
点击确定就OK了
我们也可以直接在python控制台
在里面创建一个新的文件
先选择相应的环境
6.pytorch加载数据初认识
https://pan.baidu.com/s/1jZoTmoFzaTLWh4lKBHVbEA 密码: 5suq
可以下载一下数据集
这个数据集分为train(训练数据集)和val(验证数据集)
下面是train
这是一个识别蚂蚁和蜜蜂对他进行二分类的一个数据集
其中ants和bees这两个文件的名称就是label
还有其他的形式
告诉我们训练的图片是什么样子
告诉我们训练的label是什么样子
或者我们也可以将label直接写在图片名称上面
下面说明如何使用dataset类
或者
7.dataset类代码实战
使用控制台进行一个调试
将数据集放到项目中,并且重命名为dataset
我们要获取图片的地址
根据def getitem(self, idx):中的idx这个索引去获取
先去获取所有图片地址的一个列表
使用OS去获取
上面我们就是获得了所有图片的地址
下面我们要获取每一个图片
下面考虑这个数据有多长
如果我们想要获取蜜蜂的数据集
我们训练数据集就是这两个数据集的一个集合
如果我们将数据集进行另外一种形式的表达
每一张图片对应的label
8.TensorBoard的使用(一)
tranform可以我们的图像统一到同一个尺寸
或者对图像中的每一个数据进行一个类的转换
我们一般想知道我们的训练过程中的loss是如何变化的
通过这个loss知道我们的训练过程是否安装我们预想的变化
我们也可以从相应的loss中去看一下我们选择什么样的模型
上面这个图就是在外面的2974步输入的图像
这个TensorBoard可以帮助我们探究一些模型在不同的阶段是如何输出的
首先打开项目文件夹,设置环境
查看如何使用
tag就是图表的title
scalar_value是我们对应的数值,y轴
global_step是我们训练到多少步,x轴
我们没有还没有安装tensorboard这个包
如果在一台服务器上有好几个人训练
可能端口会冲突
我们可以指定一下这个端口
tensorboard --logdir=logs
write写入一个新的事件当中
其实也进入了上一个事件当中
就会出现上面的情况
第一种方法
我们可以将对应的logs下面的文件全部删除
第二种方法
9.TensorBoard的使用(二)
其中的img_tensor要么是torch_tensor型,要么是numpy.array型。。。
我们这边的图片类型是不满足要求的
我们安装一下opencv
转换为numpy型
10.Transforms的使用(一)
transforms主要用来对图片进行一些变换
左边的structure可以看它的结构
我们上面就是将img类型的图片转换为我们tensor类型的一个图片
11.Transforms的使用(二)
我们为什么需要tensor这个数据类型
tensor包装了我们神经网络所需要的一些参数
我们在神经网络中一般先把数据转化为tensor型,然后进行一些训练
我们上面学习了PIL Image类型的读取
那么如何读取numpy类型的呢
最常用的就是使用opencv
我们安装一下OpenCV
pip install opencv-python( conda install py-opencv)
12.常见的Transforms(一)
compose是将图片进行一个中心的裁剪然后转换为tensor
_ _ cal l_ _ 可以直接调用
输入必须是一个PIL Image或者numpy类型转换为一个tensor类型
归一化
输入必须是一个tensor类型
用平均值和标准差对张量图像进行归一化
输入的img_tensor有三个通道,人为设置均值和标准差都是0.5,
然后利用公式算的输出值img_norm
下面就是我们归一化后的一个结果
一般图像多少RGB,三通道
13.常见的Transforms(二)
输入是PIL Image类型
尺寸由原来的3200 * 3200 变为 512 * 512
输出的是PIL Image类型
如果我们想要在tensorboard进行显示的话
我们要将img_resize变为totensor的一个数据类型
当你对一个图像应用trans_compose变换时,它首先会使用trans_resize_2进行尺寸调整,然后使用trans_totensor将PIL图像转换为PyTorch的Tensor。
这个参数是个列表
其实就是将resize变换和totensor合并了
所以列表两个参数代表这两个过程合并。
下面我们看另外一个方法
随机裁剪
14.torchvision中的数据集的使用
介绍如何将数据集和我们的transforms结合在一起
在科研当中一些标准的数据集如何去下载、组织、查看、使用
下面是官网提供的数据集
比如其中的CIFAR10数据集一般用于物体识别
root表示数据集在什么位置
train为true的话表示为训练集、false表示为测试集
transform表示我们想对训练的数据集进行一个什么样的变化
target_transform表示对target进行一个transform
download如果为true的话,会从网上自动给我们下载这个数据集
torchvision.models中会提供一些预训练好的神经网络模块
介绍如何将数据集和我们的transforms结合在一起
这里会在我们的文件夹下创建dataset,并且下载CIFR10数据集到其中
前面是我们的输入图片
后面是我们的target类别,这里将我们的真实类别表示为一个数字3
如果target为0,就是airplane
如果我们想要看一下这个图片
下面介绍一下CIFAR10这个数据集
6万张32 * 32像素的彩色图片,且分为10个类别
5w训练,1w测试
下面和我们的transform进行联动
因为我们的原始图片是PIL Image
如果要给我们的pytorch进行使用,需要转为tensor数据类型
这里我们就使用transform
这里就是一个tensor数据类型
我们也可以使用我们的tensorboard进行一个显示
比如我们想显示测试数据集中的前10张图片
我们下载数据集的时候,可以直接在迅雷上使用URL链接进行下载
15.DataLoader的使用
相关文章:

PyTorch深度学习快速入门
PyTorch深度学习快速入门 1.PyTorch环境配置及安装2.python编辑器的选择、安装、配置(pycharm、JupyTer安装)3.为什么torch.cuda.is_available()返回false4.python学习中两大法宝函数(也可用在pytorch)5.pycharm和jupyter…...

种花
分情况: 第一盆k种选择,之后全部k-1种选择 每次相乘结果对1e97取模 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \n const int N 1e9 7;int main() {ios::sync_with_stdio(f…...
Android Shadow插件化框架分析与集成(二)
本文索引 前言插件打包后如何交给宿主使用?宿主加载插件代码分析全局初始化操作加载插件activity测试过程中遇到的问题报错 1 :报错2:报错3 :二次开发支持多插件、多进程功能mPpsController 的构造方式mPluginLoader的构造方式多插件如何改造前言...

Go 与 Rust:导航编程语言景观
在当今构建软件时,开发者在编程语言上有着丰富的选择。两种脱颖而出的语言是 Go 和 Rust - 都很强大但却截然不同。本文将从各种因素比较这两种语言,以帮助您确定哪种更适合您的需求。 我们将权衡它们在并发、安全性、速度、互操作性等方面的方法。我们将…...

包管理工具之npm也慌了?
起因 因为npm的种种问题,我很早就换成了pnpm和yarn(但是其实npm也在使用),已经很久没有关注npm的功能更新了。最近无意间进入Node18版本的安装目录,发现其除了常规的node,npm等默认安装了一个新的包corepack,这个就是今天我要分享的东西了。 注: 我因为18版本的node上…...

mobile app 安全扫描工具MobSF了解下
可以干啥: static 静态分析 dynamic 动态分析 可以用来渗透了 如何docker安装 docker image 下载地址https://hub.docker.com/r/opensecurity/mobile-security-framework-mobsf/ setup 两行即可 1 docker pull opensecurity/mobile-security-framework-mobsf…...

Gophish+EwoMail 自建钓鱼服务器
GophishEwoMail 自建钓鱼服务器 文章目录 GophishEwoMail 自建钓鱼服务器1.前提准备2.搭建EwoMail邮件服务器1)Centos7 防火墙操作2)设置主机名3)host配置4)安装EwoMail5)获取DKIM6)端口服务介绍7ÿ…...

Dockerfile(5) - CMD 指令详解
CMD 指定容器默认执行的命令 # exec 形式,推荐 CMD ["executable","param1","param2"] CMD ["可执行命令", "参数1", "参数2"...]# 作为ENTRYPOINT的默认参数 CMD ["param1","param…...

使用 Gradle 版本目录进行依赖管理 - Android
/ 前言 / 在软件开发中,依赖管理是一个至关重要的方面。合理的依赖版本控制有助于确保项目的稳定性、安全性和可维护性。 Gradle版本目录(Version Catalogs)是 Gradle 构建工具的一个强大功能,它为项目提供了一种集中管理依赖…...

CS_上线三层跨网段机器(完整过程还原)
以前讲过用cs_smb_beacon上线不出网机器,但是真实的网络拓扑肯定不止这么一层的网络! 所以我就来搭建一个复杂一点的网络环境!! 当然了,这三台电脑之间都是不同的网段,(但是同属于一个域环境&a…...
crpto 的AES算法解密为空
1. 需求 对用户密码加密存入数据库,修改密码时取出密码在前端解密(保证密码前后端传输过程中为密文)。 文档地址:CryptoJS - CryptoJS (gitbook.io) 2. 原代码 2.1 加密 var userpass "123456"; var aseKey &quo…...

13.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-如果没有工具就创造工具
内容参考于: 易道云信息技术研究院VIP课 上一个内容 :12.游戏网络通信存在的问题 现在把游戏网络的架构看了一个小小的大概,可以用它的接口发数据接收数据了,如果真正想用它这一套东西,真正核心不在于它的接口而在于…...

配置artifactory的反向代理和域名访问
一、概述 在许多情况下,组织会通过反向代理来提供对 Artifactory 的访问。在某些情况下,例如使用 Artifactory 作为 Docker 注册表,这种设置甚至是强制性的。为了简化反向代理的配置,Artifactory 提供了生成反向代理的功能&#x…...
python爬虫之协程知识点记录
一、协程 概念 协程 又称微线程(纤程),是一种用户态的轻量级线程 子程序 在所有的语言中都是层级调用的,比如A中调用B,B在执行过程中调用C,C执行完返回,B执行完返回,最后是A执行完毕。这是通过栈实现的&a…...

安卓开发1- android stdio环境搭建
安卓开发1-android stdio环境搭建 Jdk环境搭建 1. 准备Jdk,这边已经准备好了jdk1.8.0,该文件直接使用即可 2. 系统变量添加 %JAVA_HOME%\bin JAVA_HOME 3. 系统变量,Path路径添加 4. 添加完成后,输入命令javac / java -version,验证环…...

qt QRadioButton 及QButtonGroup 使用
QRadioButton 放在组合框QGroupBox中,再点击时,即使有多个QRadioButton按钮,同时选中的也就只有一个。 如下图所示, 对于多个QRadioButton,每个按钮都写一个槽函数是不太明智的选择,需要将QRadioButton放在…...
【LeetCode-178】最长重复子串(动归)
目录 LeetCode718.最长重复子串 题目描述 解法1:动态规划 代码实现 题目链接 题目描述 给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出&…...

1、jQuery介绍、css()、选择器、事件、动画
一、jQuery介绍? 1、什么是jQuery? 是一个JavaScript函数库 2、jQuery特点 写的少,做的多 3、jQuery的安装 直接下载引入 <script src"jquery-1.10.2.min.js"></script>通过cdn引入 <script src"https…...

ArcEngine 调用GP工具时,出现C++ R6034错误
1、Arcengine 调用GP工具时,遇到正试图在 os 加载程序锁内执行托管代码 问题 使用:把VS菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉。不会弹出该错误。 2 编译后运行EXE时,出现C R6034问题 ArcEng…...
windows下基于docker-desktop 安装 mysql 5.7
0.背景 docker-desktop v4.27.1Windows 11 22H2 docker-desktop 需要wsl的支持,一般win11新机子都默认开启了,安装docker-desktop 一路next即可.win10老版本需要自行安装开启wsl.一个小建议是,如果你的win10安装wsl时各种错误无法解决,建议升级到win11大概率解决,本人亲身经历…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...

【QT控件】显示类控件
目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏:QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...

基于Python的气象数据分析及可视化研究
目录 一.🦁前言二.🦁开源代码与组件使用情况说明三.🦁核心功能1. ✅算法设计2. ✅PyEcharts库3. ✅Flask框架4. ✅爬虫5. ✅部署项目 四.🦁演示效果1. 管理员模块1.1 用户管理 2. 用户模块2.1 登录系统2.2 查看实时数据2.3 查看天…...

生信服务器 | 做生信为什么推荐使用Linux服务器?
原文链接:生信服务器 | 做生信为什么推荐使用Linux服务器? 一、 做生信为什么推荐使用服务器? 大家好,我是小杜。在做生信分析的同学,或是将接触学习生信分析的同学,<font style"color:rgb(53, 1…...

解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法
目录 前言 一、问题重现 1、环境说明 2、重现步骤 3、错误信息 二、关于LATERAL 1、Lateral作用场景 2、在四至场景中使用 三、问题解决之道 1、源码追踪 2、关闭sql合并 3、改写处理SQL 四、总结 前言 在博客:【写在创作纪念日】基于SpringBoot和PostG…...

OpenHarmony标准系统-HDF框架之I2C驱动开发
文章目录 引言I2C基础知识概念和特性协议,四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线,由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…...