我有一个二次损失z=(1/2)||Aw-b||^2
,其中A
是4x2
矩阵,w=[x,y]
是2d
向量,b
是4d
向量.如果我们画z
,就会有一个x,y
的曲面.我想用普洛特利图书馆绘制z
.为此,我想使用Pytorch和函数torch.norm
来计算范数.Here是一个绘制3d
曲面的示例,我想按如下方式修改它:
import plotly.graph_objects as go
import numpy as np
A = torch.tensor([[ 0.1542, -0.0682],
[ 0.8631, 0.6762],
[-1.4002, 1.1773],
[ 0.4614, 0.2431]])
b = torch.tensor([-0.2332, -0.7453, 0.9061, 1.2118])
x = np.arange(-1,1,.01)
y = np.arange(-1,1,.01)
X,Y = np.meshgrid(x,y)
W = ??????
Z = 0.5*torch.norm(torch.matmul(A, W)-b)**2
fig = go.Figure(
data=[go.Surface(z=Z, x=x, y=y, colorscale="Reds", opacity=0.5)])
fig.update_layout(
title='My title',
autosize=False,
width=500,
height=500,
margin=dict(l=65, r=50, b=65, t=90),
scene_aspectmode='cube'
)
fig.show()
Question:个
我应该如何修改W
(包括x,y
)来绘制曲面?