在太极编程代码中 , 我们经常会看到诸如x = ti.var(ti.i32 shape=4) , a = ti.Vector([3 4
) , a = ti.Matrix.var(3 3 dt=ti.f32 shape=(5 4)) , pixels = ti.field(dtype=float shape=(n * 2 n))这类的代码 , 其中ti.field就是域 。
作为特定领域编程语言 , 太极(taichi)编程语言还是和其他的编程语言不太一样的 。 比如这次学习的ti.field概念 。 这在太极语言中很重要也很别具一格 。 机智客看视频分享中 , 据说其创始人也很喜欢这个 , 因为这个名字其实挺妙的 , 既可以翻译成是一个域 , 也可以翻译为是一个场 。 可谓一语双关 。
那么ti.field是什么 , 其实它是一个N维的包含各种元素的全局元素张量 。 当然这里的N并不一定是指代多维 , 也可以是指代0或1 。 也就是说 , 不同的N代表着不同的意思 。 比如当N=0的时候 , 那么它是标量 。 如果N=1的话 , 那么它就是矢量 。 而如果N=2的话 , 那么这就是一个矩阵 。 当然了 , N还可以等于3 , 4 , 5等 。
而根据文档显示 , 太极官方定义的是 , 在Taichi中 , 张量是全局变量 。 张量分为稀疏张量和密集张量 。 张量的元素可以是标量 , 也可以是矩阵 。 根据官方文档的说明 , 虽然数学上矩阵被视为2D张量 , 但在Taichi中 ,张量 和 矩阵 是两个完全不同的概念 。矩阵可以用作张量元素 , 因此你可以使每个元素都是矩阵的张量 。
【编程|类似Python的太极图形编程语言和别语言不太一样的ti.field】所以作为一个全局元素 , ti.field其实比较灵活 , 也就是在初始化后 , 代码开头把它定义了 , 它就既能在Taichi里被调用也可以在Python脚本语言里被调用 。 而回到文章开头那句代码pixels = ti.field(dtype=float shape=(n * 2 n))则表示一个形状是n*2n类型是浮点的张量 。
- 核桃|核桃编程荣膺“2021中国网·科技企业先锋榜”年度品牌影响力企业
- Python|99元换新120W氮化镓遭爆抢!iQOO网页后台都崩了
- Python|2022年空调业三雄争霸, 战火在线上线下全面点燃
- iPhone SE 3最新渲染图曝光,外观类似iPhone XR
- Python|大厂高薪惯坏了年轻人?为啥大厂的年轻人越来越被公司要不起?
- Python|就差不能对着电脑生孩子了,Python的PyAutoGUI让你连鼠键都敢省了
- Python|镰刀发布Big Shuriken 3 Rev B散热器,采用新款散热风扇
- v华为“天才少年”再刷屏!一位刚拿下“编程界奥赛”冠军…任正非曾说:海外研究所要转为人才招聘所
- 编程|又有两位00后世界级猛将加入华为!
- Java|【python学习笔记】Python find()方法