Python torch.nn.init.xavier_uniform() Examples
The following are 30
code examples of torch.nn.init.xavier_uniform().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch.nn.init
, or try the search function
.
Example #1
Source File: model.py From graph-generation with MIT License | 8 votes |
def __init__(self, h_size, embedding_size, y_size): super(MLP_token_plain, self).__init__() self.deterministic_output = nn.Sequential( nn.Linear(h_size, embedding_size), nn.ReLU(), nn.Linear(embedding_size, y_size) ) self.token_output = nn.Sequential( nn.Linear(h_size, embedding_size), nn.ReLU(), nn.Linear(embedding_size, 1) ) for m in self.modules(): if isinstance(m, nn.Linear): m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu'))
Example #2
Source File: model.py From GraphRNN with MIT License | 6 votes |
def __init__(self,feature_size, input_size, hidden_size, output_size, batch_size, num_layers): super(Graph_generator_LSTM, self).__init__() self.batch_size = batch_size self.num_layers = num_layers self.hidden_size = hidden_size self.lstm = nn.LSTM(input_size=input_size, hidden_size=hidden_size, num_layers=num_layers, batch_first=True) self.linear_input = nn.Linear(feature_size, input_size) self.linear_output = nn.Linear(hidden_size, output_size) self.relu = nn.ReLU() # initialize # self.hidden,self.cell = self.init_hidden() self.hidden = self.init_hidden() self.lstm.weight_ih_l0.data = init.xavier_uniform(self.lstm.weight_ih_l0.data, gain=nn.init.calculate_gain('sigmoid')) self.lstm.weight_hh_l0.data = init.xavier_uniform(self.lstm.weight_hh_l0.data, gain=nn.init.calculate_gain('sigmoid')) self.lstm.bias_ih_l0.data = torch.ones(self.lstm.bias_ih_l0.data.size(0))*0.25 self.lstm.bias_hh_l0.data = torch.ones(self.lstm.bias_hh_l0.data.size(0))*0.25 for m in self.modules(): if isinstance(m, nn.Linear): m.weight.data = init.xavier_uniform(m.weight.data,gain=nn.init.calculate_gain('relu'))
Example #3
Source File: Unet2d_pytorch.py From medSynthesisV1 with MIT License | 6 votes |
def __init__(self, in_size, out_size, kernel_size=3,stride=1, padding=1, activation=F.relu): super(residualUnit, self).__init__() self.conv1 = nn.Conv2d(in_size, out_size, kernel_size, stride=1, padding=1) init.xavier_uniform(self.conv1.weight, gain = np.sqrt(2.0)) #or gain=1 init.constant(self.conv1.bias, 0) self.conv2 = nn.Conv2d(out_size, out_size, kernel_size, stride=1, padding=1) init.xavier_uniform(self.conv2.weight, gain = np.sqrt(2.0)) #or gain=1 init.constant(self.conv2.bias, 0) self.activation = activation self.bn1 = nn.BatchNorm2d(out_size) self.bn2 = nn.BatchNorm2d(out_size) self.in_size = in_size self.out_size = out_size if in_size != out_size: self.convX = nn.Conv2d(in_size, out_size, kernel_size=1, stride=1, padding=0) self.bnX = nn.BatchNorm2d(out_size)
Example #4
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 6 votes |
def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, groups=1, bias=True, dilation=1, nd=2): super(conv23D_bn_relu_Unit, self).__init__() assert nd==1 or nd==2 or nd==3, 'nd is not correctly specified!!!!, it should be {1,2,3}' if nd==2: self.conv = nn.Conv2d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm2d(out_channels) elif nd==3: self.conv = nn.Conv3d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm3d(out_channels) else: self.conv = nn.Conv1d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm1d(out_channels) init.xavier_uniform(self.conv.weight, gain = np.sqrt(2.0)) init.constant(self.conv.bias, 0) self.relu = nn.ReLU()
Example #5
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 6 votes |
def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, nd=2): super(convTranspose23D_bn_Unit, self).__init__() assert nd==1 or nd==2 or nd==3, 'nd is not correctly specified!!!!, it should be {1,2,3}' if nd==2: self.conv = nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, output_padding=output_padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm2d(out_channels) elif nd==3: self.conv = nn.ConvTranspose3d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, output_padding=output_padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm3d(out_channels) else: self.conv = nn.ConvTranspose1d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, output_padding=output_padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm1d(out_channels) init.xavier_uniform(self.conv.weight, gain = np.sqrt(2.0)) init.constant(self.conv.bias, 0) # self.relu = nn.ReLU()
Example #6
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 6 votes |
def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, nd=2): super(convTranspose23D_bn_relu_Unit, self).__init__() assert nd==1 or nd==2 or nd==3, 'nd is not correctly specified!!!!, it should be {1,2,3}' if nd==2: self.conv = nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, output_padding=output_padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm2d(out_channels) elif nd==3: self.conv = nn.ConvTranspose3d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, output_padding=output_padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm3d(out_channels) else: self.conv = nn.ConvTranspose1d(in_channels, out_channels, kernel_size, stride=stride, padding=padding, output_padding=output_padding, groups=groups, bias=bias, dilation=dilation) self.bn = nn.BatchNorm1d(out_channels) init.xavier_uniform(self.conv.weight, gain = np.sqrt(2.0)) init.constant(self.conv.bias, 0) self.relu = nn.ReLU()
Example #7
Source File: model.py From graph-generation with MIT License | 6 votes |
def __init__(self, input_dim, hidden_dim, output_dim): super(GCN_encoder, self).__init__() self.conv1 = GraphConv(input_dim=input_dim, output_dim=hidden_dim) self.conv2 = GraphConv(input_dim=hidden_dim, output_dim=output_dim) # self.bn1 = nn.BatchNorm1d(output_dim) # self.bn2 = nn.BatchNorm1d(output_dim) self.relu = nn.ReLU() for m in self.modules(): if isinstance(m, GraphConv): m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu')) # init_range = np.sqrt(6.0 / (m.input_dim + m.output_dim)) # m.weight.data = torch.rand([m.input_dim, m.output_dim]).cuda()*init_range # print('find!') elif isinstance(m, nn.BatchNorm1d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #8
Source File: model.py From graph-generation with MIT License | 6 votes |
def __init__(self,feature_size, input_size, hidden_size, output_size, batch_size, num_layers): super(Graph_generator_LSTM, self).__init__() self.batch_size = batch_size self.num_layers = num_layers self.hidden_size = hidden_size self.lstm = nn.LSTM(input_size=input_size, hidden_size=hidden_size, num_layers=num_layers, batch_first=True) self.linear_input = nn.Linear(feature_size, input_size) self.linear_output = nn.Linear(hidden_size, output_size) self.relu = nn.ReLU() # initialize # self.hidden,self.cell = self.init_hidden() self.hidden = self.init_hidden() self.lstm.weight_ih_l0.data = init.xavier_uniform(self.lstm.weight_ih_l0.data, gain=nn.init.calculate_gain('sigmoid')) self.lstm.weight_hh_l0.data = init.xavier_uniform(self.lstm.weight_hh_l0.data, gain=nn.init.calculate_gain('sigmoid')) self.lstm.bias_ih_l0.data = torch.ones(self.lstm.bias_ih_l0.data.size(0))*0.25 self.lstm.bias_hh_l0.data = torch.ones(self.lstm.bias_hh_l0.data.size(0))*0.25 for m in self.modules(): if isinstance(m, nn.Linear): m.weight.data = init.xavier_uniform(m.weight.data,gain=nn.init.calculate_gain('relu'))
Example #9
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 6 votes |
def __init__(self, in_size, out_size, kernel_size=3, activation=F.relu, spatial_dropout_rate=0, isConvDilation=None, nd=2): super(ResUpUnit, self).__init__() # self.up = nn.ConvTranspose2d(in_size, out_size, kernel_size=4, stride=2, padding=1, bias=True) # init.xavier_uniform(self.up.weight, gain = np.sqrt(2.0)) #or gain=1 # init.constant(self.up.bias, 0) self.nd = nd self.up = convTranspose23D_bn_relu_Unit(in_size, out_size, kernel_size=4, stride=2, padding=1, nd=nd) self.conv = residualUnit3(out_size, out_size, isDilation=isConvDilation, nd=nd) # self.SpatialDroput = nn.SpatialDropout(space_dropout_rate) self.dp = dropout23DUnit(prob=spatial_dropout_rate,nd=nd) # self.dropout2d = nn.Dropout2d(spatial_dropout_rate) self.spatial_dropout_rate = spatial_dropout_rate self.conv2 = residualUnit3(out_size, out_size, isDilation=isConvDilation, isEmptyBranch1=False, nd=nd) # print 'line 147, in_size is ',out_size,' out_size is ',out_size self.relu = nn.ReLU()
Example #10
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 6 votes |
def __init__(self, in_size, out_size, kernel_size=3, activation=F.relu, space_dropout=False, nd=2): super(unetUpUnit, self).__init__() # self.up = nn.ConvTranspose2d(in_size, out_size, kernel_size=4, stride=2, padding=1, bias=True) # init.xavier_uniform(self.up.weight, gain=np.sqrt(2.0)) #or gain=1 # init.constant(self.up.bias, 0) self.up = convTranspose23DUnit(in_size, out_size, kernel_size=4, stride=2, padding=1, nd=nd) # self.conv = nn.Conv2d(in_size, out_size, kernel_size=3, stride=1, padding=1, bias=True) # init.xavier_uniform(self.conv.weight, gain=np.sqrt(2.0)) #or gain=1 # init.constant(self.conv.bias, 0) self.conv = conv23DUnit(in_size, out_size, kernel_size=3, stride=1, padding=1, nd=nd) #has some problem with the in_size # self.conv2 = nn.Conv2d(out_size, out_size, kernel_size=3, stride=1, padding=1, bias=True) # init.xavier_uniform(self.conv2.weight, gain=np.sqrt(2.0)) #or gain=1 # init.constant(self.conv2.bias, 0) self.conv2 = conv23DUnit(out_size, out_size, kernel_size=3, stride=1, padding=1, nd=nd) self.activation = activation self.nd = nd
Example #11
Source File: model.py From GraphRNN with MIT License | 6 votes |
def __init__(self, input_dim, hidden_dim, output_dim): super(GCN_encoder, self).__init__() self.conv1 = GraphConv(input_dim=input_dim, output_dim=hidden_dim) self.conv2 = GraphConv(input_dim=hidden_dim, output_dim=output_dim) # self.bn1 = nn.BatchNorm1d(output_dim) # self.bn2 = nn.BatchNorm1d(output_dim) self.relu = nn.ReLU() for m in self.modules(): if isinstance(m, GraphConv): m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu')) # init_range = np.sqrt(6.0 / (m.input_dim + m.output_dim)) # m.weight.data = torch.rand([m.input_dim, m.output_dim]).cuda()*init_range # print('find!') elif isinstance(m, nn.BatchNorm1d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #12
Source File: ResUnet3d_pytorch.py From medSynthesisV1 with MIT License | 6 votes |
def __init__(self, in_size, out_size, kernel_size=3,stride=1, padding=1, activation=F.relu): super(residualUnit, self).__init__() self.conv1 = nn.Conv3d(in_size, out_size, kernel_size, stride=1, padding=1) init.xavier_uniform(self.conv1.weight, gain = np.sqrt(2.0)) #or gain=1 init.constant(self.conv1.bias, 0) self.conv2 = nn.Conv3d(out_size, out_size, kernel_size, stride=1, padding=1) init.xavier_uniform(self.conv2.weight, gain = np.sqrt(2.0)) #or gain=1 init.constant(self.conv2.bias, 0) self.activation = activation self.bn1 = nn.BatchNorm3d(out_size) self.bn2 = nn.BatchNorm3d(out_size) self.in_size = in_size self.out_size = out_size if in_size != out_size: self.convX = nn.Conv3d(in_size, out_size, kernel_size=1, stride=1, padding=0) self.bnX = nn.BatchNorm3d(out_size)
Example #13
Source File: model.py From GraphRNN with MIT License | 6 votes |
def __init__(self, h_size, embedding_size, y_size): super(MLP_token_plain, self).__init__() self.deterministic_output = nn.Sequential( nn.Linear(h_size, embedding_size), nn.ReLU(), nn.Linear(embedding_size, y_size) ) self.token_output = nn.Sequential( nn.Linear(h_size, embedding_size), nn.ReLU(), nn.Linear(embedding_size, 1) ) for m in self.modules(): if isinstance(m, nn.Linear): m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu'))
Example #14
Source File: common.py From converse_reading_cmr with MIT License | 5 votes |
def init_wrapper(init='xavier_uniform'): return eval(init)
Example #15
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 5 votes |
def __init__(self, in_size, out_size, kernel_size=3,stride=1, padding=1, activation=F.relu, nd=2): super(residualUnit1, self).__init__() self.conv1_bn_relu = conv23D_bn_relu_Unit(in_size, out_size, kernel_size, stride, padding, nd=nd) # self.conv1 = nn.Conv2d(in_size, out_size, kernel_size, stride, padding, bias=False) # init.xavier_uniform(self.conv1.weight, gain=np.sqrt(2.0)) #or gain=1 # init.constant(self.conv1.bias, 0) # self.bn1 = nn.BatchNorm2d(out_size) self.relu = nn.ReLU() self.conv2_bn_relu = nn.conv23D_bn_relu_Unit(out_size, out_size, kernel_size, stride, padding, nd=nd) # self.conv2 = nn.Conv2d(out_size, out_size, kernel_size, stride, padding, bias=False) # init.xavier_uniform(self.conv2.weight, gain=np.sqrt(2.0)) #or gain=1 # init.constant(self.conv2.bias, 0) # self.bn2 = nn.BatchNorm2d(out_size)
Example #16
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 5 votes |
def __init__(self, in_size, out_size, kernel_size=3, activation=F.relu, space_dropout=False, nd=2): super(BaseResUpUnit, self).__init__() # self.up = nn.ConvTranspose2d(in_size, out_size, kernel_size=4, stride=2, padding=1, bias=True) # init.xavier_uniform(self.up.weight, gain=np.sqrt(2.0)) #or gain=1 # init.constant(self.up.bias, 0) self.nd = nd self.up = convTranspose23D_bn_relu_Unit(in_size, out_size, kernel_size=4, stride=2, padding=1, nd=nd) self.relu = nn.ReLU()
Example #17
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 5 votes |
def __init__(self,in_size, out_size, kernel_size=3,stride=1, padding=1, activation=F.relu, nd=2): super(residualUnit1, self).__init__() self.conv1_bn = conv23D_bn_Unit(in_channels=in_size, out_channels=out_size, kernel_size=kernel_size, stride=stride, padding=padding, nd=nd) # init.xavier_uniform(self.conv1.weight, gain=np.sqrt(2.0)) #or gain=1 # init.constant(self.conv1.bias, 0) # self.bn1 = nn.BatchNorm2d(out_size) self.relu = nn.ReLU()
Example #18
Source File: nnBuildUnits.py From medSynthesisV1 with MIT License | 5 votes |
def __init__(self, in_size, out_size, isDilation=None, isEmptyBranch1=None, activation=F.relu, nd=2): super(residualUnit3, self).__init__() # mid_size = in_size/2 mid_size = out_size/2 ###I think it should better be half the out size instead of the input size # print 'line 74, in and out size are, ',in_size,' ',mid_size if isDilation: self.conv1_bn_relu = conv23D_bn_relu_Unit(in_channels=in_size, out_channels=mid_size, kernel_size=1, stride=1, padding=0, dilation=2, nd=nd) else: self.conv1_bn_relu = conv23D_bn_relu_Unit(in_channels=in_size, out_channels=mid_size, kernel_size=1, stride=1, padding=0, nd=nd) # init.xavier_uniform(self.conv1.weight, gain=np.sqrt(2.0)) #or gain=1 # # init.constant(self.conv1.bias, 0) # self.bn1 = nn.BatchNorm2d(mid_size) self.relu = nn.ReLU() if isDilation: self.conv2_bn_relu = conv23D_bn_relu_Unit(in_channels=mid_size, out_channels=mid_size, kernel_size=3, stride=1, padding=2, dilation=2, nd=nd) else: self.conv2_bn_relu = conv23D_bn_relu_Unit(in_channels=mid_size, out_channels=mid_size, kernel_size=3, stride=1, padding=1, nd=nd) # init.xavier_uniform(self.conv2.weight, gain=np.sqrt(2.0)) #or gain=1 # # init.constant(self.conv2.bias, 0) # self.bn2 = nn.BatchNorm2d(mid_size) if isDilation: self.conv3_bn = conv23D_bn_Unit(in_channels=mid_size, out_channels=out_size, kernel_size=1, stride=1, padding=0, dilation=2, nd=nd) else: self.conv3_bn = conv23D_bn_Unit(in_channels=mid_size, out_channels=out_size, kernel_size=1, stride=1, padding=0, nd=nd) # init.xavier_uniform(self.conv3.weight, gain=np.sqrt(2.0)) #or gain=1 # # init.constant(self.conv3.bias, 0) # self.bn3 = nn.BatchNorm2d(out_size) self.isEmptyBranch1 = isEmptyBranch1 if in_size!=out_size or isEmptyBranch1==False: if isDilation: self.convX_bn = conv23D_bn_Unit(in_channels=in_size, out_channels=out_size, kernel_size=1, stride=1, padding=0, dilation=2, nd=nd) else: self.convX_bn = conv23D_bn_Unit(in_channels=in_size, out_channels=out_size, kernel_size=1, stride=1, padding=0, nd=nd) # self.bnX = nn.BatchNorm2d(out_size)
Example #19
Source File: custom_cells.py From skiprnn_pytorch with MIT License | 5 votes |
def __init__(self, cell, learnable_elements, input_size, hidden_size, num_layers = 1, bias=True, batch_first = False, activation=F.tanh, layer_norm=False): super(CCellBase, self).__init__() self.input_size = input_size self.hidden_size = hidden_size self.bias = bias self.batch_first = batch_first self.cell = cell self.num_layers = num_layers self.weight_ih = [] self.weight_hh = [] self.bias_ih = [] self.bias_hh = [] for i in np.arange(self.num_layers): if i == 0: weight_ih = Parameter(xavier_uniform(torch.Tensor(learnable_elements * hidden_size, input_size))) else: weight_ih = Parameter(xavier_uniform(torch.Tensor(learnable_elements * hidden_size, hidden_size))) weight_hh = Parameter(xavier_uniform(torch.Tensor(learnable_elements * hidden_size, hidden_size))) self.weight_ih.append(weight_ih) self.weight_hh.append(weight_hh) if bias: bias_ih = Parameter(torch.zeros(learnable_elements * hidden_size)) bias_hh = Parameter(torch.zeros(learnable_elements * hidden_size)) self.bias_ih.append(bias_ih) self.bias_hh.append(bias_hh) else: self.register_parameter('bias_ih_' + str(i), None) self.register_parameter('bias_hh_' + str(i), None) self.weight_ih = nn.ParameterList(self.weight_ih) self.weight_hh = nn.ParameterList(self.weight_hh) if self.bias_ih: self.bias_ih = nn.ParameterList(self.bias_ih) self.bias_hh = nn.ParameterList(self.bias_hh) self.activation = activation self.layer_norm = layer_norm self.lst_bnorm_rnn = None
Example #20
Source File: Layers.py From SDNet with MIT License | 5 votes |
def __init__(self, input_size, window_size, output_size): super(CNN, self).__init__() if window_size % 2 != 1: raise Exception("window size must be an odd number") padding_size = int((window_size - 1) / 2) self._output_size = output_size self.cnn = nn.Conv2d(1, output_size, (window_size, input_size), padding = (padding_size, 0), bias = False) init.xavier_uniform(self.cnn.weight)
Example #21
Source File: model.py From torch-light with MIT License | 5 votes |
def _init_weights(self, scope=0.25): self.lookup_table.weight.data.uniform_(-scope, scope) init.xavier_uniform(self.logistic.weight)
Example #22
Source File: Unet2d_pytorch.py From medSynthesisV1 with MIT License | 5 votes |
def __init__(self, in_size, out_size, kernel_size=3, activation=F.relu, space_dropout=False): super(UNetUpBlock, self).__init__() self.up = nn.ConvTranspose2d(in_size, out_size, 2, stride=2) self.bnup = nn.BatchNorm2d(out_size) self.conv = nn.Conv2d(in_size, out_size, kernel_size, stride=1, padding=1) self.bn = nn.BatchNorm2d(out_size) self.conv2 = nn.Conv2d(out_size, out_size, kernel_size, stride=1, padding=1) self.bn2 = nn.BatchNorm2d(out_size) self.activation = activation init.xavier_uniform(self.up.weight, gain = np.sqrt(2.0)) init.constant(self.up.bias,0) init.xavier_uniform(self.conv.weight, gain = np.sqrt(2.0)) init.constant(self.conv.bias,0) init.xavier_uniform(self.conv2.weight, gain = np.sqrt(2.0)) init.constant(self.conv2.bias,0)
Example #23
Source File: model.py From torch-light with MIT License | 5 votes |
def _init_weights(self, scope=0.25): self.lookup_table.weight.data.uniform_(-scope, scope) init.xavier_uniform(self.logistic.weight)
Example #24
Source File: module.py From torch-light with MIT License | 5 votes |
def _init_weights(self, scope=1.): self.embedded_chars_left.weight.data.uniform_(-scope, scope) self.embedded_chars_right.weight.data.uniform_(-scope, scope) init.xavier_uniform(self.simi_weight) init.xavier_uniform(self.out_lr.weight) init.xavier_uniform(self.logistic.weight)
Example #25
Source File: model.py From GraphRNN with MIT License | 5 votes |
def __init__(self, hidden_dim): super(GCN_generator, self).__init__() # todo: add an linear_input module to map the input feature into 'hidden_dim' self.conv = GraphConv(input_dim=hidden_dim, output_dim=hidden_dim) self.act = nn.ReLU() # initialize for m in self.modules(): if isinstance(m, GraphConv): m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu'))
Example #26
Source File: Conv2Conv.py From DC-NeuralConversation with MIT License | 5 votes |
def __init__(self, input_size, width=3, dropout=0.2, nopad=False): super(GatedConv, self).__init__() self.conv = WeightNormConv2d(input_size, 2 * input_size, kernel_size=(width, 1), stride=(1, 1), padding=(width // 2 * (1 - nopad), 0)) init.xavier_uniform(self.conv.weight, gain=(4 * (1 - dropout))**0.5) self.dropout = nn.Dropout(dropout)
Example #27
Source File: model.py From GraphRNN with MIT License | 5 votes |
def __init__(self,input_dim, hidden_dim, output_dim,num_layers): super(GCN_encoder_graph, self).__init__() self.num_layers = num_layers self.conv_first = GraphConv(input_dim=input_dim, output_dim=hidden_dim) # self.conv_hidden1 = GraphConv(input_dim=hidden_dim, output_dim=hidden_dim) # self.conv_hidden2 = GraphConv(input_dim=hidden_dim, output_dim=hidden_dim) self.conv_block = nn.ModuleList([GraphConv(input_dim=hidden_dim, output_dim=hidden_dim) for i in range(num_layers)]) self.conv_last = GraphConv(input_dim=hidden_dim, output_dim=output_dim) self.act = nn.ReLU() for m in self.modules(): if isinstance(m, GraphConv): m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu')) # init_range = np.sqrt(6.0 / (m.input_dim + m.output_dim)) # m.weight.data = torch.rand([m.input_dim, m.output_dim]).cuda()*init_range # print('find!')
Example #28
Source File: model.py From GraphRNN with MIT License | 5 votes |
def __init__(self, input_dim, hidden_dim, latent_dim, max_num_nodes, pool='sum'): ''' Args: input_dim: input feature dimension for node. hidden_dim: hidden dim for 2-layer gcn. latent_dim: dimension of the latent representation of graph. ''' super(GraphVAE, self).__init__() self.conv1 = model.GraphConv(input_dim=input_dim, output_dim=hidden_dim) self.bn1 = nn.BatchNorm1d(input_dim) self.conv2 = model.GraphConv(input_dim=hidden_dim, output_dim=hidden_dim) self.bn2 = nn.BatchNorm1d(input_dim) self.act = nn.ReLU() output_dim = max_num_nodes * (max_num_nodes + 1) // 2 #self.vae = model.MLP_VAE_plain(hidden_dim, latent_dim, output_dim) self.vae = model.MLP_VAE_plain(input_dim * input_dim, latent_dim, output_dim) #self.feature_mlp = model.MLP_plain(latent_dim, latent_dim, output_dim) self.max_num_nodes = max_num_nodes for m in self.modules(): if isinstance(m, model.GraphConv): m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu')) elif isinstance(m, nn.BatchNorm1d): m.weight.data.fill_(1) m.bias.data.zero_() self.pool = pool
Example #29
Source File: model.py From GraphRNN with MIT License | 5 votes |
def __init__(self, input_size, output_size, stride=2): super(CNN_decoder_attention, self).__init__() self.input_size = input_size self.output_size = output_size self.relu = nn.ReLU() self.deconv = nn.ConvTranspose1d(in_channels=int(self.input_size), out_channels=int(self.input_size), kernel_size=3, stride=stride) self.bn = nn.BatchNorm1d(int(self.input_size)) self.deconv_out = nn.ConvTranspose1d(in_channels=int(self.input_size), out_channels=int(self.output_size), kernel_size=3, stride=1, padding=1) self.deconv_attention = nn.ConvTranspose1d(in_channels=int(self.input_size), out_channels=int(self.input_size), kernel_size=1, stride=1, padding=0) self.bn_attention = nn.BatchNorm1d(int(self.input_size)) self.relu_leaky = nn.LeakyReLU(0.2) for m in self.modules(): if isinstance(m, nn.ConvTranspose1d): # n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels # m.weight.dataset.normal_(0, math.sqrt(2. / n)) m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu')) elif isinstance(m, nn.BatchNorm1d): m.weight.data.fill_(1) m.bias.data.zero_()
Example #30
Source File: model.py From GraphRNN with MIT License | 5 votes |
def __init__(self, input_size, output_size, stride = 2): super(CNN_decoder, self).__init__() self.input_size = input_size self.output_size = output_size self.relu = nn.ReLU() self.deconv1_1 = nn.ConvTranspose1d(in_channels=int(self.input_size), out_channels=int(self.input_size/2), kernel_size=3, stride=stride) self.bn1_1 = nn.BatchNorm1d(int(self.input_size/2)) self.deconv1_2 = nn.ConvTranspose1d(in_channels=int(self.input_size/2), out_channels=int(self.input_size/2), kernel_size=3, stride=stride) self.bn1_2 = nn.BatchNorm1d(int(self.input_size/2)) self.deconv1_3 = nn.ConvTranspose1d(in_channels=int(self.input_size/2), out_channels=int(self.output_size), kernel_size=3, stride=1, padding=1) self.deconv2_1 = nn.ConvTranspose1d(in_channels=int(self.input_size/2), out_channels=int(self.input_size / 4), kernel_size=3, stride=stride) self.bn2_1 = nn.BatchNorm1d(int(self.input_size / 4)) self.deconv2_2 = nn.ConvTranspose1d(in_channels=int(self.input_size / 4), out_channels=int(self.input_size/4), kernel_size=3, stride=stride) self.bn2_2 = nn.BatchNorm1d(int(self.input_size / 4)) self.deconv2_3 = nn.ConvTranspose1d(in_channels=int(self.input_size / 4), out_channels=int(self.output_size), kernel_size=3, stride=1, padding=1) self.deconv3_1 = nn.ConvTranspose1d(in_channels=int(self.input_size / 4), out_channels=int(self.input_size / 8), kernel_size=3, stride=stride) self.bn3_1 = nn.BatchNorm1d(int(self.input_size / 8)) self.deconv3_2 = nn.ConvTranspose1d(in_channels=int(self.input_size / 8), out_channels=int(self.input_size / 8), kernel_size=3, stride=stride) self.bn3_2 = nn.BatchNorm1d(int(self.input_size / 8)) self.deconv3_3 = nn.ConvTranspose1d(in_channels=int(self.input_size / 8), out_channels=int(self.output_size), kernel_size=3, stride=1, padding=1) for m in self.modules(): if isinstance(m, nn.ConvTranspose1d): # n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels # m.weight.dataset.normal_(0, math.sqrt(2. / n)) m.weight.data = init.xavier_uniform(m.weight.data, gain=nn.init.calculate_gain('relu')) elif isinstance(m, nn.BatchNorm1d): m.weight.data.fill_(1) m.bias.data.zero_()