Hi All, I am very new to Lightning. I have a pytorch code and I want it convert it to lightning. If you have some time Please help me. I have converted most of the step, but the only problem I am facing is in my pytorch code I am doing multiple forwarded passes as shown in the last loop. I don’t know how to imply this in pytorch lightning. Please help me with that.
import random
import time
import torch
import torch.nn as nn
import torch.nn.functional as F
class Made(nn.Module):
def init(self,m):
super(Made,self).init()
self.m=m
self.neural_made1=nn.Linear(self.m, self.m)
self.neural_made2=nn.Linear(self.m, self.m)
self.neural_made3=nn.Linear(self.m, self.m)
self.prelu1=nn.PReLU()# learnable activation function
self.prelu2=nn.PReLU()
self.sig=nn.Sigmoid()
def forward(self,x):
self.hidden1=self.prelu1(self.neural_made1(x))
self.hidden2=self.prelu2(self.neural_made2(self.hidden1))
self.final=self.sig(self.neural_made3(self.hidden2))
return self.final
dyn_var=256
Net=pf.Made(dyn_var).to(dev)
I_Par=torch.zeros((bs,dyn_var)).to(dev)
for i in range(dyn_var):#Autoregressive property or multiple forward passes proportional to number of input variables
rand=torch.rand(bs).to(dev)
with torch.no_grad():
Net_1=(Net(I_Par))#forward pass of the neural network
I_Par[:,i]=torch.where(Net_1[:,i] > rand,-1,1)
assert not I_Par.requires_grad
Net_2=(Net(I_Par))