首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mxnet元素相乘

Mxnet元素相乘
EN

Stack Overflow用户
提问于 2017-08-07 14:49:59
回答 1查看 1K关注 0票数 2

在MXNet中,如果我想创建一个将每个输入相乘的权重向量,即拥有w*x_i,然后在权重w上进行反向支持,我该如何做?

我试过了:

代码语言:javascript
复制
 y_hat = input
 w1 = mx.sym.Variable("w1")
 y_hat = mx.symbol.broadcast_mul(w1, y_hat)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-07 15:14:17

您可以将计算转换为点积形式:

代码语言:javascript
复制
x = mx.nd.array([[1, 2, 3], [4, 5, 6]])
w = mx.nd.array([2,2,2])
mx.nd.dot(w, x.T)

将导致12.30。随便你。

现在只需随机初始化w,计算输出和目标输出之间的损失,然后反向传播。为此,您可以使用新的gluon接口(http://gluon.mxnet.io/)。

具体地说,让我们看一个采用http://mxnet.io/tutorials/gluon/gluon.htmlhttp://gluon.mxnet.io/P01-C05-autograd.html的最小示例

准备数据

代码语言:javascript
复制
label = mx.nd.array([12,30])
x = mx.nd.array([[1, 2, 3], [4, 5, 6]])
w = random weights
w.attach_grad()

和训练

代码语言:javascript
复制
with autograd.record():
    output = mx.nd.dot(w, x.T)
    loss = gluon.loss.L2Loss(output, label)
    loss.backward()

不要忘记使用在反向传递中计算的梯度的updating the weights。渐变将在w.grad中可用。在循环中运行训练代码和权重更新,因为单个更新可能不足以实现收敛。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45540893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档