PyTorch深度学习快速入门——P1-P13

环境配置

  • Anaconda,创建conda create -n pytorch python=3.12,使用conda activate pytorch切换到环境。
  • 安装pytorchconda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia,使用import torchtorch.cuda.is_available()查看cuda是否可用。

编辑器选择

  • 之前一直用的vscodepython,但看了视频之后发现pycharm真好用:
  • python console这里可以直接查看变量及其属性
    在这里插入图片描述
  • structure这里能查看方法
    在这里插入图片描述
  • terminal是终端
    在这里插入图片描述

快捷键

  • 当报错的时候移到那里,alt+enter快捷修复,没导入包的时候好用
    在这里插入图片描述

  • 想查看属性和方法的时候移过去按住ctrl,点击,即可跳转
    在这里插入图片描述

  • 想查看方法要输入什么参数的时候ctrl+P
    在这里插入图片描述

两大法宝函数dir和help

  • dir:列出所有属性和方法
    在这里插入图片描述
  • help:查看具体用法(也可以用??
    在这里插入图片描述

jupyter notebook

  • pytorch环境中pip install jupyter notebook安装了jupyter notebook,但没有添加环境变量不一定找得到,使用python -m jupyter notebook自动找到适合当前环境的notebook,细粒化程度高。

Dataset

使用PTL读取图片,演示了一下Dataset的做法,继承了Dataset之后实现__getitem____len__方法,图片文件加目录为
在这里插入图片描述

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 = ("dataset/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

Tensorboard的使用

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Imagewriter = SummaryWriter("logs")
image_path = "data/train/bees_image/85112639_6e860b0469.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)writer.add_image("test", img_array, 2, dataformats='HWC')
# y = x
for i in range(100):writer.add_scalar("y=2x", 3 * i, i)writer.close()

terminal输入以下指令查看tensorboard,可以自己定义文件夹名和端口号:
tensorboard --logdir=logs --port=6007
在这里插入图片描述

Transforms的一些用法

  • P9.transforms.py
from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter# python的用法 -》 tensor数据类型
# 通过 transforms.ToTensor去解决两个问题
# 2. 为什么我们需要Tensor数据类型img_path = "data/train/ants_image/5650366_e22b7e1065.jpg"
img = Image.open(img_path)writer = SummaryWriter("logs")# 1. transforms该如何使用(python)
# 实例化ToTensor
tensor_trans = transforms.ToTensor()
# 调用实例,transforms.ToTensor的call方法
tensor_img = tensor_trans(img)print(tensor_img)writer.add_image("tensor_img", tensor_img)writer.close()# 使用opencv读图片
# import cv2
# cv_img = cv2.imread(img_path)

P10.UsefulTransforms.py

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transformswriter = SummaryWriter("logs")
img = Image.open("data/train/bees_image/16838648_415acd9e3f.jpg")
print(img)# ToTensor使用
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("Totensor", img_tensor)# Normalize使用
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize ([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm)# Resize使用
print(img.size)
trans_resize = transforms.Resize((512, 512))
img_resize = trans_resize(img)
# img_resize PIL -> totensor -> img_resize tensor
img_resize = trans_totensor(img_resize)
writer.add_image("Resize", img_resize, 0)
print(img_resize)# Compose - resize - 2
trans_resize_2 = transforms.Resize(512)
# PIL -> PIL -> tensor
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2, 1)# RandomCrop
trans_random = transforms.RandomCrop((200, 300))
trans_compose_2 = transforms.Compose([trans_random, trans_totensor])
for i in range(10):img_crop = trans_compose_2(img)writer.add_image("RandomCrop", img_crop, i)writer.close()

均是在利用transforms处理图片,然后用TensorBoard查看中间结果。

一些数据集的使用代码

import torchvision
from torch.utils.tensorboard import SummaryWriterdataset_transform = torchvision.transforms.Compose([torchvision.transforms.ToTensor()
])
train_set = torchvision.datasets.CIFAR10(root="./dataset", train=True, transform=dataset_transform, download=True)
test_set = torchvision.datasets.CIFAR10(root="./dataset", train=False, transform=dataset_transform, download=True)# print(test_set[0])
# print(test_set.classes)
#
# img, target = test_set[0]
# print(img)
# print(target)
# print(test_set.classes[target])
# img.show()# print(test_set[0])writer = SummaryWriter("p10")
for i in range(10):img, target = test_set[i]writer.add_image("test_set", img, i)writer.close()

Pycharm的断点失灵

这个问题还没解决,不知道为什么断点无效,错误信息如下:
在这里插入图片描述
run是没问题的,但不知道为什么debug不行。
问题解决了,网上有各种解决方案都试了不行,最后更新了Pycharm自动解决了:
在这里插入图片描述

本文参考小土堆教程视频。

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

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

相关文章

水滴式粉碎机:让破碎多样化

水滴式粉碎机以其新的粉碎技术和卓越的性能,引领着粉碎技术的新革命。它采用了高速旋转技术,通过转子对物料进行撞击和摩擦,实现了对物料的精细粉碎,制备出了高品质、高附加值的产品。 水滴式粉碎机在多个行业中都有着广泛的应用…

C++的红黑树

目录 基本概念 插入结点的颜色 判断性质是否破坏 调整方式 u为g的右孩子 u存在且为红 u存在且为黑 u不存在 结论 红黑树结点定义 代码实现 基本概念 1、红黑树是一种特殊的二叉搜索树,每个结点会增加一个存储位表示结点的颜色(红或黑&#x…

数据泄露防护:企业如何通过软件限制U盘使用

在数字化办公时代,数据安全已成为企业运营中的一个关键议题。U盘作为一种便携式的数据存储和传输工具,其使用在企业内部非常普遍。然而,U盘的不当使用也可能导致严重的数据泄露问题。本文将探讨企业如何通过软件解决方案,有效限制…

1小时从0开始搭建自己的直播平台(详细步骤)

本文讲述了如何从0开始,利用腾讯云的平台,快速搭建一个直播平台的过程。 文章目录 效果图详细步骤准备工作第一步:添加域名并检验cname配置1.先填加一个推流域名2. 点击完下一步,得到一个cname地址3. 将cname地址,配置…

QT 掩码 InputMask

字符规则 如IP输入框可以简单设置为 IP->setInputMask("000.000.000.000");就会有80%的相似度 另外设置掩码用 ui.edtIP->setInputMask(“这里面是字符格式”); ★消除已有的掩码用 ui.edtIP->setInputMask(" "); 而不是ui.…

关于VFX Graph的学习

关于VFX Graph的学习 转载自我的有道云笔记,目前内容不多,后续如果继续使用会更新。 前言 出于实习工作需要和毕设需要,我开始使用VFXGraph。 以前准备第一批作品集的时候,就简单地使用过,但是只是跟着教程一顿乱连…

【方法】ZIP压缩文件的密码如何设置和取消?

ZIP是一种常见的压缩文件格式,今天来分享一下,ZIP压缩文件如何设置密码保护,以及如何取消密码,不清楚的小伙伴一起来看看吧! 设置ZIP文件密码: 想要给ZIP压缩包设置密码,需要用到支持ZIP格式的…

记一次 .NET某企业数字化平台 崩溃分析

一:背景 1. 讲故事 前些天群里有一个朋友说他们软件会偶发崩溃,想分析看看是怎么回事,所幸的是自己会抓dump文件,有了dump就比较好分析了,接下来我们开始吧。 二:WinDbg 分析 1. 程序为什么会崩溃 win…

2024-BurpSuite快速配置Jython插件环境

文章目录 前言一、下载Jython二、配置Python environment 前言 很多插件需要python环境,Burpsuite本身是支持java的,Jython就是java和python的结合。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载Jython https://ww…

.NET调用阿里云人脸核身服务端 (ExecuteServerSideVerification)简易流程保姆级教学

需要注意的是,以下内容仅限基础调用 功能说明 该功能是输入核验人的姓名和身份证以及人脸照片,去阿里库里面匹配,3个信息是否一致,一致则验证通过,需要注意的是,人脸有遮挡,或者刘海&#xff0…

吴恩达2022机器学习专项课程C2W2:2.17 TensorFlow实现 2.18 训练细节

这里写目录标题 本周任务TensorFlow训练神经网络模型的简要过程训练模型的三个步骤1.自行训练逻辑回归模型2.TensorFlow训练神经网络模型 TensorFlow训练神经网络模型的代码含义1.定义模型2.指定损失函数和成本函数3.最小化成本函数 总结QuizQuiz1Quiz2 本周任务 神经网络如何…

汇聚荣科技有限公司怎么样?

在众多企业中,汇聚荣科技有限公司以其独特的发展模式和市场定位引起了人们的关注。对于这个问题,答案并非简单的好与坏,而需要从多个维度进行深入分析。 一、公司背景与发展历程汇聚荣科技有限公司成立于何年何地,由谁创立&#x…

40岁的戴尔在AI时代翻红了

戴尔公司股价创历史新高,市值达1138亿美元,涨幅110%。戴尔向AI押注多年,收购企业转型,成为数据基础设施厂商。AI服务器销售增长,分析师看好戴尔未来发展。 5月24日美股收盘,很多人可能不太关注的戴尔公司股…

Matlab进阶绘图第57期—带填充纹理的横向柱状图

带填充纹理的横向柱状图是通过在原始横向柱状图的基础上添加不同的纹理得到的,可以很好地解决由于颜色区分不足而导致的对象识别困难问题。 由于Matlab中未提供纹理填充选项,因此需要大家自行设法解决。 本文使用Kesh Ikuma制作的hatchfill2工具&#…

别人不愿意教,那我来教你Simulink建模(二)【语法知识】【原创分享】

文章目录 前言节点和状态的区别?local 和非 local 的区别?事件的作用?Bus 总线?Memory 模块?caller用法?自己瞎练习的(我也不知道为啥会多出来.h文件)自己瞎练习的(这个没有多出来.h文件)autosar实例学习前言 继续更新去年的博文系列,请君切记,师父领进门修行在个…

echarts- 热力图, k线图,雷达图

热力图 热力图可以看成是一种矩形的散点图。 热力图的矩形受itemStyle的影响。 通常配合visualmap组件来根据值的大小做颜色的变化。 热力图主要通过颜色去表现数值的大小,必须要配合 visualMap 组件使用。 visualMap:视觉映射组件 let options {tooltip: {},xAx…

取代pip,Python依赖管理的终极武器:Poetry

大家好,使用python过程中,包管理是一个永恒的话题。从早期的setuptools到后来的pip,再到现在的Poetry,开发者们一直在寻找更高效、更稳定、更可依赖的包管理方案。今天,我们就来聊聊这个现代Python项目的管理神器——P…

【全开源】CMS内容管理系统源码(ThinkPHP+FastAdmin)

基于ThinkPHPFastAdmin的CMS内容管理系统,自定义内容模型、自定义单页、自定义表单、专题、统计报表、会员发布等 提供全部前后台无加密源代码和数据库私有化部署,UniAPP版本提供全部无加密UniAPP源码。 ​构建高效内容管理的基石 一、引言&#xff1a…

深入分析 Android Activity (六)

文章目录 深入分析 Android Activity (六)1. Activity 的权限管理1.1 在 Manifest 文件中声明权限1.2 运行时请求权限1.3 处理权限请求结果1.4 处理权限的最佳实践 2. Activity 的数据传递2.1 使用 Intent 传递数据2.2 使用 Bundle 传递复杂数据 3. Activity 的动画和过渡效果3…

Python 机器学习 基础 之 数据表示与特征工程 【分箱、离散化、线性模型与树 / 交互特征与多项式特征】的简单说明

Python 机器学习 基础 之 数据表示与特征工程 【分箱、离散化、线性模型与树 / 交互特征与多项式特征】的简单说明 目录 Python 机器学习 基础 之 数据表示与特征工程 【分箱、离散化、线性模型与树 / 交互特征与多项式特征】的简单说明 一、简单介绍 二、分箱、离散化、线性…