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

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

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

pycharm笔记-动手学深度学习(李沐)线性代数课后习题_第1张图片

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)#维度要相匹配

pycharm笔记-动手学深度学习(李沐)线性代数课后习题_第2张图片

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

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

pycharm笔记-动手学深度学习(李沐)线性代数课后习题_第3张图片

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))

pycharm笔记-动手学深度学习(李沐)线性代数课后习题_第4张图片

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))

pycharm笔记-动手学深度学习(李沐)线性代数课后习题_第5张图片

pycharm笔记-动手学深度学习(李沐)线性代数课后习题_第6张图片

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矩阵的元素平方和的平方根。

你可能感兴趣的:(深度学习,python)