时间:2021-05-22
注意,一般官方接口都带有可导功能,如果你实现的层不具有可导功能,就需要自己实现梯度的反向传递。
官方Linear层:
class Linear(Module): def __init__(self, in_features, out_features, bias=True): super(Linear, self).__init__() self.in_features = in_features self.out_features = out_features self.weight = Parameter(torch.Tensor(out_features, in_features)) if bias: self.bias = Parameter(torch.Tensor(out_features)) else: self.register_parameter('bias', None) self.reset_parameters() def reset_parameters(self): stdv = 1. / math.sqrt(self.weight.size(1)) self.weight.data.uniform_(-stdv, stdv) if self.bias is not None: self.bias.data.uniform_(-stdv, stdv) def forward(self, input): return F.linear(input, self.weight, self.bias) def extra_repr(self): return 'in_features={}, out_features={}, bias={}'.format( self.in_features, self.out_features, self.bias is not None )实现view层
class Reshape(nn.Module): def __init__(self, *args): super(Reshape, self).__init__() self.shape = args def forward(self, x): return x.view((x.size(0),)+self.shape)实现LinearWise层
class LinearWise(nn.Module): def __init__(self, in_features, bias=True): super(LinearWise, self).__init__() self.in_features = in_features self.weight = nn.Parameter(torch.Tensor(self.in_features)) if bias: self.bias = nn.Parameter(torch.Tensor(self.in_features)) else: self.register_parameter('bias', None) self.reset_parameters() def reset_parameters(self): stdv = 1. / math.sqrt(self.weight.size(0)) self.weight.data.uniform_(-stdv, stdv) if self.bias is not None: self.bias.data.uniform_(-stdv, stdv) def forward(self, input): x = input * self.weight if self.bias is not None: x = x + self.bias return x以上这篇Pytorch 实现自定义参数层的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本例子使用自定义控件方法实现,数据库使用的是SQLServer,实现过程如下:1、新建一个自定义控件,命名为:PageControl。2、PageControl
自定义typeHandler对于自定义typeHandler来说,需要在配置文件中注册typeHandlers然后需要实现TypeHandler接口,一个例子首
当我们导入的模型含有自定义层或者自定义函数时,需要使用custom_objects来指定目标层或目标函数。例如:我的一个模型含有自定义层“SincConv1D”
本文实例讲述了JS实现可自定义大小,可双击关闭的弹出层效果。分享给大家供大家参考。具体如下:这是一款JS弹出层,可自定义大小,双击关闭层,可以弹出500,300
一、需求原因虽然JQuery为我们定义了许多的事件,但是有时候还是不能满足我们的要求,故本例实现一个自定义事件实现的例子。二、具体实现复制代码代码如下:自定义事