深度学习-01 Pytorch

news2024/9/16 22:25:20

PyTorch是一个开源的机器学习框架,它提供了一个灵活的高级接口,可以帮助开发者构建神经网络模型以及进行深度学习的训练和推理。PyTorch基于Torch库和Lua编程语言开发而来,但在PyTorch中使用Python作为主要编程语言。PyTorch的设计目标是简单易用、灵活性强,并且可以提供高性能的计算。它的核心特点包括:
1.动态图计算:PyTorch使用动态图计算方式,这意味着在编写代码时可以直接操作和修改计算图,而不需要预先定义静态图。
2.自动求导:PyTorch能够自动计算张量的导数,这对于训练神经网络模型非常重要。开发者可以使用autograd模块轻松地定义和计算导数。
3.强大的GPU加速:PyTorch支持使用GPU进行计算,可以充分发挥GPU在深度学习任务中的性能优势。开发者可以通过简单的代码更改,将计算转移到GPU上。
4.大型社区支持:PyTorch拥有一个庞大的用户社区,有许多开发者不断贡献新的功能和工具,以及解决问题和提供支持。
5.深度学习框架的完整功能:PyTorch提供了许多用于构建和训练深度学习模型的工具和功能,如各种层、优化算法和损失函数等。

本地解释器位置: D:\deeplearning\anaconda3\envs\pytorch\python.exe

Tensboard是一个用于可视化和分析深度学习模型训练过程中中间结果的工具。它是TensorBoard的一个扩展,可用于PyTorch和TensorFlow模型。
1.Tensboard为我们提供了一个交互式的界面,可以帮助我们更好地理解我们的模型如何学习和改进。它可以显示训练过程中的损失函数变化、模型准确率、学习率等指标的趋势图。此外,Tensboard还提供了可视化工具,可以显示模型中的权重、梯度和激活值的分布情况,帮助我们分析模型的表现和瓶颈。
2.使用Tensboard非常简单,只需在代码中添加几行代码,就可以将关键的训练指标和中间结果保存到日志文件中。然后,我们可以在Tensboard界面上加载这些日志文件,即可查看模型训练的详细信息和可视化结果。

tensorboard --logdir=logs  		//打开 tensorboard生成的logs下的文件

Transforms是PyTorch中的一个重要模块,用于数据预处理和数据增强。它提供了多种常用的转换函数,可以对图像、文本、张量等进行各种操作。
在PyTorch中,数据预处理通常是在数据加载之前进行的。通过使用transforms模块,可以对原始数据进行多种操作,如缩放、裁剪、旋转、翻转、标准化等,以便更好地适应模型的训练要求。同时,transforms还可以用于数据增强,通过随机变换数据的方式来扩充训练集,提高模型的泛化能力。

tensor_trans=transforms.ToTensor()              #声明一个转换tensor类型的工具
tensor_img=tensor_trans(img)                    #转换图片类型


#一些例子
from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
from torchvision.transforms import Resize

