已知:通过NtsVar X = NewLeafTensor( {raw,column}, torch::DeviceType )就可以创建一个Tensor类型的连续空间,创建完之后就类似于数组 int tt = new int[raw][column]
这个 X 就等同于 tt 都保存着 这串连续的内存空间 的首地址,因此,可以用数组名来表示这串数据也可以将其作为存放地址的一个变量
问题:哪位啥我们还需要getWriteableBuffer(X)来得到这个tensor对应的内存空间的位置呢,直接用X不就可以了么?
回答:因为,虽然Tensor可以近似理解为数组,但是Tensor无法像数组那么灵活, 所以只能先通过getWriteableBuffer来得到这个tensor对应的内存空间,然后再进行处理
(即,只能通过指针处理tensor中的数据,X虽然存放Tensor数组首地址,BUT 无法直接对内存进行处理)
那要怎么调用getWriteableBuffer呢?
Graph<Empty>类型的实例指针graph调用这个类型的函数getWritableBuffer(MMM),目的是:获得tensor MMM 在内存中的位置,赋给指针
博客围绕Tensor类型连续空间展开,介绍通过特定语句创建Tensor连续空间,类比数组。提出为何不用变量X而需getWriteableBuffer获取内存位置的问题,解答因Tensor不如数组灵活,只能用指针处理数据。还提及Graph<Empty>实例指针graph调用getWritableBuffer获取tensor内存位置。
1万+

被折叠的 条评论
为什么被折叠?



