强化学习-数据操作与预处理

一、访问元素

语法如图,第一列更正::,1 , 第x行,第y列

先学一下pytorch:本节内容全是基于pytorch的操作

1.导入pytorch

代码中使用torch而不是pytorch

复制代码
import torch

创建行向量arange

python 复制代码
x = torch.arange(7)
x
#output
tensor([0,1,2,3,4,5,6])

可以通过张量的shape属性来访问张量(沿每个轴的长度)的形状


复制代码
torch.randn(3, 4) 随机生成三行四列的张量
复制代码
torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])指定生成张量

X = torch.arange(12, dtype=torch.float32).reshape((3,4))

reshape函数中,使用元组来表示形状,因为形状通常由多个维度组成,而且形状是固定的,不需要修改。

例如:

  • (3, 4) 表示2维,3行4列。

  • (2, 3, 4) 表示3维,2个3x4矩阵。

为什么用元组而不是列表?

  • 形状是固定的,不需要改变,所以用不可变的元组更合适。

  • 元组在性能上略有优势,因为不可变,所以可以缓存。

复制代码
# 创建元组
shape = (3, 4)
# 在reshape中使用
X.reshape(shape)  # 传递一个元组变量

torch.cat((X, Y), dim=0) - 沿着第0维拼接(行方向,垂直拼接)

torch.cat((X, Y), dim=1) - 沿着第1维拼接(列方向,水平拼接)


对张量中的所有元素进行求和,会产生一个单元素张量

复制代码
X.sum()
复制代码
tensor(66.)

广播机制

在上面的部分中,我们看到了如何在相同形状的两个张量上执行按元素操作。 在某些情况下,即使形状不同,我们仍然可以通过调用 广播机制(broadcasting mechanism)来执行按元素操作。 这种机制的工作方式如下:

  1. 通过适当复制元素来扩展一个或两个数组,以便在转换之后,两个张量具有相同的形状;

  2. 对生成的数组执行按元素操作。

复制代码
a = torch.arange(3).reshape((3, 1))
b = torch.arange(2).reshape((1, 2))
a, b

#输出

复制代码
(tensor([[0],
         [1],
         [2]]),
 tensor([[0, 1]]))

#操作

复制代码
a + b

#输出

复制代码
tensor([[0, 1],
        [1, 2],
        [2, 3]])

#都变成3行2列,通过复制自身行或者列

索引和切片

我们可以用[-1]选择最后一个元素,可以用[1:3]选择第二个和第三个元素:

除读取外,我们还可以通过指定索引来将元素写入矩阵。

复制代码
X[1, 2] = 9
X

#输出

复制代码
tensor([[ 0.,  1.,  2.,  3.],
        [ 4.,  5.,  9.,  7.],
        [ 8.,  9., 10., 11.]])

第2行3列的元素变成9


更新张量内容:

可以使用X[:] = X + YX += Y来减少操作的内存开销。


要将大小为1的张量转换为Python标量,我们可以调用item函数或Python的内置函数。

深度学习存储和操作数据的主要接口是张量

相关推荐
Mid_search21 分钟前
随机排列与Fisher-Yates算法
人工智能·深度学习·强化学习·随机排列·fisher-yates
夫唯不争,故无尤也14 小时前
RL强化学习常见问题
强化学习·rl
深圳市爱派派智能科技有限公司15 小时前
从英伟达 GPU 到 RK3566 实机:Microduck 25 厘米强化学习机器人部署手记
机器人·边缘计算·强化学习·rk3566·机器人英伟达
爱听歌的周童鞋17 小时前
强化学习的数学原理 | 赵世钰 | 西湖大学 | 笔记 | Lecture 3 | Part 1 | 贝尔曼最优公式(例子-如何改进策略)
强化学习·贝尔曼最优公式·optimal policy·action value
爱听歌的周童鞋18 小时前
强化学习的数学原理 | 赵世钰 | 西湖大学 | 笔记 | Lecture 3 | Part 2 | 贝尔曼最优公式(最优策略和公式推导)
强化学习·贝尔曼最优公式·optimal policy·action value·maximization
夫唯不争,故无尤也2 天前
On-Policy Distillation(OPD)和reinforcement (RL)结合
llm·agent·强化学习·rl·opd
夫唯不争,故无尤也2 天前
Agentic Search + RL :打通从RL原理到实际训练全流程
人工智能·深度学习·机器学习·强化学习·rl
云和数据.ChenGuang3 天前
git revert回退问题
java·服务器·人工智能·git·fastapi·强化学习
魔术师Grace3 天前
Agent总出错,什么时候才该训练模型?
llm·agent·强化学习
爱听歌的周童鞋3 天前
强化学习的数学原理 | 赵世钰 | 西湖大学 | 笔记 | Lecture 2 | Part 4 | 贝尔曼公式(公式向量形式与求解)
强化学习·贝尔曼公式·matrix-vector·closed-form·iterative