张量,RDF三元组

张量(Tensors)是一种类似于数组与矩阵的特殊数据结构,我们可以利用张量来表示一个模型的输入,输出以及模型的参数。张量与Numpy的数组十分类似,只是张量可以运行在GPUs等硬件加速器上。实际上,张量与Numpy数组通常可以共享一块内存,避免了复制数据的需要。另外,张量还具有自动微分的功能。

import torch
import numpy as np

张量的初始化

直接从数据中产生

张量可以直接从数据中产生,数据类型可以自动推断出来。

data = [[1,2],[3,4]]
x_data = torch.tensor(data)

从Numpy数组中产生

np_array = np.array(data)
x_np = torch.from_numpy(np_array)

从另一个张量中产生

新的张量会保留张量参数的特性(形状,数据类型)

x_ones = torch.ones_like(x_data)                                  
print(x_ones)                                                     
x_rand = torch.rand_like(x_data, dtype=torch.float)               
print(x_rand) 

输出:

tensor([[1, 1],
        [1, 1]])
tensor([[0.9309, 0.9033],
        [0.7956, 0.0808]])

随机或常量值张量

shape是表示张量维度的一个元组,在下列函数中,它决定了输出张量的维数

shape = (2,3,)                                
rand_tensor = torch.rand(shape)               
ones_tensor = torch.ones(shape)               
zeros_tensor = torch.zeros(shape)             
                                              
print(f"Random Tensor: \n {rand_tensor} \n")  
print(f"Ones Tensor: \n {ones_tensor} \n")    
print(f"Zeros Tensor: \n {zeros_tensor}")     

输出:

Random Tensor: 
 tensor([[0.7546, 0.8253, 0.8290],
        [0.3136, 0.3674, 0.8277]]) 

Ones Tensor: 
 tensor([[1., 1., 1.],
        [1., 1., 1.]]) 

Zeros Tensor: 
 tensor([[0., 0., 0.],
        [0., 0., 0.]])

张量的属性

张量的属性描述了张量的形状,数据类型以及它们所存储的设备类型。

tensor = torch.rand(3,4)
​
print(f"Shape of tensor: {tensor.shape}")
print(f"Datatype of tensor: {tensor.dtype}")
print(f"Device tensor is stored on: {tensor.device}")

输出:

Shape of tensor: torch.Size([3, 4])
Datatype of tensor: torch.float32
Device tensor is stored on: cpu

 转自:https://zhuanlan.zhihu.com/p/401080421

 

RDF三元组

三元组是“主语/谓语/主语”形式的语句,即通过谓语将一个宾语(主语)与另一个宾语(宾语)或字面意思联系起来的语句。我们都熟悉三元组:三元组是二元关系中最小的不可约表示。简而言之:电子表格是三元组的集合,例如,如果电子表格中的一列标题为“Paul”,行的标题为“has Sister”,单元格中的值为“Lisa”。这里有一个三元组:Paul(主语)和Sister(谓语)Lisa(字面/宾语)

RDF三元组的特殊之处在于,三元组的每个部分都有一个与之相关联的URI,因此日常语句"Mike Smith knows John Doe"在RDF中可以表示为:

uri://people#MikeSmith12  http://xmlns.com/foaf/0.1/knows  uri://people#JohnDoe45

与电子表格类似的是,通过给URI的每个部分指定一个唯一的地址,你给电子表格中的单元格一个完整的地址空间.....所以原则上你可以把电子表格的每个单元格(如果用RDF三元组表示的话)粘贴到不同服务器上的不同文档中,然后通过一个查询重新构造电子表格。

 

posted @ 2023-03-04 21:26  sqsq  阅读(121)  评论(0编辑  收藏  举报