当前位置:网站首页>"Hands on learning in depth" Chapter 2 - preparatory knowledge_ 2.5 automatic differentiation_ Learning thinking and exercise answers
"Hands on learning in depth" Chapter 2 - preparatory knowledge_ 2.5 automatic differentiation_ Learning thinking and exercise answers
2022-07-06 02:31:00 【coder_ sure】
List of articles
2.5. Automatic differentiation
author github link : github link
practice
- Prove a matrix A \mathbf{A} A The transpose of is A \mathbf{A} A, namely ( A ⊤ ) ⊤ = A (\mathbf{A}^\top)^\top = \mathbf{A} (A⊤)⊤=A.
- Two matrices are given A \mathbf{A} A and B \mathbf{B} B, prove “ They are transposed and ” be equal to “ They are transposed with ”, namely A ⊤ + B ⊤ = ( A + B ) ⊤ \mathbf{A}^\top + \mathbf{B}^\top = (\mathbf{A} + \mathbf{B})^\top A⊤+B⊤=(A+B)⊤.
- Given an arbitrary square matrix A \mathbf{A} A, A + A ⊤ \mathbf{A} + \mathbf{A}^\top A+A⊤ Is it always symmetrical ? Why? ?
- We define shapes in this section ( 2 , 3 , 4 ) (2,3,4) (2,3,4) Tensor
X
.len(X)
What is the output of ? - For tensors of arbitrary shape
X
,len(X)
Whether it always corresponds toX
The length of a particular axis ? What is this axis ? - function
A/A.sum(axis=1)
, See what happens . Can you analyze the reason ? - Consider a with a shape ( 2 , 3 , 4 ) (2,3,4) (2,3,4) Tensor , In the shaft 0、1、2 What shape is the summation output on ?
- by
linalg.norm
Function provides 3 Tensors of one or more axes , And observe its output . For tensors of any shape, what does this function calculate ?
Practice reference answers
- Why is it more expensive to calculate the second derivative than the first derivative ?
Because the second derivative is based on the calculation of the first derivative , Therefore, the cost of calculating the second derivative must be greater than that of the first derivative - After running the back propagation function , Run it again now , See what happens .
The complains , about Pytorch Come on , The forward process establishes a calculation diagram , Release after back propagation . Because the intermediate result of the calculation graph has been released , So the second run of back propagation will make an error . At this moment in backward Add parameters to the function retain_graph=True, You can run back propagation twice . - In the case of control flow , We calculated
d
Abouta
The derivative of , If we put variablesa
Change to random vector or matrix , What's going to happen ?
A runtime error has occurred , stay Pytorch in , Don't let the tensor derive from the tensor , Only scalar derivatives of tensors are allowed . If you want to call on a non scalar backward(), You need to pass in a gradient Parameters . - Redesign an example of finding the gradient of control flow , Run and analyze the results .
# When a The norm of is greater than 10 when , Gradient for all elements is 1 Vector ; When a The gradient of is not greater than 10 when , Gradient for all elements is 2 Vector .
def f(a):
if a.norm() > 10:
b = a
else:
b = 2 * a
return b.sum()
a = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0], requires_grad=True)
d = f(a)
d.backward()
- send f ( x ) = sin ( x ) f(x)=\sin(x) f(x)=sin(x), draw f ( x ) f(x) f(x) and d f ( x ) d x \frac{df(x)}{dx} dxdf(x) Image , The latter does not use f ′ ( x ) = cos ( x ) f'(x)=\cos(x) f′(x)=cos(x).
The latter does not use f ′ ( x ) = cos ( x ) f'(x)=\cos(x) f′(x)=cos(x), The original intention of this problem is to save all the derivative values obtained from the derivation of the function , According to these saved df
value , Draw f ′ ( x ) f'(x) f′(x)
# Import the corresponding library
import numpy as np
import torch
import matplotlib.pyplot as plt
# Make some definitions
x = np.arange(-5, 5, 0.02)# Define the argument in [5,5] Between , Every number interval 0.02
f = np.sin(x)
df = []
for i in x:
# Yes x Find the derivative for every value of
v = torch.tensor(i,requires_grad=True)
y = torch.sin(v)
y.backward()
df.append(v.grad)
# The drawing part
# Create plots with pre-defined labels.
fig, ax = plt.subplots()
ax.plot(x, f, 'k', label='f(x)')
ax.plot(x, df, 'k*', label='df(x)')
legend = ax.legend(loc='upper left', shadow=True, fontsize='x-large')
# Put a nicer background color on the legend.
legend.get_frame().set_facecolor('C0')
plt.show()
Reference material
边栏推荐
- Method of changing object properties
- SSM 程序集
- The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
- 机器学习训练与参数优化的一般过程 (讨论)
- Global and Chinese market of commercial cheese crushers 2022-2028: Research Report on technology, participants, trends, market size and share
- [Yunju entrepreneurial foundation notes] Chapter II entrepreneur test 19
- 技术管理进阶——什么是管理者之体力、脑力、心力
- 力扣今日题-729. 我的日程安排表 I
- [solution] add multiple directories in different parts of the same word document
- Exness: Mercedes Benz's profits exceed expectations, and it is predicted that there will be a supply chain shortage in 2022
猜你喜欢
vs code保存时 出现两次格式化
Keyword static
High number_ Vector algebra_ Unit vector_ Angle between vector and coordinate axis
一位博士在华为的22年
Building the prototype of library functions -- refer to the manual of wildfire
Shell script updates stored procedure to database
Httprunnermanager installation (III) - configuring myql Database & initialization data under Linux
【机器人库】 awesome-robotics-libraries
Know MySQL database
【MySQL 15】Could not increase number of max_ open_ files to more than 10000 (request: 65535)
随机推荐
RDD partition rules of spark
High number_ Vector algebra_ Unit vector_ Angle between vector and coordinate axis
有没有sqlcdc监控多张表 再关联后 sink到另外一张表的案例啊?全部在 mysql中操作
Minecraft 1.16.5 生化8 模组 2.0版本 故事书+更多枪械
Adapter-a technology of adaptive pre training continuous learning
Have a look at this generation
Blue Bridge Cup group B provincial preliminaries first question 2013 (Gauss Diary)
事故指标统计
[Yunju entrepreneurial foundation notes] Chapter II entrepreneur test 14
HDU_p1237_简单计算器_stack
机器学习训练与参数优化的一般过程 (讨论)
There are so many giants, why should we independently develop POS store cashier system?
Crawler (9) - scrape framework (1) | scrape asynchronous web crawler framework
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
[Yunju entrepreneurial foundation notes] Chapter II entrepreneur test 12
MySQL lethal serial question 1 -- are you familiar with MySQL transactions?
Shell script updates stored procedure to database
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
[coppeliasim] 6-DOF path planning