writer=SummaryWriter("logs")
img=Image.open("hymenoptera_data/train/bees/39747887_42df2855ee.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("Normlize",img_norm)

# Resize
print(img.size)
trans_resize=transforms.Resize((512,512))
# img PIL->resize->img_resize PIL
img_resize=trans_resize(img)
# img_resize PIL->totensor->img_resize tensor
img_resize=trans_totensor(img_resize)
writer.add_image("Resize",img_resize)
print(img_resize)

# Compose - resize - 2
#还有很多方法。。。。。。

writer.close()

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

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

相关文章

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明&…

python进阶篇-day08-数据结构与算法(线性结构介绍与链表实现)

数据的存储和组织形式 程序 数据结构 算法 一. 算法介绍 概述目的 都是可以提高程序的效率(性能), 面试高频考点 数据结构介绍 数据的存储和组织形式, 同样的空间, 不同的结构, 存储的数据不同, 操作方式也不同 算法介绍 为了解决实际的业务问题, 而考虑出来的方法和思路 …

龙芯+FreeRTOS+LVGL实战笔记(新)——06添加二级按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了完善与优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以…

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截…

雷电9模拟器安装magisk和lsposed

模拟器环境配置 1、开启root 2、开启System.vmdk可写入 安装magisk 1、新建模拟器、开启root权限、并安装debug版magisk 下载地址去上面吾爱论坛作者文章下载吧!支持他一下! 2、打开magisk的app,点击安装 如果弹出获取权限,直接…

【Socket网络编程原理实践】

socket 基于 TCP/IP协议实现,在网络模型中属于传输层 Java 网络编程中的核心概念 IP 地址:用于标识网络中的计算机端口号:用于标识计算机上的应用程序或进程Socket(套接字):网络通信的基本单位&#xff0…

冒泡排序算法介绍

冒泡排序算法介绍 如果真的累了,就拉上窗帘关上手机关掉闹钟深呼吸一口气钻进被窝,好好地睡一觉,难熬的日子总需要一些温暖,而什么都不如被窝的温暖来的踏实。 冒泡排序是一种经典的排序算法,它通过重复遍历待排序的序…

如何恢复回收站中已删除/清空的文件

回收站清空后如何恢复已删除的文件?是否可以恢复永久删除的文件?或者最糟糕的是,如果文件直接被删除怎么办?本文将向您展示清空回收站后恢复已删除数据的最佳方法。 回收站清空后如何恢复已删除的文件? “回收站清空后…

从零开始搭建GPU深度学习环境(pytorch)

傻乎乎的我,突然发现我自己的笔记本电脑居然有gpu,这个电脑是我弟在2017年购入的。 电脑已经按照了cpu环境,现在增加gpu环境 参考torch的cpu版本和gpu版本有什么区别 torch与cuda版本_mob64ca13f6035c的技术博客_51CTO博客 前言&#xff1a…

Vue3使用Uni-ui的popup弹出层组件

由于uni-ui中有些组件文档的基于vue2编写的,比如popup组件 下面是vue3的写法 除了文档中要求的aleterDialog外,还得利用v-if设置一个isDialog判断 // template // script 解决

数学建模笔记——TOPSIS[优劣解距离]法

数学建模笔记——TOPSIS[优劣解距离法] TOPSIS(优劣解距离)法1. 基本概念2. 模型原理3. 基本步骤4. 典型例题4.1 矩阵正向化4.2 正向矩阵标准化4.3 计算得分并归一化4.4 python代码实现 TOPSIS(优劣解距离)法 1. 基本概念 C. L.Hwang和 K.Yoon于1981年首次提出 TOPSIS(Techni…

【Linux网络】详解TCP协议(1)

🎉博主首页: 有趣的中国人 🎉专栏首页: Linux网络 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 TCP协议 的相关内容。 如果看到最后您觉得这篇文章写得不错&am…

力扣每日一题 有序数组的平方 双指针 逆向思维

Problem: 977. 有序数组的平方 👨‍🏫 灵神题解 class Solution {public int[] sortedSquares(int[] nums) {int n nums.length;int [] ans new int[n];int p n-1;int i 0;int j n-1;while(p > 0){int x nums[i] * nums[i];int y nums[j] * n…

结构体小知识

目录 前言1.结构体数组1.1结构体数组理解1.2结构体数组知识运用1.3 -> 操作符 2. 知识拓展 前言 本期blog是对上一期指针知识的知识补充,如果各位大佬感兴趣的话,可以结合起来一起看! 1.结构体数组 1.1结构体数组理解 结构体数组在本…

关系的规范化与范式详解

在数据库设计中,关系的规范化是确保数据结构合理性、减少冗余和异常的关键步骤。如果你是一个数据库设计的初学者,这篇文章将为你深入浅出地讲解 关系规范化 和 范式 的核心概念,并通过简洁的示例帮助你加深理解。 关系的规范化:…

JavaScript进阶day1

目录 1.作用域 1.1 局部作用域 1.2 全局作用域 1.3 作用域链 1.4 JS垃圾回收机制 1.4.1 什么是垃圾回收机制? 1.4.2 内存的生命周期 1.4.3 算法说明 1.5 闭包 1.6 变量提升 2.函数进阶 2.1 函数提升 2.2 函数参数 2.2.1 动态参数 2.2.2 剩余参数 2.…

GB2312编码(加2020H、8080H原理)

区位码、内码、国标码 转换及原理 背景答题思考相关资料 背景 问题: 某汉字的国标码为5650H,那么它的机内码为( B )。A E6E0H B D6D0H C C6C0H D 8080H答题 思考 为什么要加上2020H和8080H?区位码、内码、国标码怎么转换非常简单…

【硬件知识】关于RAM的“那些事”

文章目录 一、DRAM(动态随机存取存储器)二、SRAM(静态随机存取存储器)三、DRAM和SRAM的差异与区别 一、DRAM(动态随机存取存储器) 工作原理:DRAM使用电容来存储数据。每一位数据通过一个电容和…

【深度学习讲解笔记】第1章-机器学习基础

1.机器学习是什么 机器学习(Machine Learning,ML),顾名思义就是让机器学会做一件事情,比如语音识别,机器听一段声音,产生这段声音对应的文字。或是识别图片中有几个人,几辆车。这些…

2024年语音识别转文字工具的崛起

无论是繁忙的会议记录、远程教学的即时笔记,还是日常生活的语音备忘,只需轻轻一说,便能瞬间转化为清晰可编辑的文字,这种便捷与高效无疑为现代生活增添了无限可能。本文将带你深入探索语音识别转文字工具的奥秘。 1.365在线转文字…