锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. 深度学习-02 Pytorch

深度学习-02 Pytorch

0
  • 软件开发
  • 发布于 2024-09-26
  • 0 次阅读
黄健
黄健

torchvision是一个用于计算机视觉任务的Python包,它是PyTorch的一个扩展库。它提供了一些流行的数据集、模型架构和图像转换函数,以方便用户进行计算机视觉任务的开发和研究。
1.torchvision中包含了许多常用的计算机视觉数据集,如MNIST、CIFAR10、CIFAR100和ImageNet等。用户可以通过简单的接口加载这些数据集,并进行数据预处理、数据增强和数据加载等操作。

2.此外,torchvision还提供了一些常用的计算机视觉模型架构,如AlexNet、VGG、ResNet和DenseNet等。用户可以使用这些预训练的模型,或者根据自己的需求进行微调。

3.在图像转换方面,torchvision提供了一系列的图像预处理和数据增强函数,如裁剪、缩放、翻转、旋转、亮度调整和颜色增强等。这些函数可以用来对图像进行预处理,以提高模型的训练效果。

import torchvision
from torch.utils.tensorboard import SummaryWriter

dataset_transform=torchvision.transforms.Compose([
    torchvision.transforms.ToTensor()
])


# train_set=torchvision.datasets.CIFAR10("./dataset",train=True,download=True)
# test_set=torchvision.datasets.CIFAR10("./dataset",train=False,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()

# 把所有图片转换为tensor类型
train_set=torchvision.datasets.CIFAR10("./dataset",train=True,transform=dataset_transform,download=True)
test_set=torchvision.datasets.CIFAR10("./dataset",train=False,transform=dataset_transform,download=True)
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()

DataLoader是PyTorch库中的一个实用工具,用于加载和预处理数据,以供训练和测试深度学习模型使用。它提供了许多功能,使数据加载变得更加高效和灵活。DataLoader的主要功能包括:
1.数据加载和预处理:DataLoader能够自动加载数据,并在需要时进行预处理。它可以从本地磁盘、网络或其他数据源中加载数据,并将其转换为PyTorch张量格式。它还支持数据增强操作,例如随机裁剪、翻转和旋转,以增加训练数据的多样性。

2.批处理和并行处理:DataLoader能够将数据分成小批量进行处理,以加快训练过程。它还支持使用多个CPU核心或GPU对数据进行并行处理,以提高训练的效率。

3.数据打乱和重复:DataLoader能够自动打乱数据的顺序,并可以设置数据的重复次数,以增加训练的随机性和多样性。

4.数据加载器的配置和使用:DataLoader提供了丰富的配置选项,可以根据具体需求进行调整。它还提供了简单易用的API,使得数据加载和使用变得更加方便。

卷积层(Convolutional Layer)是神经网络中的核心层级,它能够对输入数据进行特征提取。它通过使用一系列的卷积核(也称为过滤器)对输入数据进行卷积操作,从而生成一系列的特征图。卷积操作实际上是通过卷积核与输入数据的局部区域进行点乘运算,并将结果求和得到一个特征元素。通过在不同的位置应用不同的卷积核,卷积层能够提取出不同的特征,例如边缘、纹理等。卷积层的输出通常会经过非线性激活函数(如ReLU)进行激活。

池化层(Pooling Layer)是用于降低卷积层输出数据的空间维度的层级。它通过对输入数据的局部区域进行池化运算,生成一个池化特征。池化操作通常有两种方式:最大池化和平均池化。最大池化选取局部区域中的最大值作为池化特征,而平均池化则是取局部区域的平均值。池化层的作用是减小特征图的尺寸,同时保留重要的特征。这样可以减少网络的参数数量,加快计算速度,并且能够提高模型的鲁棒性。

卷积层和池化层通常会交替使用,构成深度卷积神经网络。通过多层的特征提取,网络能够逐渐学习到更加抽象和高级的特征,从而提高模型的性能。

在深度学习中,非线性是指输入和输出之间存在复杂的关系,无法用简单的线性方程来描述。这种非线性关系常常出现在图像、语音和自然语言处理等领域中,因为这些领域的数据具有高度的复杂性和多样性。
PyTorch提供了许多非线性函数,如激活函数和损失函数,以帮助我们建立非线性的神经网络模型。

在PyTorch中,可以使用nn.BatchNorm2d和nn.Dropout等层来实现正则化。可以帮助提高神经网络的泛化能力,并减少过拟合的风险。根据具体的网络结构和任务需求,可以选择合适的正则化层来进行模型训练。

原文链接: https://blog.csdn.net/qq_53568730/article/details/142058547

标签: #算法 139
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.