Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是Swift Tensorflow中的#tfop?它的定义在哪里?_Swift_Tensorflow_Tensor - Fatal编程技术网

什么是Swift Tensorflow中的#tfop?它的定义在哪里?

什么是Swift Tensorflow中的#tfop?它的定义在哪里?,swift,tensorflow,tensor,Swift,Tensorflow,Tensor,我正在浏览swift tensorflow代码,偶然发现了 var result = #tfop("Mul", a, b) #tfop在文档中有很好的解释,从“它做什么”的意义上讲,但我也对从语言的角度或作为函数实现的实际情况感兴趣 除了计算图的句柄之外,#tfop代表什么?为什么是#?如果需要,在哪里可以找到tfop实现?(我浏览了代码,但没有运气,尽管我不能保证我没有错过任何东西)。根据Chris Lattner: #tfop是用于张量运算的“众所周知”表示。 这是堆栈的内部实现细节,并不

我正在浏览swift tensorflow代码,偶然发现了

var result = #tfop("Mul", a, b)
#tfop在文档中有很好的解释,从“它做什么”的意义上讲,但我也对从语言的角度或作为函数实现的实际情况感兴趣

除了计算图的句柄之外,#tfop代表什么?为什么是#?如果需要,在哪里可以找到tfop实现?(我浏览了代码,但没有运气,尽管我不能保证我没有错过任何东西)。

根据Chris Lattner:

#tfop是用于张量运算的“众所周知”表示。 这是堆栈的内部实现细节,并不意味着 用户可见,并且可能会随着时间的推移而改变

在Swift中,“foo(bar:42)”是“类似宏”的通用语法 和“编译器魔术”操作。例如C语言中的文件 在swift中拼写为#文件:

表示C预处理器使用的“#line 42”语法 参数如下:#sourceLocation(文件:“foo”,第42行)

特别是在#tfop的情况下,这在Swift中表示 AST作为ObjectLiteralExpr,这是此应用程序的正常AST节点 诸如此类:

我们使用特殊的降低魔法把它变成一个SIL内置物 SILGen中的指令,前缀为“\uuu tfop”

我不想在这方面使用内置指令,而且 引入一级sil指令,其跟踪方式如下:

这些指令由分区过程特别识别 GPE的定义:

资料来源

注意,还有一点很好(尽管我更喜欢SO的格式)。现在就开始搜索。