当前位置: 首页 > news >正文

找个网站杭州模板建站代理

找个网站,杭州模板建站代理,网上做兼职网站,网络项目资源网首先不得不佩服大模型的强大之处,在算法移植过程中遇到einsum算子在ONNX中不支持,因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法,但是该方法会…

     首先不得不佩服大模型的强大之处,在算法移植过程中遇到einsum算子在ONNX中不支持,因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法,但是该方法会导致训练时还是推理都很慢,并且会消耗大量显存,造成显存溢出的问题。。因此采用提问文心一言,没想到居然真的回答正确了。当然替换需要验证,不是全对的。
1.einsum(delta, A, ‘b l d_in, d_in n -> b l d_in n’) 的替换,以下两个方法均可以

deltaA = torch.exp(einsum(delta, A, 'b l d_in, d_in n -> b l d_in n'))
deltaA = torch.exp(delta.unsqueeze(dim=3)*A.unsqueeze(dim=0).unsqueeze(dim=0))
deltaA = torch.exp(delta.unsqueeze(-1).repeat_interleave(A.shape[1], dim=-1) * A)

2.einsum(x, C[:, i, :], ‘b d_in n, b n -> b d_in’),以下两个方法均可以

    y = einsum(x, C[:, i, :], 'b d_in n, b n -> b d_in')y = (x*C[:, i, :].unsqueeze(dim=1)).sum(dim=2)y = torch.matmul(C[:, i, :], x.transpose(-1, -2)).squeeze(1)

3.einsum(delta, B, u, ‘b l d_in, b l n, b l d_in -> b l d_in n’),以下两个方法均可以

deltaB_u = einsum(delta, B, u, 'b l d_in, b l n, b l d_in -> b l d_in n')
deltaB_u1 = delta.unsqueeze(dim=3)*B.unsqueeze(dim=2)*u.unsqueeze(dim=3)

下述方法是提问文心一言的办法,注意需要将答案的结果和einsum的结果进行对比,采用np.testing.assert_allclose(deltaB_u.numpy(),deltaB_u1.numpy(),rtol=1e-05,atol=1e-05)和print(deltaA.equal(deltaA_manual))均可以。

import torch
import numpy as np
from einops import rearrange, repeat, einsum
# 给定的张量
delta = torch.ones([1, 3, 2])
A = torch.ones([2, 4])
deltaA = torch.exp(einsum(delta, A, 'b l d_in, d_in n -> b l d_in n'))
deltaA1 = torch.exp(delta.unsqueeze(dim=3)*A.unsqueeze(dim=0).unsqueeze(dim=0))
deltaA_manual = torch.exp(delta.unsqueeze(-1).repeat_interleave(A.shape[1], dim=-1) * A)
np.testing.assert_allclose(deltaA.numpy(),deltaA1.numpy(),rtol=1e-05,atol=1e-05)# 扩展 delta 的维度,以便它可以与 A 进行广播(broadcast)
# 这里我们使用 unsqueeze 和 repeat_interleave 来扩展维度
delta_expanded = delta.unsqueeze(-1).repeat_interleave(A.shape[1], dim=-1)
# 执行逐元素的乘法,然后取指数
deltaA_manual = torch.exp(delta_expanded * A)# 注意:deltaA_manual 的形状是 [1, 3, 2, 4],这与 einsum 的输出形状一致
print(deltaA.equal(deltaA_manual))
print(deltaA1.equal(deltaA_manual))

请添加图片描述
请添加图片描述
请添加图片描述

http://www.yayakq.cn/news/534514/

相关文章:

  • 网络传媒有限公司网站优化方案和实施
  • 亚马逊品牌备案网站怎么做数码产品商城网站建设
  • 建网站用html二维码图片
  • 北京互联网网站建设价格建设管理部门网站查询
  • 武穴市网站两学一做网站宣传册怎么做的
  • 鞍山做网站企业网站qq 微信分享怎么做的
  • 高端网站建设专家北京丰台区做网站公司
  • 山东外贸网站建设是什么成立公司需要什么材料和手续
  • 怎样做网站的链接wordpress 更改数据表
  • 湘潭网站建设选择磐石网络wordpress熊掌号
  • jfinal网站开发网站建设客户调研表
  • 做产品推广有网站比较好的做网站如何报价
  • 主流做网站程序代码wordpress vs php的区别
  • 做百度网站营业执照用注销吗怎么设置wordpress头像
  • 淘宝网站推广门户网站免费建设
  • 网站幻灯通栏代码重庆中国建设监理协会网站
  • 网站如何做淘宝支付宝支付嘉兴制作网站机构
  • 北京通州区网站建设微网站内容
  • 手机单页网站模板天猫购买平台
  • 建设部政务网站建设ppt制作软件模板网站
  • 贸易网站开发音乐网站毕业设计代码
  • 自己怎么做装修网站企业做网站的目的是什么
  • 网站建设的大概费用毕业设计网站用什么做
  • 百丽优购物官方网站惠东网站开发
  • 泰安三合一网站建设公司网站内容策划
  • 网站开发后台一般用什么张掖建设网站
  • 徐州网站开发案例软件推广怎么做
  • 成都网站建设cdajcx沈阳网站建设联系方式
  • 电商网站建设与开发期末考试网站建网站建设网页
  • 帝国cms怎么做音乐网站wordpress获取文章一个tag标签