c语言中getline函数怎么用,c++中getline函数
过了很久,我不确定它是在哪个文件中定义的。看起来更像这个。
C:\ Users \ Administrator \ . pycharm 2018.2 \ system \ python _ stubs \ 1756426084 \ torch \ _ C \ _ tensorbase . py
def min(self,dim=None,keepdim=False): #真实签名未知;从__doc__ min(dim=None,keepdim=False) - Tensor或(Tensor,Tensor)恢复请参阅:func:`torch.min ` 传递
基本属性1。同形比较min用于比较张量和张量,逐个元素比较,然后返回对应位置的最小值。
box1=torch.tensor( [ [2,4,1,2],[5,6,2,3] ])。float()box2=torch.tensor( [ [1,1,3,3],[1,1,3,3] ])。float()print(box 1 . min(box 2))# output:tensor([[1。 1. 1. 2.], [1. 1. 2. 3.]])
基本性质二:不同形状的比较不同形状张量比较的基本要求是后面的维度相容。。
比如我们构造一个(2,3,3)的张量_example。
tensor _ example=torch . tensor([[1,-10,1],[2,2,2],[3,3,3]],[[4,4,4],[5,50,5],[6,6,6]]
所谓后面的维度相容,在这个例子中,可以有三种方式。
#type1,shape=(3)
#type2,shape=(3,3)
#type3,shape=(2,3,3)
#type1,shape=(3)
因为它与(2,3,3)的最后一个维度兼容,所以可以遍历前两个维度,并在最后一个维度中逐个元素进行比较。
#type1,shape=(3)c=torch.tensor([ 1,2,3])z=tensor _ example . min(c)print(z)# output:tensor([[ 1,-10,1],[ 1,2,2],[ 1,2,3],[[1,2,3],[1,2,3],[1,2,3]])#type2,shape=(3,3)
因为它与(2,3,3)的最后两个维度兼容,所以可以遍历第0个维度,并在后两个维度上逐个元素地进行比较。
#type2,shape=(3,3)d=torch.ones(3,3)z=tensor _ example . min(d)print(z)# output:tensor([[[ 1,-10,1],[ 1,1,1],[ 1,1,1]],[[ 1,1,1,1],[1,1,1]])
#type3,shape=(2,3,3)
即特例的形状完全相同,可以直接进行元素间的比较。
基本性质3:不同形状与1的比较。与不同的是,本例选取的向量是总有某一维为1。。
所以,可以不遵守的法则,也能进行比较。
示例:
t1=torch.tensor([[2.7500,6.0000,9.5000]]) # shape=(1,3)t2=torch.tensor([[2.5000],[6.0000])# shape=(2,1)x=t1 . min(T2)y=T2 . min(t1)print(x)print(y)# output:tensor([[2.5000,2.5000,2.5000],[2交换律对上面两种情况也是成立的。
在这个例子中,t1和t2分别是(1,3)和(2,1)的二维张量,形状不同,显然不满足中的条件。
但是可以比较。
原理是一维为1的张量可以展开。
你可以理解为将t1展开成(2,3)的矩阵,然后将(2,1)的t2在每一列中逐元素进行比较。
因为交换律,可以说先展开t2,再比较t1。
反正结果是等价的。
我用1给出了两者的特例。
既然这些例子都是真的,那我们就来讨论更一般的情况。
如果只有一方带1,另一方不带,在什么情况下可以比较。
【比如,(3,3)和(3,1)显然可以比较。】
[然而,(3,3)和(2,1),不能相提并论。】
因为(2,1)在1维展开为3维后变成了(2,3),它仍然与(3,3)不相容有关。
可以得出这样的结论:
如果只有一方带1,另一方不带,则需要带1的Tensor将1扩展后,与不带1的Tensor的后面的维相容、
即,这种情况,先扩展,然后视为情况,进行的条件判定。
Max功能也一样,不用多说。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。