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

个人网站开发主要问题对互联网网站的理解

个人网站开发主要问题,对互联网网站的理解,网络推广企业网站推广策划书,南京做企业网站在 TVM 的 Relay IR 中,relay.frontend.common.infer_shape(node) 和 node.checked_type.shape 都与**形状(Shape)**信息相关,但它们的用途、实现机制和性能特点有显著区别。以下是详细对比: 1. 功能区别 特性node.ch…

  在 TVM 的 Relay IR 中,relay.frontend.common.infer_shape(node)node.checked_type.shape 都与**形状(Shape)**信息相关,但它们的用途、实现机制和性能特点有显著区别。以下是详细对比:


1. 功能区别

特性node.checked_type.shaperelay.frontend.common.infer_shape(node)
数据来源直接从节点的 _checked_type_ 中读取形状信息动态计算节点的输出形状(可能触发类型推断)
依赖条件要求 node._checked_type_ 已被正确填充(通过 InferType不依赖 _checked_type_,独立计算形状
返回值返回静态类型中存储的形状(TensorType.shape返回动态推断的形状(可能包含变量或符号维度)
适用场景快速访问已知形状(如优化 pass 中)需要动态推断形状(如前端模型导入时)

2. 实现原理

node.checked_type.shape
  • 直接访问属性
    从节点的 _checked_type_(类型为 TensorType)中直接读取 shape 字段。
    例如:
    # 假设 node._checked_type_ = TensorType([1, 3, 224, 224], "float32")
    print(node.checked_type.shape)  # 输出: [1, 3, 224, 224]
    
  • 性能
    时间复杂度为 O(1),仅是属性访问,无额外计算。
relay.frontend.common.infer_shape(node)
  • 动态形状推断
    通过遍历节点的输入依赖关系,递归计算输出形状。可能涉及:
    • 算子形状推导规则(如 conv2d 的输入/输出形状关系)。
    • 符号形状的处理(如动态 batch 维度 n)。
  • 性能
    时间复杂度为 O(N)N 为依赖的子图节点数),需递归计算。

3. 运行时长的比较

场景node.checked_type.shapeinfer_shape(node)
类型已推断_checked_type_ 已填充)极快(微秒级)较慢(需重新计算)
类型未推断_checked_type_ = None返回 None 或报错必须调用,耗时长
动态形状(含符号维度)仅返回静态记录的形状支持动态推断
关键结论:
  • checked_type.shape 更快
    如果类型已推断,直接读取属性比重新计算快数个数量级。
  • infer_shape 更通用但更慢
    适用于未知类型或动态形状,但需付出计算代价。

4. **何时使用哪个?

优先使用 node.checked_type.shape 当:
  • 确定 InferType 已运行(如优化 pass 中)。
  • 需要频繁访问形状(如循环中)。
必须使用 infer_shape(node) 当:
  • 节点类型未推断(如前端模型导入时)。
  • 处理动态形状(如 shape=[n, 224, 224])。
  • 需要验证形状一致性(如自定义算子开发)。

5. **代码示例

示例 1:静态形状访问(高效)
# 假设已调用 InferType
mod = relay.transform.InferType()(mod)
node = mod["main"].body
print(node.checked_type.shape)  # 直接读取
示例 2:动态形状推断(必要时)
# 前端导入模型时(类型未推断)
shape = relay.frontend.common.infer_shape(node)
print(shape)  # 动态计算

6. **性能对比实验

以下是一个简单的性能测试:

import time
import tvm
from tvm import relay# 构造一个计算图
x = relay.var("x", shape=[1, 3, 224, 224], dtype="float32")
y = relay.nn.relu(x)
mod = tvm.IRModule.from_expr(y)# 案例1:使用 checked_type.shape(需先推断类型)
mod = relay.transform.InferType()(mod)
node = mod["main"].bodystart = time.time()
for _ in range(1000):_ = node.checked_type.shape
print("checked_type.shape:", time.time() - start)  # 约 0.0001s# 案例2:使用 infer_shape
start = time.time()
for _ in range(1000):_ = relay.frontend.common.infer_shape(node)
print("infer_shape:", time.time() - start)        # 约 0.1s

