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

小白的进阶之路系列之八----人工智能从初步到精通pytorch综合运用的讲解第一部分

PyTorch Tensors

通过大量实例学习编程应用是最有效的方法。

本篇是PyTorch综合运用,旨在让读者通过一行行代码亲自掌握Pytorch工具包的各种功能,有利于大家部署自己的神经网络人工智能计算工程。

首先,载入torch库。

import torch

我们来看看一些基本的张量操作。首先,只是一些创建张量的方法:

z = torch.zeros(5, 3)
print(z)
print(z.dtype)

输出为:

tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])
torch.float32

上面,我们创建了一个5x3的矩阵,里面充满了零,并查询它的数据类型来发现零是32位浮点数,这是PyTorch的默认值。

如果你想要整数呢?你总是可以覆盖默认值:

z = torch.zeros(5, 3)
print(z)
print(z.dtype)

输出为:

tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])
torch.float32

您可以看到,当我们更改默认值时,张量在打印时有用地报告了这一点。

随机初始化学习权重是很常见的,通常会为PRNG设置一个特定的种子,以获得结果的可重复性:

torch.manual_seed(1729)
r1 = torch.rand(2, 2)
print('A random tensor:')
print(r1)r2 = torch.rand(2, 2)
print('\nA different random tensor:')
print(r2) # new valuestorch.manual_seed(1729)
r3 = torch.rand(2, 2)
print('\nShould match r1:')
print(r3) # repeats values of r1 because of re-seed

输出为:

A random tensor:
tensor([[0.3126, 0.3791],[0.3087, 0.0736]])A different random tensor:
tensor([[0.4216, 0.0691],[0.2332, 0.4047]])Should match r1:
tensor([[0.3126, 0.3791],[0.3087, 0.0736]])

PyTorch张量直观地执行算术运算。相似形状的张量可以相加、相乘等。标量操作分布在张量上:

ones = torch.ones(2, 3)
print(ones)twos = torch.ones(2, 3) * 2 # every element is multiplied by 2
print(twos)threes = ones + twos       # addition allowed because shapes are similar
print(threes)              # tensors are added element-wise
print(threes.shape)        # this has the same dimensions as input tensorsr1 = torch.rand(2, 3)
r2 = torch.rand(3, 2)
# uncomment this line to get a runtime error
# r3 = r1 + r2

输出为:

tensor([[1., 1., 1.],[1., 1., 1.]])
tensor([[2., 2., 2.],[2., 2., 2.]])
tensor([[3., 3., 3.],[3., 3., 3.]])
torch.Size([2, 3])

下面是可用的数学运算的一个小示例:

r = (torch.rand(2, 2) - 0.5) * 2 # values between -1 and 1
print('A random matrix, r:')
print(r)# Common mathematical operations are supported:
print('\nAbsolute value of r:')
print(torch.abs(r))# ...as are trigonometric functions:
print('\nInverse sine of r:')
print(torch.asin(r))# ...and linear algebra operations like determinant and singular value decomposition
print('\nDeterminant of r:')
print(torch.det(r))
print('\nSingular value decomposition of r:')
print(torch.svd(r))# ...and statistical and aggregate operations:
print('\nAverage and standard deviation of r:')
print
http://www.lryc.cn/news/2396113.html

相关文章:

  • 724.寻找数组的中心下标前缀和
  • 软考-系统架构设计师-第十六章 层次式架构设计理论与实践
  • 甘特图 dhtmlxGantt.js UA实例
  • Docker学习笔记:基础知识
  • 5.2 初识Spark Streaming
  • uv:一个现代化的 Python 依赖管理工具
  • Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等)
  • 理解解释器架构:原理、组成与运行机制全解析
  • 2025华为OD机试真题+全流程解析+备考攻略+经验分享+Java/python/JavaScript/C++/C/GO六种语言最佳实现
  • Python应用for循环临时变量作用域
  • 设计模式——桥接设计模式(结构型)
  • LLaDa——基于 Diffusion 的大语言模型 打平 LLama 3
  • Apache SeaTunnel部署技术详解:模式选择、技巧与最佳实践
  • 2. 数据结构基本概念 (2)
  • 鸿蒙5.0+ 多协议设备发现与分布式软总线技术实践
  • STM32F407寄存器操作(多通道单ADC+DMA)
  • 基于React和TypeScript的金融市场模拟器开发与模式分析
  • 剑指offer13_剪绳子
  • reverse_ssh 建立反向 SSH 连接指南 混淆AV [好东西哟]
  • vue+elementUi+axios实现分页(MyBatis、Servlet)
  • WebBuilder数据库:企业数据管理的能力引擎
  • QtWidgets,QtCore,QtGui
  • lvs-keepalived高可用群集
  • 【Elasticsearch】suggest
  • 高速收发器
  • webpack的安装及其后序部分
  • 如何利用自动生成文档工具打造出色的技术文档
  • 读《Go语言圣经记录》(二):深入理解Go语言的程序结构
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.7 R语言解题
  • nacos Sentinel zipkin docker运行