动手学深度学习--基础知识上篇

news/2024/11/17 19:52:31/

🎈动手学deep learning
☁️本专栏会定期更新关于动手学深度学习的每章知识点的讲解,题目答案
👻如果喜欢,欢迎点赞,收藏

动手学深度学习-预备知识篇

线性代数篇

1-3题讲解

  1. 证明一个矩阵 A \mathbf{A} A的转置的转置是 A \mathbf{A} A,即 ( A ⊤ ) ⊤ = A (\mathbf{A}^\top)^\top = \mathbf{A} (A)=A
import torch as tc
A = torch.arange(24,dtype = torch.float32).reshape(4,-1)
print(1,A),print(1,(A.T).T)
  • 运行结果

第一题图解
2. 给出两个矩阵 A \mathbf{A} A B \mathbf{B} B,证明“它们转置的和”等于“它们和的转置”,即 A ⊤ + B ⊤ = ( A + B ) ⊤ \mathbf{A}^\top + \mathbf{B}^\top = (\mathbf{A} + \mathbf{B})^\top A+B=(A+B)

# 2.证明两个矩阵的转置的和等于矩阵和的转置
A1 = torch.arange(24,dtype = torch.float32).reshape(4,-1)+2
print(A.T+A1.T),print((A+A1).T)
  • 运行结果

在这里插入图片描述
3. 给定任意方阵 A \mathbf{A} A A + A ⊤ \mathbf{A} + \mathbf{A}^\top A+A总是对称的吗?为什么?

# 3.对于任意给定的*方*阵A,总是有A+A.T是对称矩阵???
Z = torch.arange(16,dtype = torch.float32).reshape(4,-1)
print(3,Z+Z.T),print(3,(Z+Z.T).T)
Y = torch.tensor(([4,2,3,4],[42,12,56,88],[74,32,12,44],[9,93,32,12]))
print((Y+Y.T)),print((Y+Y.T).T)
  • 运行结果

第三个图片啦

4-9题讲解

  1. 本节中定义了形状 ( 2 , 3 , 4 ) (2,3,4) (2,3,4)的张量Xlen(X)的输出结果是什么?
# 4.X = torch.arange(24,dtype = torch.float32).reshape(2,3,4),求len(X)
X = torch.arange(24,dtype = torch.float32).reshape(2,3,4)
print(len(X),len(X[1]),print(X))
  • 运行结果

第四道题,输出多几个不过分吧
5. 对于任意形状的张量X,len(X)是否总是对应于X特定轴的长度?这个轴是什么?

# 5.给定一个任意的张量,要指出len(X)是对应的那个轴的长度,这个轴是什么
X1 = tc.ones(24).reshape(6,-1)  #轴度为2
print(len(X1))                  
X2 = tc.arange(24).reshape(4,2,-1) #轴度为3
print(len(X2))
W = tc.zeros(30)             #轴度为1
print(len(W))
  • 运行结果

第五道题目
6. 运行A/A.sum(axis=1),看看会发生什么。请分析一下原因?
在这里插入图片描述

  • 更改之后,不能再除
    在这里插入图片描述
  1. 考虑一个具有形状 ( 2 , 3 , 4 ) (2,3,4) (2,3,4)的张量,在轴0、1、2上的求和输出是什么形状?
print(X.sum(axis = 0)),print(X.sum(axis = 1)),print(X.sum(axis = 2))
  • 运行结果
    第七题,竟然是最后一个写完的
  1. linalg.norm函数提供3个或更多轴的张量,并观察其输出。对于任意形状的张量这个函数计算得到什么?
# 8.为linalg.norm函数提供3个或更多轴的张量,并观察其输出。对于任意形状的张量这个函数计算得到什么?
from math import sqrt
W1 = tc.arange(1024,dtype = torch.float32).reshape(1,2,2,256)
print(tc.norm(W1))
W2 = tc.arange(36,dtype = torch.float32).reshape(6,6)
print(tc.norm(W2) == sqrt((W2*W2).sum(axis = [0,1])))
print(sum(sum(W2*W2)))
print((W2*W2).sum(axis = [0,1]))
  • 运行结果

第八题

下篇预备知识:

1.微分学实现绘画切线
2.详解微分函数实现过程


http://www.ppmy.cn/news/1043661.html

相关文章

服务器安装centos7踩坑

1、制作启动工具 下载iso https://developer.aliyun.com/mirror/?spma2c6h.25603864.0.0.20387abbo2RFbn http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.1995f5ad4AhJaW下载 UltraISO https://cn.ultraiso.net/插入u盘启动 到了如图所示页面…

tornado如何在网页模板中显示字典

要在 Tornado 的网页模板中显示字典的键和值,你可以使用 Tornado 内置的模板引擎 tornado.template 来处理。下面是一个简单的示例: 首先,确保你已经安装了 Tornado 模块。你可以使用以下命令进行安装: pip install tornado创建…

信息学奥赛一本通 ybt 1975:【16NOIP普及组】海港 | 洛谷 P2058 [NOIP2016 普及组] 海港

【题目链接】 ybt 1975:【16NOIP普及组】海港 洛谷 P2058 [NOIP2016 普及组] 海港 【题目考点】 1. 模拟 2. 队列 【解题思路】 解法1:设队列,每个人是队列中的一个元素 由于人数总和(即k的加和)最大为 3 ∗ 1 …

Python “贪吃蛇”游戏,在不断改进中学习pygame编程

目录 前言 改进过程一 增加提示信息 原版帮助摘要 pygame.draw pygame.font class Rect class Surface 改进过程二 增加显示得分 改进过程三 增加背景景乐 增加提示音效 音乐切换 静音切换 mixer.music.play 注意事项 原版帮助摘要 pygame.mixer pygame.mix…

最大公约数题--夏令营

题目: 知识点: 1。数论-欧几里得算法-gcd最大公因数性质 证明性质2,为什么两组的公约数相等,同样,最大公约数也相等 算法表示 int gcd(int a, int b) {return b 0 ? a : gcd(b, a % b); } 2.分析题目:…

day20 | 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

目录: 解题及思路学习 654.最大二叉树 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最…

批量将excel中第5列中内容将人名和电话号码进行分列

使用Python可以使用openpyxl库来实现批量将Excel中第5列的内容分列为人名和电话号码的操作。下面是示例代码: import openpyxl def split_names_and_phone_numbers(file_path, sheet_name): # 加载Excel文件 workbook openpyxl.load_workbook(file_path) …

前端对文件转换处理的一些常用方法

文章目录 0,前言1,将图片的url网络链接(http://) 转为base64格式2,将base64的图片数据转换为file文件3,将以base64的图片数据转换为Blob4,将file文件转化为base645,将file文件转换为Blob6,获取文…