结果
checked_type.shapeinfer_shape 快约 1000 倍。


7. **注意事项

  • 一致性风险
    若手动修改了图结构(如删除节点),需重新调用 InferType,否则 checked_type.shape 可能过期。
  • 动态形状限制
    checked_type.shape 无法处理符号维度(如 n),而 infer_shape 可以。

总结

  • 速度node.checked_type.shape 远快于 infer_shape(node)(前提是类型已推断)。
  • 灵活性infer_shape(node) 支持动态场景,但代价较高。
  • 最佳实践
    • 在优化 pass 中优先使用 checked_type.shape
    • 在前端导入或处理动态形状时使用 infer_shape

文章转载自:

http://c7OdouPm.fhtmp.cn
http://0GAdQt26.fhtmp.cn
http://WB046nVO.fhtmp.cn
http://mAwPNuFs.fhtmp.cn
http://zpKB3y8N.fhtmp.cn
http://9uxtVuQl.fhtmp.cn
http://4UsIc5Xy.fhtmp.cn
http://KXs8BJDE.fhtmp.cn
http://QFhqm9QD.fhtmp.cn
http://aGdH5gPu.fhtmp.cn
http://1YKREAHK.fhtmp.cn
http://UwV10jKu.fhtmp.cn
http://I941o6OZ.fhtmp.cn
http://zIkDR81S.fhtmp.cn
http://c14cW75X.fhtmp.cn
http://ebIIwIdJ.fhtmp.cn
http://aPxCR0l2.fhtmp.cn
http://jwxJAu8T.fhtmp.cn
http://GCFTHxXo.fhtmp.cn
http://3UpsIpzp.fhtmp.cn
http://U3ODPZLv.fhtmp.cn
http://si08BJdb.fhtmp.cn
http://qZOt39he.fhtmp.cn
http://wZw7AkeL.fhtmp.cn
http://AVEZK7Vs.fhtmp.cn
http://jL1sEL7G.fhtmp.cn
http://Qv999bqz.fhtmp.cn
http://rpPKq4dy.fhtmp.cn
http://OM0EeGJI.fhtmp.cn
http://rUZec76W.fhtmp.cn
http://www.dtcms.com/wzjs/692102.html

相关文章:

  • 网站建设需要摊销几年白银网站建设熊掌号
  • 旅游电子商务网站开发方案云和建设局网站
  • 做网站 传视频 用什么笔记本好沈阳城市建设学院网站
  • 全校网站建设与管理查看网站是用什么做的
  • 做网站公司深圳建公司网站
  • 白酒企业网站源码公司注册地址和经营地址不一致
  • 网站 开发 工具wordpress加载进度条
  • 淘宝客商品推广网站建设淘宝卖东西如何在网站做宣传
  • 网站设计建设公司教程公司网站优化
  • 网站申请服务器空间网站后台账户密码
  • 销售网站建设工资多少西部数码域名注册官网
  • 兰州网站备案谁家做天津做网站价格
  • 北京建网站报价网络销售公司怎么运作
  • 贵阳网站建设wordpress后台登不了是什么原因
  • 判断电脑和手机访问网站h5企业网站定制排名
  • 网站建设与管理适合男的还是女的网络营销的认识
  • 扁平化的网站结构图360建筑网官网入口官方
  • 门户网站建设多少钱aso安卓优化公司
  • 广宁网站建设wordpress 跳转 文章
  • 网站制作器软件下载百度手机助手app安卓版官方下载
  • 免费建站系统怎么用拼多多网站建设过程
  • 买域名做网站遂宁公司做网站
  • 舟山市规划建设局网站青岛建站公司电话
  • 高校网站站群电子商务概论知识点
  • 相亲网与做网站网站流量外流
  • 天津市建设公司网站装修设计收费标准2022
  • 门户网站建设公司市场专业品牌网站设计公司
  • 蕲春县住房和城乡建设局网站网站建设科技北京有限公司
  • 厦门的网站建设公司哪家好网站建设找推推蛙
  • 加强公司网站平台建设的意义网站被墙了怎么办