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

AI人工智能-深度学习的基本原理-第二周(小白)

数学基础

线性代数

标量

一个标量就是一个单独的数

向量

  • 一个向量是一列数
  • 可以把向量看做空间中的几个点,每个元素是不同坐标轴上的坐标
  • 向量中有几个数,就叫几维向量
  • 如4维向量:[1,2,3,4]

向量的运算

注意:以下都需要维度相同

  • 向量加和:A + B = B + A
  • 例子:[1, 2] + [3, 4] = [4, 6]
  • 向量的内积:A * B = B * A
  • 例子:[1, 2] * [3, 4] = 1 * 3 + 2 * 4 = 11
  • 向量夹角余弦
  • \cos \Theta = A * B / |A|\cdot|B|
  • 向量的模:|A| = \sqrt{x1^2 + x2^2+...+xn^2}

矩阵

是一个二维数组,矩阵中的每个值是一个标量,可以通过行号和列号进行索引。

\begin{bmatrix} 1 &2 \\ 3& 4 \end{bmatrix}  2 * 2的矩阵,\begin{bmatrix} 1 & 3\\ 2& 4\\ 3& 5 \end{bmatrix}   3 * 2的矩阵

矩阵的运算
矩阵加法(需要维度相同)

\begin{bmatrix} 1 & 2\\ 3& 4 \end{bmatrix} +\begin{bmatrix} 4 &2 \\ 3&1 \end{bmatrix} =\begin{bmatrix} 5 &4 \\ 6&5 \end{bmatrix}

矩阵乘法(不满足交换律)
  • A * B != B * A
  • 当左矩阵A的列数等于右矩阵B的行数,A与B可以相乘
  • M*N矩阵乘以N*P的矩阵得到M*P的矩阵,A ∈R^{M*N}  * B ∈R^{N*P} = C∈R^{M*P}(R代表的是实数集)

   

  • 符合分配律
  • A *(B + C) = A*B + A*C
  • 符合结合律
  • A * (B * C) = (A*B)*C
矩阵点乘

注意:两矩阵必须形状一致

同位相乘,得到的维度也没有变

\begin{bmatrix} 1 &2 \\ 3&4 \end{bmatrix}\cdot \begin{bmatrix} 1 &2 \\ 0&-1 \end{bmatrix}= \begin{bmatrix} 1 &4 \\ 0 & -4 \end{bmatrix}

常见的矩阵操作
矩阵转置(行列互换transpose)

向量<==>矩阵

[1,2,3,4] ---reshape 2*2-->\begin{bmatrix} 1 &2 \\ 3&4 \end{bmatrix}

\begin{bmatrix} 1 &2 \\ 3&4 \\ 5&6 \end{bmatrix}  ---flatten---> [1,2,3,4,5,6]

张量(tensor)

通俗的说:将三个2*2的矩阵排列在一起,就可以称为一个3*2*2的张量,将4个3*2*2的张量排列在一起,就可以称为4*3*2*2的张量

是神经网络训练中最为常见的数据形式。

所有的输入,输出,中间结果,几乎都是以张量的形式存在。

张量的常见操作

x

   x.shape = 2 * 2 * 2

x.transpose(1,2)

  x.shape = 2*2*2

作用

transpose()用于交换张量的两个指定维度

特点
  • 交换维度:只改变维度的顺序

  • 不改变数据存储:与view类似,返回视图而非副本

  • 可以交换任意两个维度:比简单的转置更灵活

语法

tensor.transpose(dim0, dim1)

import torch# 创建一个3×4的张量
x = torch.tensor([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]])
print("原始形状:", x.shape)  # torch.Size([3, 4])# 交换第0维和第1维(行和列交换)
x_t = x.transpose(0, 1)
print("转置后形状:", x_t.shape)  # torch.Size([4, 3])
print(x_t)
# tensor([[ 1,  5,  9],
#         [ 2,  6, 10],
#         [ 3,  7, 11],
#         [ 4,  8, 12]])# 对于3D张量
x_3d = torch.randn(2, 3, 4)
print("3D原始形状:", x_3d.shape)  # torch.Size([2, 3, 4])# 交换第0维和第2维
x_3d_t = x_3d.transpose(0, 2)
print("交换后形状:", x_3d_t.shape)  # torch.Size([4, 3, 2])

x.view(4,2)

  x.shape = 4*2

view()用于改变张量的形状(shape),但不改变张量中的数据本身,只改变数据的"视图"。

特点
  • 不改变数据存储:只改变数据的解释方式

  • 要求元素总数不变:新形状的元素数量必须与原形状相同

  • 返回共享存储的视图:修改view后的张量会影响原始张量

语法

tensor.view(*shape)

import torch# 原始张量
x = torch.arange(12)  # [0, 1, 2, ..., 11]
print("原始张量:", x.shape)  # torch.Size([12])# 改变形状
x_2d = x.view(3, 4)
print("2D视图:", x_2d.shape)  # torch.Size([3, 4])
print(x_2d)
# tensor([[ 0,  1,  2,  3],
#         [ 4,  5,  6,  7],
#         [ 8,  9, 10, 11]])# 再改变形状
x_3d = x.view(2, 3, 2)
print("3D视图:", x_3d.shape)  # torch.Size([2, 3, 2])# 使用-1自动计算维度大小
auto_shape = x.view(3, -1)  # -1会被自动计算为4
print("自动计算:", auto_shape.shape)  # torch.Size([3, 4])

numpy常用操作

http://www.dtcms.com/a/502970.html

相关文章:

  • 【2070】数字对调
  • 【AI智能体】Coze 提取对标账号短视频生成视频文案实战详解
  • IOT项目——ESP系列
  • 【成长纪实】Dart 与 ArkTS 函数与类的对比学习:从 Flutter 到 HarmonyOS
  • 基于 JETSON+FPGA+GMSL+AI 车载视频采集与存储系统设计(二)系统测试
  • Flutter Event Loop
  • LeetCode 1287.有序数组中出现次数超过25%的元素
  • 递归-50.Pow(x,n)-力扣(LeetCode)
  • Flutter 并发编程全解:从零掌握 Isolate
  • 跨网络互联技术(①Singbox Core-Flutter-Android)
  • 移动端网站的重要性做一款推荐类的网站
  • 用div做网站中间部分做网站是干啥的
  • 【思维导图SimpleMind Pro】SimpleMind Pro——轻量级思维导图软件完全指南:轻量专业,让思维高效可视化
  • jlink烧入软件的使用
  • 03-流程控制语句-教程
  • 【mqtt参数上云和小程序开发】【第5期】hcsr04超声波测距模块调试完成
  • 【STM32笔记】:P03 ISP 一键下载电路详解
  • 江苏省网站建设哪家好php做的购物网站
  • 常见的位运算的总结
  • CSRF(跨站请求伪造)攻击详解:原理、途径与防范
  • 【C++】使用双指针算法习题
  • 全能型 AI 模型新标杆 Qwen2.5-Omni
  • 建设银行佛山分行网站wordpress插件 评分
  • 大数据计算引擎-从源码看Spark AQE对于倾斜的处理
  • 前端基础知识---Ajax
  • 数据结构——多维数组的存储
  • 编译django做的网站网站制作 价格
  • 破解商家客服困局:真人工AI回复如何成为转型核心
  • 【Qt开发】多元素类控件(二)-> QTableWidget
  • 如何建设一个优秀的电商网站自己怎么创建微信公众号