PyTorch中的自定义激活功能-修复预测

问题描述

我阅读了this post有关定制功能的信息,但仍然无法实现我的代码。我的激活函数可以表示为现有PyTorch函数的组合,并且可以正常使用function_pytorch(prediction,Q_sample)。 [Q_samples,是我需要的一些变量,它不需要渐变。 ]

我的激活函数应该接收NN的输出,并实现function_pytorch,然后将它放到损失函数中。所以:

class Activation_fun(nn.Module):

def __init__(self,prediction):
    super().__init__() 

def forward(self,input,Q_samples):
    return function_pytorch(input,Q_samples) 

在我的NN中

class NeuralNet(nn.Module):
  def __init__(self,input_size,hidden_size,output_size):
    super(NeuralNet,self).__init__()
    self.BN0 = nn.Batchnorm1d(input_size)  
    self.l1 = nn.Linear(input_size,hidden_size)
    self.tan = nn.Tanh()
    self.BN = nn.Batchnorm1d(output_size)
    #custom activation
    self.l2 = Activation_fun()


def forward(self,x,q):
  out = self.BN0(x)
  out = self.l1(out)
  out = self.tan()
  out = self.BN9(out)
  out = self.l2(out,q)
  return out

 model = NeuralNet(input_size,output_size)

在我的训练时代:

outputs = model(inputs,q_samples)

问题是:如果应用自定义的激活功能,我的预测将保持不变。 我的实施过程中有问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)