我定义了一个简单的conv2d函数来计算输入和内核(都是2D张量)之间的相互关系,如下所示:
import torch
def conv2D(X, K):
h = K.shape[0]
w = K.shape[1]
ĥ = X.shape[0] - h + 1
ŵ = X.shape[1] - w + 1
Y = torch.zeros((ĥ, ŵ))
for i in range (ĥ):
for j in range (ŵ):
Y[i, j] = (X[i: i+h, j: j+w]*K).sum
因此,假设我有一个k-dim张量和一个1-dim掩码,它在pytorch中用于可变长度序列,并且我想返回一个张量,它表示掩码中直到第一个false值的元素。下面是一个示例: import torch
a = torch.tensor([[1,2],[3,4],[5,6],[0,0],[0,0],[0,0]])
b = torch.tensor([True,True,True,False,False,False])
# magic goes here, result of c should be:
print(c)
>>> [[1,2],[3,4],[5,6]] 在本例
在构造一个简单的感知器神经网络时,我们通常将格式(batch_size,features)输入的2D矩阵传递给二维权矩阵,类似于中的这种简单的神经网络。我总是假设神经网络的感知器/密集/线性层只接受2D格式的输入,并输出另一个2D输出。但最近,我遇到了这样一个模型:线性层接受三维输入张量,并输出另一个三维张量(o1 = self.a1(x))。
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
class Net(nn.Module):
def
我有两个张量:
a = torch.randn((1, 30, 1220)) # represents text embedding vector (30 spans, each with embedding size of 1220)
b = torch.randn((1, 128, 256)) # represents image features obtained from a pretrained CNN (object detection)
如何将b中的所有内容连接到a的30个跨度中的每一个
如何将整个b与整个a连接起来
这就是我想做的:
提交人只提
我有两个张量,张量a和张量b。 我想要得到张量b中值的所有索引。 例如。 a = torch.Tensor([1,2,2,3,4,4,4,5]) b = torch.Tensor([1,2,4]) 我想要张量a中1, 2, 4的索引,我可以通过下面的代码来实现。 a = torch.Tensor([1,2,2,3,4,4,4,5])
b = torch.Tensor([1,2,4])
mask = torch.zeros(a.shape).type(torch.bool)
print(mask)
for e in b:
mask = mask + (a == e)
print
我有一个生火张量:x = torch.zeros(2, 2),和另一个变量值的张量:item = torch.tensor([[1, 2], [3, 4]]),我只是给出这个张量。
我想添加item张量作为x张量的每个元素,这样
x = [[item, item],
[item, item]]
所以x是张量,里面有张量。我尝试将item直接赋值给x,但得到了一个错误:RuntimeError: The expanded size of the tensor must match the existing size at non-singleton dimension
我正在寻找一种使用torch函数选择PyTorch张量区域的方法(不使用numpy)。你对如何进行有建议吗?
换句话说,我在寻找一种裁剪矩阵区域的方法。使用numpy,就像
import numpy as np
A = np.random.rand(16,16)
B = A[0:8, 0:8]
我尝试的方法如下:
from torchvision import transforms
A = torch.randn([1,3,64,64])
B = torch.split(A, [16,32,16], dim =2)
C = torch.split(B, [16,32,16], dim =3)
structure_loss方法应该返回地面真相与预测掩码的损失:
import numpy as np
import torch
import torch.nn.functional as F
import torch.nn as nn
def structure_loss(pred, mask):
weit = 1 + 5 * torch.abs(nn.functional.avg_pool2d(mask, kernel_size=31, stride=1, padding=15) - mask) # here
wbce = F.binary_cross_entropy