IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> PyTorch基础(一) -> 正文阅读

[人工智能]PyTorch基础(一)

无论哪个深度学习框架,它的张量类(PyTorch中为Tensor)都和Numpy的ndarray类似,接下来介绍的很多函数名和Numpy中的都一样,不过会比Numpy的ndarray多一些重要功能,比如张量类支持自动微分。

数据操作

创建数据

import torch
#默认创建为浮点数
x = torch.arange(12)
#访问张量的形状(沿每个轴的长度)
x.shape
#改变形状
x.reshape(3,4)
#全0初始化矩阵
torch.zeros((2,3,4))
#全1初始化矩阵
torch.ones((2,3,5))
#指定特定分布,均值为0、标准差为1的标准高斯分布
torch.randn(3,4)
#可直接为张量中的元素赋予确定值
torch.tensor([[2,1,3],[2,5,6],[8,3,1]])

Out:
在这里插入图片描述

数据运算

x = torch.tensor([1,2,3,4])
y = torch.tensor([3,4,9,5])
#按元素计算
print("x*y:",x*y)
print("exp:",torch.exp(x))

Out:
在这里插入图片描述

连结concatenate这个概念是比较常见的,SQL中,Dataframe中都很常见,我们也可以把多个张量连结在一起,在连结的时候需要给出沿哪个轴连结。

X = torch.arange(12, dtype=torch.float32).reshape((3,4))
Y = torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])
print("X:",X)
print("Y:",Y)
print("沿轴-0连结矩阵:")
torch.cat((X,Y), dim=0)
print("沿轴-1连结矩阵:")
torch.cat((X,Y), dim=1)

Out:
在这里插入图片描述

降维求和

X
X.sum(axis=0)
X.sum(axis=1)
X.sum(axis=[0,1])
X.mean()
X.numel()

Out:
在这里插入图片描述

非降维求和

X.sum(axis=1,keepdims=True)
X.sum(axis=1)

Out:
在这里插入图片描述

点积

x = torch.arange(4, dtype=torch.float32)
y = torch.ones(4, dtype=torch.float32)
torch.dot(x,y)

Out:
在这里插入图片描述

矩阵-向量积

A
x
torch.mv(A,x)

在这里插入图片描述

矩阵-矩阵乘法

A = torch.ones(3,4)
B = torch.arange(12, dtype=torch.float32).reshape((4,3))
A
B
torch.mm(A,B)

在这里插入图片描述

索引和切片

#选择最后一个元素
X[-1]
#切片
X[1:3]
#可通过指定索引更改元素
X[1,2] = 100
X
X[2,:] = 50 
X

Out:
在这里插入图片描述

转换数据类型

A = X.numpy()
B = torch.tensor(A)
print("A的类型为:",type(A))
print("B的类型为:",type(B))

Out:
在这里插入图片描述

微分

在深度学习中,通常选择对于模型参数可微的损失函数。
定义 u = f ( x ) = 3 x 2 ? 4 x u=f(x)=3x^{2}-4x u=f(x)=3x2?4x

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-3,3,100)
def f(x):
    return 3*x**2 - 4*x
def g(x):
    return 2*x - 3
plt.plot(x,f(x),color='red',linewidth=1.0,label="primitive function")
plt.plot(x,g(x),color='blue',linewidth=1.0,linestyle='--',label="Tangent line(x=1)")
plt.xlabel('x')
plt.ylabel('y')
plt.legend(loc="best")

# 显示图像
plt.show()

在这里插入图片描述

自动求导

自动求导可以使系统能够随后反向传播梯度(backpropagate)。

import torch
x = torch.arange(4.0,requires_grad=True)
print(x.grad)
#调用反向传播函数来自动计算y关于每个分量的梯度
y = 2*torch.dot(x,x)
y.backward()
print(x.grad)
#验证梯度是否正确计算
x.grad == 4*x

Out:
在这里插入图片描述

#默认情况下,PyTorch会累积梯度
x.grad.zero_()
y = x.sum()
y
y.backward()
x.grad

Out:
在这里插入图片描述
PyTorch基础(二)已更新,大家可以点击这里进行学习。

PyTorch基础系列的学习资料为:

  1. 莫烦大神的PyTorch视频教程
  2. 《Dive Into Deep Learning》
  3. PyTorch官方文档
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:42:25  更:2021-12-01 17:42:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 2:20:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码