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 os

class MyData(Dataset):

    def __init__(self, root_dir, label_dir):
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.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_dir
        return img, label

    def __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 Image

writer = 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 transforms

writer = 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 SummaryWriter

dataset_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自动解决了:
在这里插入图片描述

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

  • 27
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本针对生物医学领域的深度学习入门教材。它涵盖了PyTorch框架下的生物医学图像处理、分割、分类、检测等任务,并提供了相关实战案例。 这本书首先介绍了生物医学视觉深度学习的基础知识,包括卷积神经网络、深度学习模型的优化和训练等。接着,书中详细解释了PyTorch框架的基本用法和相关工具,帮助读者在实践中理解和应用深度学习算法。 在实战部分,本书结合生物医学图像处理的具体问题,介绍了数据预处理、模型构建和训练、结果评估等关键步骤。读者可以通过实例学习使用PyTorch框架处理生物医学图像,如医学图像的分割、肿瘤检测和分类等任务,并了解如何应对不同情况下的挑战。 此外,书中还介绍了一些扩展内容,如生成对抗网络(GAN)在生物医学领域的应用、迁移学习等,以帮助读者深入理解和拓展知识。 综上所述,《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本全面介绍生物医学图像处理深度学习的教材,适合对生物医学领域感兴趣的学习者,通过学习本书的内容可以提高在生物医学图像处理方面的能力和应用水平。 ### 回答2: 《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本针对深度学习在生物医学视觉领域应用的学习和实践指南。 深度学习在生物医学视觉中具有重要的应用价值,例如通过图像识别和分割等技术来辅助医生进行疾病诊断和治疗。而PyTorch作为一种强大的深度学习框架,为进行生物医学视觉深度学习提供了方便和高效的工具。 《PyTorch生物医学视觉深度学习入门与实战--豪华版》从初级到高级提供了全面而系统的学习内容。书中首先介绍了深度学习的基础知识和常用算法,以及PyTorch的基本使用方法。然后,详细探讨了如何在生物医学视觉领域中应用深度学习,包括图像分割、图像分类、目标检测等任务的具体方法和实践。 此外,《PyTorch生物医学视觉深度学习入门与实战--豪华版》还提供了大量的实际案例和代码示例,读者可以通过实践来巩固所学知识。书中也讨论了一些生物医学数据集的特点和处理方法,以及常用性能评估指标的使用。 总的来说,《PyTorch生物医学视觉深度学习入门与实战--豪华版》旨在帮助读者快速入门和应用深度学习技术解决生物医学视觉问题。无论是初学者还是有一定基础的研究人员都可以从中获得深入的学习和实践经验,从而在生物医学领域取得更好的成果。 ### 回答3: 《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本关于使用PyTorch进行生物医学图像处理和深度学习的书籍。本书旨在帮助读者从零开始了解如何使用PyTorch来处理生物医学图像,并深入学习深度学习算法在生物医学图像分析中的应用。 该书首先介绍了PyTorch这一热门的深度学习框架的基本概念和使用方法,包括Tensor、模型构建、前向传播、反向传播等。然后,书中讲解了生物医学图像处理的基础知识,如图像预处理、增强和分割等技术。 在掌握了基础知识之后,读者将逐步学习应用深度学习算法处理生物医学图像的方法。书中以一系列实战项目为例,涵盖了多个生物医学图像处理任务,如肺部结节检测、乳腺癌识别、皮肤病分类等。每个项目都介绍了该任务的背景和重要性,然后详细讲解了使用PyTorch实现的具体步骤。 此外,该书还特别强调了实践的重要性。每个实战项目都包括了详细的代码示例和完整的代码实现,读者可以根据书中的指导逐步实现项目,并通过实践加深对深度学习和生物医学图像处理的理解。 总之,《PyTorch生物医学视觉深度学习入门与实战--豪华版》是一本全面介绍如何使用PyTorch进行生物医学图像处理和深度学习的书籍。它可以帮助读者从零开始学习并掌握相关知识和技能,并通过实际项目的实战经验,进一步提升自己在生物医学视觉深度学习领域的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值