当前位置: 首页 > wzjs >正文

软件网站开发公司站长工具seo综合查询分析

软件网站开发公司,站长工具seo综合查询分析,wordpress最新版下载,连云港人才专业化网站PyTorch,简称Torch,主流的经典的深度学习框架,如果你只想掌握一个深度学习框架,那就毫不犹豫的选择他吧! Tensor概述 1. 概念 张量是一个多维数组,通俗来说可以看作是扩展了标量、向量、矩阵的更高维度的…

PyTorch,简称Torch,主流的经典的深度学习框架,如果你只想掌握一个深度学习框架,那就毫不犹豫的选择他吧!

Tensor概述

1. 概念

张量是一个多维数组,通俗来说可以看作是扩展了标量、向量、矩阵的更高维度的数组。张量的维度决定了它的形状(Shape),例如:

  • 标量 是 0 维张量,如 a = torch.tensor(5)

  • 向量 是 1 维张量,如 b = torch.tensor([1, 2, 3])

  • 矩阵 是 2 维张量,如 c = torch.tensor([[1, 2], [3, 4]])

  • 更高维度的张量,如3维、4维等,通常用于表示图像、视频数据等复杂结构。

2. 特点

  • 动态计算图:PyTorch 支持动态计算图,这意味着在每一次前向传播时,计算图是即时创建的。

  • GPU 支持:PyTorch 张量可以通过 .to('cuda') 移动到 GPU 上进行加速计算。

  • 自动微分:通过 autograd 模块,PyTorch 可以自动计算张量运算的梯度,这对深度学习中的反向传播算法非常重要。

3. 数据类型

PyTorch中有3种数据类型:浮点数、整数、布尔。其中,浮点数和整数又分为8位、16位、32位、64位,加起来共9种。

为什么要分为8位、16位、32位、64位呢?

场景不同,对数据的精度和速度要求不同。通常,移动或嵌入式设备追求速度,对精度要求相对低一些。精度越高,往往效果也越好,自然硬件开销就比较高。

Tensor的创建 

torch.tensor 创建

示例

import torch
import numpy as npdef test001():# 1. 用标量创建张量tensor = torch.tensor(5)print(tensor.shape)# 2. 使用numpy随机一个数组创建张量tensor = torch.tensor(np.random.randn(3, 5))print(tensor)print(tensor.shape)# 3. 根据list创建tensortensor = torch.tensor([[1, 2, 3], [4, 5, 6]])print(tensor)print(tensor.shape)print(tensor.dtype)if __name__ == '__main__':test001()

torch.Tensor

注意这里的Tensor是大写,该API根据形状创建张量,其也可用来创建指定数据的张量。

import torch
import numpy as npdef test002():# 1. 根据形状创建张量tensor1 = torch.Tensor(2, 3)print(tensor1)# 2. 也可以是具体的值tensor2 = torch.Tensor([[1, 2, 3], [4, 5, 6]])print(tensor2, tensor2.shape, tensor2.dtype)tensor3 = torch.Tensor([10])print(tensor3, tensor3.shape, tensor3.dtype)# 指定tensor数据类型tensor1 = torch.Tensor([1,2,3]).short()print(tensor1)tensor1 = torch.Tensor([1,2,3]).int()print(tensor1)tensor1 = torch.Tensor([1,2,3]).float()print(tensor1)tensor1 = torch.Tensor([1,2,3]).double()print(tensor1)if __name__ == "__main__":test002()

 torch.Tensor与torch.tensor区别

创建线性和随机张量

在 PyTorch 中,可以轻松创建线性张量和随机张量。

使用torch.arange 和 torch.linspace 创建线性张量:

示例

import torch
import numpy as np# 不用科学计数法打印
torch.set_printoptions(sci_mode=False)def test004():# 1. 创建线性张量r1 = torch.arange(0, 10, 2)print(r1)# 2. 在指定空间按照元素个数生成张量:等差r2 = torch.linspace(3, 10, 10)print(r2)r2 = torch.linspace(3, 10000000, 10)print(r2)if __name__ == "__main__":test004()
随机数种子

随机数种子(Random Seed)是一个用于初始化随机数生成器的数值。随机数生成器是一种算法,用于生成一个看似随机的数列,但如果使用相同的种子进行初始化,生成器将产生相同的数列。

torch.manual_seed(123)

 

随机张量

在 PyTorch 中,种子影响所有与随机性相关的操作,包括张量的随机初始化、数据的随机打乱、模型的参数初始化等。通过设置随机数种子,可以做到模型训练和实验结果在不同的运行中进行复现。

创建单位矩张量

创建主对角线上为1的单位张量

data = torch.eye(4)# 4:代表是4阶的单位矩阵

Tensor常见属性

张量有device、dtype、shape等常见属性,知道这些属性对我们认识Tensor很有帮助。

