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

ITensors——一个聪明的张量网络库(2)

3、Index Objects (索引对象)

一个张量索引对应于一个特定的向量空间的概念被编码在分配给一个索引对象的唯一id号中:

i = Index(4)
@show i        # prints: i = (dim=4|id=577)

因为每次构建一个索引时都会分配一个新的id,所以其他单独构建的索引对象即使具有相同的维度,也不会将它们与i进行比较

j = Index(4)
j != i        # true

换句话说,比较操作(==,!=)需要两个索引对象具有相同的id,以便它们的完全相等。
为了丰富索引系统,还可以向索引中添加标签

s = Index(3,"s,Site")

要使索引对象的比较结果相等,它们必须具有相同的标记和相同的id号。

4、The ITensor Product Operator (∗) (ITensor乘积算符 * )

正如张量图统一了许多概念一样,ITensor乘积算子*也同样将许多操作统一为一个操作:

一个外积的一个简单例子是两个不共享共同索引的两个向量的乘积:

v = ITensor(i)
w = ITensor(j)
x = v * w

v2-44b01a499d591f4cc9c5ac6cc7e278f5_1440w

使用*运算符计算内积结果的标量指数没有指数,如下例所示(注意,索引不需要在相同的顺序,结果是正确的):

A = ITensor(i,j,k)
B = ITensor(k,i,j)
C = A * B

v2-8acb6ae53476cc000b422df49fb2e84a_1440w

x = scalar(C)

使用scalar函数可以输出标量函数的值。

最后,为了说明张量收缩的情况,其中只有一些指数相加,我们可以使用下面的例子:

T = ITensor(i,j,k)
M = ITensor(k,n)
R = T * M

v2-448c2ef81235053ba1820fdafe0ac9bc_1440w

在上面的例子中,要获得正确的结果,用户所需要知道的是T和M共享一个索引。

除了收缩正则张量外,*算子还可以与特殊构造的张量一起使用来操纵张量指数。下面是一个δ算符

A = ITensor(k,j)
A = A * delta(k,i)
@show hasind(A,i)     # true

v2-08af75c0673ab40b6a32af8f0580b724_1440w

或者用如下方式分割一个张量,

B = ITensor(k)
B = B * delta(k,i,j)

v2-54066ac09e55bfdedb627861ea48f69d_1440w

(Ps: 虽然我觉得上图左边画的有些不对劲,不过意思可以理解)

另一个特殊张量类型的例子是组合算符。当与另一个ITensor收缩时,一个组合器将多个索引合并为一个索引。

T = ITensor(i,j,k)
C = combiner(i,j)
cT = C * T

v2-a0bb8c99e2fb6e6cc8d5a5e97bc9b069_1440w

用共轭操作来取乘积来反转这个操作

julia> Ddag = dag(D)
ITensor ord=3 (dim=9|id=309|"CMB,Link") (dim=3|id=350|"i") (dim=3|id=907|"j,jj,jjj")
NDTensors.Combinerjulia> E = A*D
ITensor ord=2 (dim=3|id=323|"k") (dim=9|id=309|"CMB,Link")
NDTensors.Dense{Float64, Vector{Float64}}julia> E
ITensor ord=2 (dim=3|id=323|"k") (dim=9|id=309|"CMB,Link")
NDTensors.Dense{Float64, Vector{Float64}}julia> E*Ddag
ITensor ord=3 (dim=3|id=323|"k") (dim=3|id=350|"i") (dim=3|id=907|"j,jj,jjj")
NDTensors.Dense{Float64, Vector{Float64}}

v2-075dc9cd8d033682aaaa6624e9562a0a_1440w

http://www.jsqmd.com/news/642403/

相关文章:

  • 解决PyTorch与TorchVision版本冲突:从依赖管理到环境隔离的实战指南
  • bootstrap怎么给图片添加滤镜效果
  • OWL ADVENTURE新手教程:像玩游戏一样轻松玩转图像识别AI
  • 2026重庆学历提升机构实力排行榜:Top7深度测评,帮你精准避坑 - 商业科技观察
  • XSLT Apply: 实用技巧与深入解析
  • 搜索效果提升300%的多模态实战方案(工业级部署白皮书首次公开)
  • Python爬虫实战:用Requests+正则搞定马蜂窝景点评论,数据直接存TXT
  • 从零部署Orbbec Gemini2:ROS2 Humble环境下的驱动配置与多话题数据解析
  • RDP Wrapper终极指南:3步解锁Windows家庭版远程桌面完整功能
  • 基于西门子HyperLynx与Flotherm联合进行PCB焦耳热仿真的技术解析与实战指南
  • apache-seatunnel使用手册
  • SP4523锂电池充放电 SOC
  • 洞悉电爪性能特点与应用:2026年优质电爪品牌甄选实用指南 - 品牌2026
  • 终极BT下载加速指南:免费提升下载速度的完整教程
  • 多智能体五大协调模式入门到精通(非常详细),看这篇就够了!
  • 【AIAgent可靠性黄金法则】:SITS2026权威发布的5大不可妥协要素(20年架构师亲验)
  • 【数据结构与算法】第45篇:跳跃表(Skip List)
  • ITensors——一个聪明的张量网络库(3)
  • 从“AI仿生人”到“原创音乐人”:普通人如何用AI写歌、发歌、赚钱
  • 网页游戏市场每日分析|二级市场传奇页游平台排名|602游戏平台
  • JDK安装及JRE说明
  • fastapi2
  • Wazuh OVA镜像部署实战:从零搭建开源XDR-SIEM一体化平台
  • AI 到底会不会取代人类?从四大行业落地真相看程序员的“危”与“机”
  • SITS2026多模态搜索上线前48小时:一场召回率突降38%的故障溯源与反脆弱加固
  • 2026年排行好的找工作招工平台推荐 - 品牌宣传支持者
  • D3KeyHelper终极指南:5分钟掌握暗黑3技能自动化神器
  • STM32F103实战:Zbar库移植与二维码识别优化指南
  • FT232H连接Vivado出现问题2026
  • OpenVSP:快速上手指南!5分钟学会开源参数化飞机设计