Neural network PyTorch-fix预测中的自定义激活函数
我读过有关CustomActivation函数的内容,但仍然无法实现我的代码。我的激活函数可以表示为现有PyTorch函数的组合,它可以很好地工作Neural network PyTorch-fix预测中的自定义激活函数,neural-network,pytorch,activation-function,Neural Network,Pytorch,Activation Function,我读过有关CustomActivation函数的内容,但仍然无法实现我的代码。我的激活函数可以表示为现有PyTorch函数的组合,它可以很好地工作函数\u PyTorch(预测,Q\u样本)。[Q_samples,是一个变量,我需要它,它不需要梯度。] 我的激活函数应该接收NN的输出,并执行函数_pytorch,它的输出进入损耗函数。因此: class Activation_fun(nn.Module): def __init__(self, prediction): super().
函数\u PyTorch(预测,Q\u样本)
。[Q_samples,是一个变量,我需要它,它不需要梯度。]
我的激活函数应该接收NN的输出,并执行函数_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, hidden_size, output_size)
在我的训练时期:
outputs = model(inputs, q_samples)
问题是:如果我应用我的定制激活功能,我的预测仍然是固定的。
我的执行中有什么问题吗