Hi,
I want to fill a tensor like this:
gainW = torch.tensor(1.1)
gainH = torch.tensor(2.5)
res = 5
a = torch.zeros(res,res)
a[0,0] =0.1
for i in range(res):
for j in range(res):
if i==0 and j==0:
continue
if j==0:
a[i,j] = torch.cos(a[i-1,0]*gainH)
else:
a[i,j] = torch.sin(a[i,j-1]+gainW)
print(a)
tensor([[ 0.1000, 0.9320, 0.8955, 0.9112, 0.9046],
[ 0.9689, 0.8785, 0.9180, 0.9016, 0.9086],
[-0.7523, 0.3408, 0.9916, 0.8674, 0.9224],
[-0.3049, 0.7139, 0.9706, 0.8777, 0.9184],
[ 0.7233, 0.9683, 0.8788, 0.9179, 0.9017]])
But this is extremely inefficient, How can I improve it? Any ideas would be appreciated!
BTW, I want to calculate later the gradient with respect to gainW,gainH!