Tensor数据转换

1. Tensor与Numpy

Tensor和Numpy都是常见数据格式,惹不起~

1.1 张量转Numpy

此时分内存共享和内存不共享~

1.1.1 浅拷贝

调用numpy()方法可以把Tensor转换为Numpy,此时内存是共享的。

# 1. 张量转numpydata_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])data_numpy = data_tensor.numpy()print(type(data_tensor), type(data_numpy))# 2. 他们内存是共享的data_numpy[0, 0] = 100print(data_tensor, data_numpy)

 

1.1.2 深拷贝

使用copy()方法可以避免内存共享:

data_numpy = data_tensor.numpy().copy()print(type(data_tensor), type(data_numpy))

此时他们内存是不共享的

2. Tensor与图像

2.1 图片转Tensor

示例

import torch
from PIL import Image
from torchvision import transforms
import osdef test001():dir_path = os.path.dirname(__file__)file_path = os.path.join(dir_path,'img', '1.jpg')file_path = os.path.relpath(file_path)print(file_path)# 1. 读取图片img = Image.open(file_path)# transforms.ToTensor()用于将 PIL 图像或 NumPy 数组转换为 PyTorch 张量,并自动进行数值归一化和维度调整# 将像素值从 [0, 255] 缩放到 [0.0, 1.0](浮点数)# 自动将图像格式从 (H, W, C)(高度、宽度、通道)转换为 PyTorch 标准的 (C, H, W)transform = transforms.ToTensor()img_tensor = transform(img)print(img_tensor)

 # transforms:对图片处理,比如图片增强,缩放,裁剪等

2.2 Tensor转图片

示例

import torch
from PIL import Image
from torchvision import transformsdef test002():# 1. 随机一个数据表示图片img_tensor = torch.randn(3, 224, 224)# 2. 创建一个transformstransform = transforms.ToPILImage()# 3. 转换为图片img = transform(img_tensor)img.show()# 4. 保存图片img.save("./test.jpg")

Tensor常见操作

阿达玛积

阿达玛积是指两个形状相同的矩阵或张量对应位置的元素相乘。它与矩阵乘法不同,矩阵乘法是线性代数中的标准乘法,而阿达玛积是逐元素操作。假设有两个形状相同的矩阵 A和 B,它们的阿达玛积 C=A∘B定义为:

 同型矩阵,相同位置元素相乘

def test001():data1 = torch.tensor([[1, 2, 3], [4, 5, 6]])data2 = torch.tensor([[2, 3, 4], [2, 2, 3]])print(data1 * data2)def test002():data1 = torch.tensor([[1, 2, 3], [4, 5, 6]])data2 = torch.tensor([[2, 3, 4], [2, 2, 3]])print(data1.mul(data2))

张量拼接

在 PyTorch 中,cat 和 stack 是两个用于拼接张量的常用操作,但它们的使用方式和结果略有不同:

  • cat:在现有维度上拼接,不会增加新维度。

  • stack:在新维度上堆叠,会增加一个维度。

http://www.dtcms.com/wzjs/161435.html

相关文章:

  • 中国建设银行网站主要功能动态网站的制作与设计
  • 网站建设策划 流程图今日国家新闻
  • 怎样做交互式网站免费建站哪个网站最好
  • 个人网站备案后做游戏今天最新新闻国内大事件
  • 基于asp的网络课程网站开发综合性b2b电子商务平台网站
  • 做网站公司无锡seo学徒是做什么
  • 什么网站上做推广线上直播营销策划方案
  • 有哪些网站可以兼职做笔译教育培训机构官网
  • 苏州物联网app开发公司aso安卓优化
  • 萍乡做网站电脑优化是什么意思
  • 南京汽车 企业 网站建设成都比较靠谱的seo
  • 铜川矿业公司网站网络营销知名企业
  • 有专门做ppt的网站有哪些网络排名优化软件
  • 郑州做网站公司谷歌商店下载安装
  • 网站建设问题大全宁波seo在线优化哪家好
  • 有哪些免费做外贸网站国际新闻
  • saas建站平台有哪些seo推广营销靠谱
  • 宣传策划方案重庆seo主管
  • 无锡公司做网站深圳做网站的
  • 政府内部网站建设方案网页自助建站
  • 乐山北京网站建设网络营销自学网站
  • 农业公园网站建设关键词热度分析
  • 如何做赌博网站代理东莞网站营销策划
  • 学生模拟网站开发项目专业关键词排名优化软件
  • 腾讯cos wordpressseo顾问推推蛙
  • 国内好的网站建设8大营销工具
  • 嘉兴门户网站建设3d建模培训学校哪家好
  • 网站让百度收录应该怎么做台州专业关键词优化
  • wordpress这么设置导航免费seo在线优化
  • 比较好的前端网站推广运营怎么做