pycharm笔记-动手学深度学习(李沐)线性代数课后习题

1.证明一个矩阵𝐀的转置的转置是,即(𝐀⊤)⊤=𝐀(A⊤)⊤=A。

#创建一个5*4的矩阵
import torch
A = torch.arange(20).reshape(5, 4)
print(A.T.T == A)

2.给出两个矩阵𝐀和𝐁,证明“它们转置的和”等于“它们和的转置”,即𝐀⊤+𝐁⊤=(𝐀+𝐁)⊤A⊤+B⊤=(A+B)⊤ 

A = torch.arange(12).reshape(3, 4)
B = torch.arange(12, 24).reshape(3, 4)
print((A.T+B.T) == (A+B).T)#维度要相匹配

 3.给定任意方矩阵 𝐀 , 𝐀+𝐀⊤ 总是对称的吗?为什么?
(A + AT)T = AT + (AT)T = A + AT

C = torch.arange(16).reshape(4, 4)
print((C+C.T).T == (C+C.T))

4.我们在本节中定义了形状(2,3,4)的张量X。len(X)的输出结果是什么?

X = torch.arange(24).reshape(2, 3, 4)
print(len(X))

输出结果:2

5.对于任意形状的张量X,len(X)是否总是对应于X特定轴的长度?这个轴是什么?

0

6.运行A/A.sum(axis=1),看看会发生什么。你能分析原因吗?

A = torch.arange(12).reshape(3, 4)
print(A/A.sum(axis=1))

 会出错,维度不匹配,需要广播机制,即要使用keepdims=True属性。

修改:

print(A/A.sum(axis=1, keepdims=True))

7.考虑一个具有形状(2,3,4)的张量,在轴0,1,2上的求和输出是什么形状?

X = torch.arange(24).reshape(2, 3, 4)
print(X)
print(X.sum(axis=0), X.sum(axis=1), X.sum(axis=2))

8.为linalg.nrom函数提供3个或更多轴的张量,并观察其输出。对于任意形状的张量这个函数计算得到什么?

np.linalg.norm(x,ord=None,axis=None,keepdims=False):用于求范数。

1.x:表示矩阵

2.ord:表示范数类型

3.axis:axis=0时,按列向量处理;axis=1时,按行向量处理。

4.keepdims:是否保持矩阵的二维特性。

D = torch.ones(2, 3, 4)
E = torch.ones(2, 3, 4, 5)
print(torch.linalg.norm(D), torch.linalg.norm(E))

 此时,linalg.norm()中的ord属性为默认值,即求D,E矩阵的元素平方和的平方根。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值