我有一个二次损失z=(1/2)||Aw-b||^2,其中A4x2矩阵,w=[x,y]2d向量,b4d向量.如果我们画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)来绘制曲面?

推荐答案

您可以简单地执行以下操作:

Z = [[0.5 * torch.norm(torch.matmul(A, torch.tensor([float(xx), float(yy)]))-b)**2 for xx in x] for yy in y]

Update:您可以通过使用torch的微批处理功能来显著提升性能.为此,您必须将数据reshape转换为矩数组表.这意味着您必须将张量A扩展到只包含一个矩阵的列表,将张量W扩展到包含所有网格点的列表,每个网格点都是矩阵.

import plotly.graph_objects as go
import torch

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 = torch.arange(-1, 1, 0.01)
y = torch.arange(-1, 1, 0.01)
W = torch.reshape(torch.cartesian_prod(x, y), (len(x) * len(y), 2, 1))

V = torch.reshape(torch.matmul(A, W), (len(x), len(y), 4)) - b
Z = 0.5 * torch.norm(V, dim=2)**2

Python相关问答推荐

numba jitClass,记录类型为字符串

在Polars(Python库)中将二进制转换为具有非UTF-8字符的字符串变量

如何获取TFIDF Transformer中的值?

Telethon加入私有频道

OR—Tools CP SAT条件约束

如何设置视频语言时上传到YouTube与Python API客户端

Asyncio:如何从子进程中读取stdout?

判断solve_ivp中的事件

合并与拼接并举

如何获取Python synsets列表的第一个内容?

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

如何在Gekko中使用分层条件约束

为什么t sns.barplot图例不显示所有值?'

需要帮助使用Python中的Google的People API更新联系人的多个字段'

获取git修订版中每个文件的最后修改时间的最有效方法是什么?

pytest、xdist和共享生成的文件依赖项

我怎样才能让深度测试在OpenGL中使用Python和PyGame呢?

如何在表单中添加管理员风格的输入(PDF)

将标签与山脊线图对齐

正则表达式反向查找