![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
蓝羽飞鸟
GO
展开
-
torch tensor调用detach时出现RuntimeError: CUDA error: an illegal memory access was encountered解决
torch.tensor 遇到cuda 非法访问内存的解决方案原创 2024-08-19 09:42:59 · 127 阅读 · 0 评论 -
pytorch3d.ops.ball_query 用法
点云的球查询算法原创 2024-05-24 14:42:38 · 290 阅读 · 0 评论 -
简单的例子说明 F.cross_entropy用法
F.cross_entropy用法,输入输出形式原创 2024-03-25 20:45:00 · 852 阅读 · 0 评论 -
pytorch @和*运算
@指的是矩阵乘法,类似于内积,*指的是pixel-wise乘法。举个例子,两个3x2的矩阵>>> a1 = torch.Tensor([[1,2],[3,4], [3, 2]])>>> a2 = torch.Tensor([[2,3],[1,5], [1, 2]])矩阵乘法要求第一个矩阵的列=第二个矩阵的行,两个3x2的矩阵直接乘会报错,验证一下>>> a1@a2RuntimeError: mat1 and mat2 shapes can原创 2022-03-29 19:00:50 · 1832 阅读 · 1 评论 -
pytorch F.grid_sample用法
torch.nn.functional.grid_sample(input, grid, mode=‘bilinear’, padding_mode=‘zeros’, align_corners=None)举个例子,input的shape为[1, 128, 124, 186],可以知道N=1,C=128,Hin=124,Win=186N=1, C=128, H_{in}=124,W_{in}=186N=1,C=128,Hin=124,Win=186现在想把它变为一个2285x1的一维特征向量,原创 2022-03-29 11:54:06 · 4943 阅读 · 1 评论 -
pytorch repeat_interleave用法
torch.repeat_interleave(input, repeats, dim=None, *, output_size=None) → Tensor**例子1:**不指定dim, 就会把input拍平(flatten),然后把每个元素重复repeats次>>> x = torch.tensor([1, 2, 3])>>> x.repeat_interleave(2)tensor([1, 1, 2, 2, 3, 3])>>> y =原创 2022-03-25 12:26:07 · 2570 阅读 · 0 评论 -
torch.where 与 np.where
numpy.where如果不指定条件,返回的是>0元素的位置(下标),见链接但是如果torch.where不指定条件,返回的是非0元素的位置(下标),包括了负数。看个例子>>> ctensor([[[ 0., 0.], [-1., -1.], [-1., -2.]], [[ 1., 1.], [ 0., 0.], [ 0., -1.]], [[ 1., 2.],原创 2022-03-24 10:05:11 · 635 阅读 · 0 评论 -
pytorch einsum 矩阵乘 浅显易懂解释
einsum用于矩阵乘法直接上例子吧比如'bhqd, bhkd -> bhqk'虽然是4维,但是前两维是不变的,先不看,只看后2维,qd, kd -> qk这是两个矩阵相乘,两个矩阵的shape分别为A=qxd, B=kxd, 得到的结果形状是C =qxk根据矩阵乘法,我们知道(qxd) x (dxk)结果的形状为qxk,也就是说上面相当于是AxBT=C验证一下energy = torch.einsum('bhqd, bhkd -> bhqk', queries, ke原创 2022-02-22 11:26:15 · 1546 阅读 · 0 评论 -
torch.nn gather用法
官方解释torch.gather(input, dim, index, *, sparse_grad=False, out=None) → TensorGathers values along an axis specified by dim.For a 3-D tensor the output is specified by:out[i][j][k] = input[index[i][j][k]][j][k] # if dim == 0out[i][j][k] = input[i][inde原创 2020-12-30 14:54:24 · 584 阅读 · 0 评论 -
pytorch LayerNorm说明
对一个mini-batch的input做归一化计算x指一个batch的input,如下图,图中,N表示batch数,(C,H,W)本来应该是3维,现把(H, W)二维图像拉成一条,一共C个channel, 每个channel对应一条H,W蓝色部分表示一个batch内的(C, H, W),即x计算x的均值,方差,做归一化参数列表示例参考链接...原创 2022-02-22 14:52:39 · 1122 阅读 · 0 评论 -
torch module.apply(fn)说明
应用的对象应是nn.Module类型或者它的继承类。可以有children。比如class Model(nn.Module): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(1, 20, 5) self.conv2 = nn.Conv2d(20, 20, 5) def forward(self, x): x = F.relu(self.conv原创 2022-03-22 10:21:20 · 857 阅读 · 0 评论 -
pytorch 矩阵运算巧求点之间的距离
给一些点的坐标(x1, y1), (x2, y2) … ,N个点,如果求它们中每个点到其他所有点的距离,首先能想到的办法就是两层for循环,时间复杂度是O(N2)而矩阵运算是经过优化的,一般来说比for循环要快。现举例说明如何用矩阵运算来计算每个点到其他所有点的距离。现有3个点>>> c = torch.Tensor([[1,2], [2,3],[2,4]])>>> ctensor([[1., 2.], [2., 3.],原创 2022-03-24 09:18:22 · 3880 阅读 · 1 评论