pytorch的基本使用(上)

目录

  • 一、安装pytorch
    • 1、用conda指令创建一个pytorch的环境
    • 2、安装pytorch(无独显)
  • 二、编译器选择
    • 1、pycharm
      • (1)安装pycharm
      • (2)选择编译器
      • (3)检测能否正常运行
      • 小技巧
    • pycharm 的创建项目及使用
    • 2、Jupyter Notebook
  • 三、两个法宝函数 dir() help()
  • 四、三种代码编辑方式对比
    • 1、python文件
    • 2、python控制台
    • 3、Jupyter
  • 五、pytorch中加载数据
    • Dataset(数据集)
    • Dataloader(数据装载器)
    • dataset类代码实战
      • 1、创建地址图片的列表
      • 2、地址拼接:
      • 3、得到单张图片的相对路径
      • 4、在数据集中打开图片

一、安装pytorch

1、用conda指令创建一个pytorch的环境

1、输入创建指令

conda create -n pytorch python=3.6
# -n后面跟环境的名字,eg:"pytorch"

(在 cmd 和 anaconda prompt 的终端里一样😅
在这里插入图片描述
2、安装一些包,“Y”
在这里插入图片描述
3、创建成功
在这里插入图片描述
4、进入创建的环境
在这里插入图片描述

2、安装pytorch(无独显)

官网地址: https://pytorch.org/
下载1.12的版本
没独显,选only cpu的
在这里插入图片描述

emm!!!emm 安装时出现问题:
conda版本有问题,按它提示的运行了一下,还是出错了
在这里插入图片描述

嘿嘿…一直出问题,狠心把本科下载的 anaconda 卸载了(夸张哈哈哈
在这里插入图片描述

重新安装miniconda!
详见俺滴另篇文章:https://blog.csdn.net/weixin_49538228/article/details/134842972

继续安装

conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cpuonly -c pytorch

安装成功!
在这里插入图片描述

检查是否安装成功:
输入下面两条命令行,没有报错就安装成功了
在这里插入图片描述
cpu的会false
在这里插入图片描述

二、编译器选择

1、pycharm

pycharm官网:https://www.jetbrains.com/pycharm/
在这里插入图片描述

(1)安装pycharm

(我之前就安装过了专业版,省略安装步骤了~)

(2)选择编译器

选已经创建的pytorch
在这里插入图片描述

没有自动出现
在这里插入图片描述
解决方案:
1、添加系统环境变量(还没出现)
环境变量是给命令行服务的
在这里插入图片描述
2、手动选择路径
(1)在scripts文件夹里找到conda的可执行文件
(2)选择之前建的pytorch环境
在这里插入图片描述

(3)检测能否正常运行

在这里插入图片描述

小技巧

左边输入,右边会有相应的变量的属性,便于尝试不熟悉的代码,不熟悉的语法。
在这里插入图片描述

pycharm 的创建项目及使用

1、新建项目 (省略)
设置 --> 查看项目解释器
在这里插入图片描述
2、新建python文件
在这里插入图片描述

3、为python文件设置相应的python解释器

方法一(细致了):
在这里插入图片描述
在这里插入图片描述
方法二:
右键运行
在这里插入图片描述
4、在python console中写代码

python控制台
以每一行作为一个块执行
在这里插入图片描述

2、Jupyter Notebook

因为我安装的是Miniconda,所以需要单独安装Jupyter Notebook。

jupyter默认安装在base环境中,无法使用之前安装的pytorch。
解决方案:
(1)在base环境里再安装一遍pytorch
⭐(2)在pytorch环境里安装jupyter
进入pytorch环境,在命令行输入:conda install nb_conda
在这里插入图片描述
安装完成!

运行jupyter notebook
在这里插入图片描述
可以自动跳转,不能自动跳转的复制网页链接打开~

(附)要在指定文件夹中打开 jupyter:在文件夹中运行 cmd

创建新代码:
在这里插入图片描述

运行:
(按Shift+Enter:运行并进入下一行)
在这里插入图片描述

三、两个法宝函数 dir() help()

package(pytorch):工具箱

1、dir()
提供打开操作,看见里面有什么
让我们知道 工具箱 以及 工具箱中的分隔区有什么东西
2、help()
说明书
让我们知道每个工具是如何使用的,工具的使用方法

dir(pytorch)
输出:1、2、3、4
dir(pytorch.3)
输出:a,b,c
help(pytorch.3.a)
输出:将此板手放在特定地方,然后拧动

示例:
前后有双下划线,不可更改,是函数了,不是分隔区了
在这里插入图片描述

help出现官方解释(help中函数后不加括号查询):
在这里插入图片描述

四、三种代码编辑方式对比

1、python文件

错误示例:
在这里插入图片描述
修改后
在这里插入图片描述
如果代码是以块为一个整体运行的话,python文件的块是所有行的代码

优:通用,传播方便,适用于大型项目
缺:在运行时出错时,再运行从头开始!

2、python控制台

错误示例:
在这里插入图片描述

修改后
在这里插入图片描述

每一(任意)行为块运行的,修改后从上次错误处开始运行
按Shift+回车可以继续输入

优:可以看到每一个变量的属性
缺:如果出现一个错误,代码的可阅读性就大大降低了
一般用来调试

3、Jupyter

错误示例:
在这里插入图片描述
修改后
在这里插入图片描述

任意行为块进行运行(手动切分)

优:利于代码的阅读及修改
缺:环境需要配置

五、pytorch中加载数据

Dataset(数据集)

提供一种方式去获取数据及其label。
实现功能:
(1)如何获取每一个数据及其label
(2)告诉我们总共有多少的数据

Dataset:
在这里插入图片描述

(1)读取一张图片:

from PIL import Image
img_path = "D:\\learn_pytorch\\hymenoptera_data\\train\\ants\\0013035.jpg" 
img = Image.open(img_path)
img.show()

windows中正反斜杠都可以,只是反斜杠要转义
双斜杠表转义

在这里插入图片描述

✳ 如果图片加载报错,则是路径有问题,把路径里的 ‘\’ 改成 ‘/’ ,因为如果 \ 后面是 ‘ \t ’就会出问题。或者使用双斜杠 ‘\\’
✳ 在字符串前加 r 可以防止转义字符生效

Dataloader(数据装载器)

为后面的网络提供不同的数据形式

dataset类代码实战

1、创建地址图片的列表

dir_path = "hymenoptera_data\\train\\ants"   #用的相对路径
import os
img_path_list = os.listdir(dir_path)   #将文件夹下的所有东西变成一个列表
img_path_list[0]

在这里插入图片描述

2、地址拼接:

import os
root_dir = "hymenoptera_data/train"
label_dir = "ants"
path = os.path.join(root_dir, label_dir)

在这里插入图片描述

3、得到单张图片的相对路径

import os
root_dir = "hymenoptera_data/train"
label_dir = "ants"
path = os.path.join(root_dir, label_dir)
img_path = os.listdir(path)
idx = 0
img_name = img_path[idx]
img_item_path = os.path.join(root_dir, label_dir, img_name)

在这里插入图片描述

4、在数据集中打开图片

(1)单个蚂蚁的数据集
在这里插入图片描述

(2)加入蜜蜂的数据集
在这里插入图片描述

(3)两个数据集拼接
(仿造数据集)

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

from torch.utils.data import Dataset
from PIL import Image
import osclass MyData(Dataset):def __init__(self, root_dir, label_dir):  #初始化函数self.root_dir = root_dirself.label_dir = label_dirself.path = os.path.join(self.root_dir, self.label_dir)self.img_path = os.listdir(self.path)   #图片所有地址列表def __getitem__(self, idx):   #获取其中的每一个图片img_name = self.img_path[idx]img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)img = Image.open(img_item_path)label = self.label_dirreturn img, labeldef __len__(self):  #数据集的长度 = 列表长度return len(self.img_path)root_dir = "hymenoptera_data/train"
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = MyData(root_dir, ants_label_dir)  #蚂蚁的数据集
bees_dataset = MyData(root_dir, bees_label_dir)  #蜜蜂的数据集train_dataset = ants_dataset + bees_dataset

注:
1、一个函数的变量不能传递给另一个函数,self 可以把指定的变量给后面的函数使用(指定了类中的全局变量

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

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

相关文章

【linux】解决报错:Network error: Connection refused

【linux】解决报错:Network error: Connection refused 【创作不易,求点赞关注收藏】😀 一、问题描述 我现在使用MobaTerm远程连接服务器,但是出现了Network error: Connection refused报错,可能是我原先设置了一些…

计网-三次握手和四次挥手

TCP建立和断开连接的过程(三次握手和四次挥手) TCP通信的过程: 问题:tcp是如何保证数据在客户端和服务端之间通信传输的? 分为三个步骤:三次握手,传输数据确认,四次挥手。三次握手…

react的解构赋值

我最近在用react讨生活。我的感觉,react开发效率不高。这当然应该是我还不熟悉react的缘故。但是,在阅读react代码过程中,其中一个容易困惑的地方是它到处充斥着的解构赋值。当然了,解构赋值并不是React特有的功能,而是…

OpenCV距离变换函数distanceTransform的使用

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 distanceTransform是OpenCV库中的一个非常有用的函数,主要用于计算图像中每个像素到最近的背景(通常是非零像素到零像素&…

tkinter-TinUI-xml实战(12)pip可视化管理器

引言 pip命令行工具在平常使用方面确实足够简单,本项目只是作为TinUI多界面开发的示例。 当然,总有人想用GUI版pip,实际上也有。不过现在,我们就来手搓一个基于python和TinUI(tkinter)的pip可视化管理器。…

数据结构——考研笔记(二)线性表的定义和线性表之顺序表

文章目录 二、线性表2.1 定义、基本操作2.1.1 知识总览2.1.2 线性表的定义2.1.3 线性表的基本操作2.1.4 知识回顾与重要考点 2.2 顺序表2.2.1 知识总览2.2.2 顺序表的定义2.2.3 顺序表的实现——静态分配2.2.4 顺序表的实现——动态分配2.2.5 知识回顾与重要考点2.2.6 顺序表的…

【分库】分库的设计与原则、数据分片策略、垂直分库与水平分库、数据库引擎选择与配置优化

目录 引言 分库设计原则 数据分片策略的选择 垂直分库 vs 水平分库的比较 数据库引擎选择与配置优化 引言 在面对日益增长的数据量和不断升级的业务需求时,传统的单体数据库架构往往难以应对高并发、大数据量带来的性能瓶颈。为了突破这些限制,分库…

godis源码分析——database存储核心1

前言 redis的核心是数据的快速存储,下面就来分析一下godis的底层存储是如何实现,先分析单机服务。 此文采用抓大放小原则,先大的流程方向,再抓细节。 流程图 源码分析 现在以客户端连接,并发起set key val命令为例…

vue3中谷歌地图+外网申请-原生-实现地址输入搜索+点击地图获取地址回显 +获取国外的geoJson实现省市区级联选择

一. 效果&#xff1a;输入后显示相关的地址列表&#xff0c;选中后出现标示图标和居中定位 1.初始化谷歌地图 在index.html加上谷歌api请求库 <script src"https://maps.googleapis.com/maps/api/js?key申请到的谷歌地图密钥&vweekly&librariesgeometry,place…

基于TCP的在线词典系统(分阶段实现)(阻塞io和多路io复用(select)实现)

1.功能说明 一共四个功能&#xff1a; 注册 登录 查询单词 查询历史记录 单词和解释保存在文件中&#xff0c;单词和解释只占一行, 一行最多300个字节&#xff0c;单词和解释之间至少有一个空格。 2.功能演示 3、分阶段完成各个功能 3.1 完成服务器和客户端的连接 servic…

Vue el-input 限制输入内容

&#x1f914;日常项目中经常遇到既要el-input的样式&#xff0c;又要el-input-number限制&#xff0c;所以需要绑定input事件进行约束输入限制。 以下使用自定义指令进行约束el-input输入的值&#xff0c;便于后期统一管理和拓展。 预览 代码 <!DOCTYPE html> <ht…

【机器学习】精准农业新纪元:机器学习引领的作物管理革命

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f50d;1. 引言&#x1f4d2;2. 精准农业的背景与现状&#x1f341;精准农业的概念与发展历程&#x1f342;国内外精准农业实践案…

【数据结构】手写堆 HEAP

heap【堆】掌握 手写上浮、下沉、建堆函数 对一组数进行堆排序 直接使用接口函数heapq 什么是堆&#xff1f;&#xff1f;&#xff1f;堆是一个二叉树。也就是有两个叉。下面是一个大根堆&#xff1a; 大根堆的每一个根节点比他的子节点都大 有大根堆就有小根堆&#xff1…

(南京观海微电子)——二极管应用及选取

二极管是 用半导体材料(硅、硒、锗等)制成的一种电子器件。二极管有两个电极&#xff0c;正极&#xff0c;又叫阳极&#xff1b;负极&#xff0c;又叫阴极&#xff0c;给二极管两极间加上正向电压时&#xff0c;二极管导通&#xff0c; 加上反向电压时&#xff0c;二极管截止。…

Vue1-Vue核心

目录 Vue简介 官网 介绍与描述 Vue的特点 与其它 JS 框架的关联 Vue周边库 初识Vue Vue模板语法 数据绑定 el与data的两种写法 MVVM模型 数据代理 回顾Object.defineProperty方法 何为数据代理 Vue中的数据代理 数据代理图示 事件处理 事件的基本使用 事件修…

【UE5.1】Chaos物理系统基础——06 子弹破坏石块

前言 在前面我们已经完成了场系统的制作&#xff08;【UE5.1】Chaos物理系统基础——02 场系统的应用_ue5&#xff09;以及子弹的制作&#xff08;【UE5.1 角色练习】16-枪械射击——瞄准&#xff09;&#xff0c;现在我们准备实现的效果是&#xff0c;角色发射子弹来破坏石柱。…

STM32智能空气质量监测系统教程

目录 引言环境准备智能空气质量监测系统基础代码实现&#xff1a;实现智能空气质量监测系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;空气质量监测与优化问题解决方案与优化收尾与总结 1. 引言 智能空…

基于Java+SpringMvc+Vue技术的药品进销存仓库管理系统设计与实现系统(源码+LW+部署讲解)

注&#xff1a;每个学校每个老师对论文的格式要求不一样&#xff0c;故本论文只供参考&#xff0c;本论文页数达到60页以上&#xff0c;字数在6000及以上。 基于JavaSpringMvcVue技术的在线学习交流平台设计与实现 目录 第一章 绪论 1.1 研究背景 1.2 研究现状 1.3 研究内容…

卸载wps office的几种方法收录

​ 第一种方法: 1.打开【任务管理器】&#xff0c;找到相关程序&#xff0c;点击【结束任务】。任务管理器可以通过左下角搜索找到。 2.点击【开始】&#xff0d;【设置】&#xff0d;【应用】&#xff0d;下拉找到WPS应用&#xff0c;右键卸载&#xff0c;不保留软件配置 …

Git学习1_Git安装(CSDN_20240714)

git下载 git下载官网如下&#xff1a; Git - Downloads (git-scm.com)https://git-scm.com/downloads 根据机器操作系统&#xff0c;下载对应的安装包 git安装 1. 点击安装程序&#xff0c;进入安装界面&#xff0c;如下图所示&#xff0c;点击next。 2. 选择安装路径&…