Python torch.nn.functional.sigmoid() Examples
The following are 30
code examples of torch.nn.functional.sigmoid().
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.functional
, or try the search function
.
Example #1
Source File: nconv.py From nconv with GNU General Public License v3.0 | 6 votes |
def _pos(self, p): pos_fn = self.pos_fn.lower() if pos_fn == 'softmax': p_sz = p.size() p = p.view(p_sz[0],p_sz[1], -1) p = F.softmax(p, -1) return p.view(p_sz) elif pos_fn == 'exp': return torch.exp(p) elif pos_fn == 'softplus': return F.softplus(p, beta=10) elif pos_fn == 'sigmoid': return F.sigmoid(p) else: print('Undefined positive function!') return
Example #2
Source File: model.py From LiteralE with Apache License 2.0 | 6 votes |
def forward(self, e1, rel): e1_embedded= self.emb_e(e1).view(Config.batch_size, 1, 10, 20) rel_embedded = self.emb_rel(rel).view(Config.batch_size, 1, 10, 20) stacked_inputs = torch.cat([e1_embedded, rel_embedded], 2) stacked_inputs = self.bn0(stacked_inputs) x= self.inp_drop(stacked_inputs) x= self.conv1(x) x= self.bn1(x) x= F.relu(x) x = self.feature_map_drop(x) x = x.view(Config.batch_size, -1) #print(x.size()) x = self.fc(x) x = self.hidden_drop(x) x = self.bn2(x) x = F.relu(x) x = torch.mm(x, self.emb_e.weight.transpose(1,0)) x += self.b.expand_as(x) pred = F.sigmoid(x) return pred
Example #3
Source File: model.py From LiteralE with Apache License 2.0 | 6 votes |
def forward(self, e1, rel): e1_emb = self.emb_e(e1) rel_emb = self.emb_rel(rel) e1_emb = e1_emb.view(-1, self.emb_dim) rel_emb = rel_emb.view(-1, self.emb_dim) # Begin literals e1_num_lit = self.numerical_literals[e1.view(-1)] e1_emb = self.emb_num_lit(torch.cat([e1_emb, e1_num_lit], 1)) e2_multi_emb = self.emb_num_lit(torch.cat([self.emb_e.weight, self.numerical_literals], 1)) # End literals e1_emb = self.inp_drop(e1_emb) rel_emb = self.inp_drop(rel_emb) pred = torch.mm(e1_emb*rel_emb, e2_multi_emb.t()) pred = F.sigmoid(pred) return pred
Example #4
Source File: model.py From LiteralE with Apache License 2.0 | 6 votes |
def forward(self, e1, rel): e1_embedded_real = self.inp_drop(self.emb_e_real(e1)).view(Config.batch_size, -1) rel_embedded_real = self.inp_drop(self.emb_rel_real(rel)).view(Config.batch_size, -1) e1_embedded_img = self.inp_drop(self.emb_e_img(e1)).view(Config.batch_size, -1) rel_embedded_img = self.inp_drop(self.emb_rel_img(rel)).view(Config.batch_size, -1) e1_embedded_real = self.inp_drop(e1_embedded_real) rel_embedded_real = self.inp_drop(rel_embedded_real) e1_embedded_img = self.inp_drop(e1_embedded_img) rel_embedded_img = self.inp_drop(rel_embedded_img) # complex space bilinear product (equivalent to HolE) realrealreal = torch.mm(e1_embedded_real*rel_embedded_real, self.emb_e_real.weight.transpose(1,0)) realimgimg = torch.mm(e1_embedded_real*rel_embedded_img, self.emb_e_img.weight.transpose(1,0)) imgrealimg = torch.mm(e1_embedded_img*rel_embedded_real, self.emb_e_img.weight.transpose(1,0)) imgimgreal = torch.mm(e1_embedded_img*rel_embedded_img, self.emb_e_real.weight.transpose(1,0)) pred = realrealreal + realimgimg + imgrealimg - imgimgreal pred = F.sigmoid(pred) return pred
Example #5
Source File: model.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def generate_detections(self, proposal_bboxes: Tensor, proposal_classes: Tensor, image_width: int, image_height: int) -> Tuple[Tensor, Tensor, Tensor, Tensor]: batch_size = proposal_bboxes.shape[0] #print("detection_bboxes:",proposal_bboxes) detection_bboxes = BBox.clip(proposal_bboxes, left=0, top=0, right=image_width, bottom=image_height) #print("detection_bboxes_clip:", detection_bboxes) detection_probs = F.sigmoid(proposal_classes) detection_zheng=detection_probs>=EvalConfig.KEEP all_detection_classes=[] all_detection_probs=[] for label,prob in zip(detection_zheng,detection_probs): detection_classes = [] detection_p=[] for index,i in enumerate(label): if i==1: detection_classes.append(index) detection_p.append(prob[index].item()) all_detection_classes.append(detection_classes) all_detection_probs.append(detection_p) #print('all_detection_classes:',all_detection_classes) return detection_bboxes, all_detection_classes, all_detection_probs
Example #6
Source File: recurrent_attention.py From Attentive-Filtering-Network with MIT License | 6 votes |
def forward(self, x, hidden): # input shiddenape is N*C*H*W, C is 1 x = x.squeeze() # get rid of C x = x.transpose(1,2).transpose(0,1) # make it W*N*H r, hidden = self.gru(x, hidden) r = r.transpose(1,0).transpose(2,1) # make it N*H*W r = r.contiguous() r = r.unsqueeze(1) # make it N*C*H*W, C is 1 #print(r.size()) r = self.conv(r) #print(r.size()) r = self.avg(r) #print(r.size()) r = r.view(r.size(0), -1) #print(r.size()) r = self.fc(r) return F.sigmoid(r), hidden
Example #7
Source File: model.py From LiteralE with Apache License 2.0 | 6 votes |
def forward(self, e1, rel): e1_emb = self.emb_e(e1) rel_emb = self.emb_rel(rel) e1_emb = e1_emb.view(-1, self.emb_dim) rel_emb = rel_emb.view(-1, self.emb_dim) # Begin literals e1_num_lit = self.numerical_literals[e1.view(-1)] e1_emb = self.emb_num_lit(e1_emb, e1_num_lit) e2_multi_emb = self.emb_num_lit(self.emb_e.weight, self.numerical_literals) # End literals e1_emb = self.inp_drop(e1_emb) rel_emb = self.inp_drop(rel_emb) pred = torch.mm(e1_emb*rel_emb, e2_multi_emb.t()) pred = F.sigmoid(pred) return pred
Example #8
Source File: residual_attention_network.py From Attentive-Filtering-Network with MIT License | 6 votes |
def forward(self, x): #print('1:', x.size()) x = self.conv1(x) #print('2:', x.size()) x = self.rb1(x) #print('3:', x.size()) x = self.mpool1(x) #print('4:', x.size()) x = self.features(x) #print('5:', x.size()) x = self.classifier(x) #print('6:', x.size()) x = self.mpool2(x) #print('7:', x.size()) x = x.view(x.size(0), -1) #print('8:', x.size()) x = self.fc(x) return F.sigmoid(x)
Example #9
Source File: model.py From LiteralE with Apache License 2.0 | 6 votes |
def forward(self, e1, rel): e1_emb = self.emb_e(e1) rel_emb = self.emb_rel(rel) e1_emb = e1_emb.view(-1, self.emb_dim) rel_emb = rel_emb.view(-1, self.emb_dim) # Begin literals # -------------- e1_num_lit = self.numerical_literals[e1.view(-1)] e1_txt_lit = self.text_literals[e1.view(-1)] e1_emb = self.emb_lit(e1_emb, e1_num_lit, e1_txt_lit) e2_multi_emb = self.emb_lit(self.emb_e.weight, self.numerical_literals, self.text_literals) # -------------- # End literals e1_emb = self.inp_drop(e1_emb) rel_emb = self.inp_drop(rel_emb) pred = torch.mm(e1_emb*rel_emb, e2_multi_emb.t()) pred = F.sigmoid(pred) return pred
Example #10
Source File: landmark_detector.py From kaggle-humpback with BSD 2-Clause "Simplified" License | 6 votes |
def inference(self, images=None, outputs=None, labels=None, **_): if outputs is None: assert images is not None outputs = self.model(images) num_outputs = LandmarkDetector.NUM_OUTPUTS outputs = outputs.view(-1,num_outputs,self.num_anchors,self.feature_size,self.feature_size) anchors = self._get_anchors() B,C,A,H,W = outputs.size() outputs = outputs.view(B,C,A*H*W) anchors = torch.stack([anchors]*B, dim=0) anchors = anchors.view(B,-1,A*H*W) scores, indices = torch.max(outputs[:,0], dim=1) outputs = outputs[torch.arange(B), :, indices] anchors = anchors[torch.arange(B), :, indices] boxes = self._targets_to_boxes(outputs[:,1:5], anchors) landmarks = self._targets_to_landmarks(outputs[:,5:], anchors) probabilities = F.sigmoid(scores) return {'boxes': boxes, 'landmarks': landmarks, 'probabilities': probabilities}
Example #11
Source File: predictive_models.py From G-Bert with MIT License | 6 votes |
def forward(self, inputs, dx_labels=None, rx_labels=None): # inputs (B, 2, max_len) # bert_pool (B, hidden) _, dx_bert_pool = self.bert(inputs[:, 0, :], torch.zeros( (inputs.size(0), inputs.size(2))).long().to(inputs.device)) _, rx_bert_pool = self.bert(inputs[:, 1, :], torch.zeros( (inputs.size(0), inputs.size(2))).long().to(inputs.device)) dx2dx, rx2dx, dx2rx, rx2rx = self.cls(dx_bert_pool, rx_bert_pool) # output logits if rx_labels is None or dx_labels is None: return F.sigmoid(dx2dx), F.sigmoid(rx2dx), F.sigmoid(dx2rx), F.sigmoid(rx2rx) else: loss = F.binary_cross_entropy_with_logits(dx2dx, dx_labels) + \ F.binary_cross_entropy_with_logits(rx2dx, dx_labels) + \ F.binary_cross_entropy_with_logits(dx2rx, rx_labels) + \ F.binary_cross_entropy_with_logits(rx2rx, rx_labels) return loss, F.sigmoid(dx2dx), F.sigmoid(rx2dx), F.sigmoid(dx2rx), F.sigmoid(rx2rx)
Example #12
Source File: grid_attention_layer.py From Attention-Gated-Networks with MIT License | 6 votes |
def _concatenation(self, x, g): input_size = x.size() batch_size = input_size[0] assert batch_size == g.size(0) # theta => (b, c, t, h, w) -> (b, i_c, t, h, w) -> (b, i_c, thw) # phi => (b, g_d) -> (b, i_c) theta_x = self.theta(x) theta_x_size = theta_x.size() # g (b, c, t', h', w') -> phi_g (b, i_c, t', h', w') # Relu(theta_x + phi_g + bias) -> f = (b, i_c, thw) -> (b, i_c, t/s1, h/s2, w/s3) phi_g = F.upsample(self.phi(g), size=theta_x_size[2:], mode=self.upsample_mode) f = F.relu(theta_x + phi_g, inplace=True) # psi^T * f -> (b, psi_i_c, t/s1, h/s2, w/s3) sigm_psi_f = F.sigmoid(self.psi(f)) # upsample the attentions and multiply sigm_psi_f = F.upsample(sigm_psi_f, size=input_size[2:], mode=self.upsample_mode) y = sigm_psi_f.expand_as(x) * x W_y = self.W(y) return W_y, sigm_psi_f
Example #13
Source File: grid_attention_layer.py From Attention-Gated-Networks with MIT License | 6 votes |
def _concatenation_debug(self, x, g): input_size = x.size() batch_size = input_size[0] assert batch_size == g.size(0) # theta => (b, c, t, h, w) -> (b, i_c, t, h, w) -> (b, i_c, thw) # phi => (b, g_d) -> (b, i_c) theta_x = self.theta(x) theta_x_size = theta_x.size() # g (b, c, t', h', w') -> phi_g (b, i_c, t', h', w') # Relu(theta_x + phi_g + bias) -> f = (b, i_c, thw) -> (b, i_c, t/s1, h/s2, w/s3) phi_g = F.upsample(self.phi(g), size=theta_x_size[2:], mode=self.upsample_mode) f = F.softplus(theta_x + phi_g) # psi^T * f -> (b, psi_i_c, t/s1, h/s2, w/s3) sigm_psi_f = F.sigmoid(self.psi(f)) # upsample the attentions and multiply sigm_psi_f = F.upsample(sigm_psi_f, size=input_size[2:], mode=self.upsample_mode) y = sigm_psi_f.expand_as(x) * x W_y = self.W(y) return W_y, sigm_psi_f
Example #14
Source File: demo_segmentation.py From Text_Segmentation_Image_Inpainting with GNU General Public License v3.0 | 6 votes |
def process(eval_img, device='cpu'): (img, origin, unpadder), file_name = eval_img with torch.no_grad(): out = model(img.to(device)) prob = F.sigmoid(out) mask = prob > 0.5 mask = torch.nn.MaxPool2d(kernel_size=(3, 3), padding=(1, 1), stride=1)(mask.float()).byte() mask = unpadder(mask) mask = mask.float().cpu() save_image(mask, file_name + ' _mask.jpg') origin_np = np.array(to_pil_image(origin[0])) mask_np = to_pil_image(mask[0]).convert("L") mask_np = np.array(mask_np, dtype='uint8') mask_np = draw_bounding_box(origin_np, mask_np, 500) mask_ = Image.fromarray(mask_np) mask_.save(file_name + "_contour.jpg") # ret, mask_np = cv2.threshold(mask_np, 127, 255, 0) # dst = cv2.inpaint(origin_np, mask_np, 1, cv2.INPAINT_NS) # out = Image.fromarray(dst) # out.save(file_name + ' _box.jpg')
Example #15
Source File: models.py From domainadaptation with Apache License 2.0 | 6 votes |
def forward(self, x): x1 = self.conv1(x) x2 = self.mp1(x1) x3 = self.conv2(x2) x4 = self.mp2(x3) x5 = self.conv3(x4) x6 = self.mp3(x5) # Bottom x7 = self.conv4(x6) # Up-sampling x8 = self.up1(x7, x5) x9 = self.up2(x8, x3) x10 = self.up3(x9, x1) x11 = self.conv9(x10) preds = F.sigmoid(x11) return preds
Example #16
Source File: discriminator.py From pytorchrl with MIT License | 6 votes |
def forward(self, obs_variable, actions_variable, target): """ Compute the cross entropy loss using the logit, this is more numerical stable than first apply sigmoid function and then use BCELoss. As in discriminator, we only want to discriminate the expert from learner, thus this is a binary classification problem. Parameters ---------- obs_variable (Variable): state wrapped in Variable actions_variable (Variable): action wrapped in Variable target (Variable): 1 or 0, mark the real and fake of the samples Returns ------- loss (Variable): """ logits = self.get_logits(obs_variable, actions_variable) loss_fn = nn.BCEWithLogitsLoss() loss = loss_fn(logits, target) return loss
Example #17
Source File: discriminator.py From pytorchrl with MIT License | 6 votes |
def prediction(self, observation, action): """ Make the prediction of the class label Parameters ---------- observation (numpy.ndarray): state action (numpy.ndarray): action Returns ------- prob (numpy.ndarray): """ obs_variable = Variable(torch.from_numpy(observation), volatile=True).type(torch.FloatTensor) # obs_variable sets volatile to True, thus, we do not set # it here action_variable = Variable(torch.from_numpy(action)).type( torch.FloatTensor) logits = self.get_logits(obs_variable, action_variable) probs = F.sigmoid(logits) return probs.data.numpy()
Example #18
Source File: __init__.py From yolo2-pytorch with GNU Lesser General Public License v3.0 | 6 votes |
def forward(self, x): device_id = x.get_device() if torch.cuda.is_available() else None feature = self.dnn(x) rows, cols = feature.size()[-2:] cells = rows * cols _feature = feature.permute(0, 2, 3, 1).contiguous().view(feature.size(0), cells, self.anchors.size(0), -1) sigmoid = F.sigmoid(_feature[:, :, :, :3]) iou = sigmoid[:, :, :, 0] ij = torch.autograd.Variable(utils.ensure_device(meshgrid(rows, cols).view(1, -1, 1, 2), device_id)) center_offset = sigmoid[:, :, :, 1:3] center = ij + center_offset size_norm = _feature[:, :, :, 3:5] anchors = torch.autograd.Variable(utils.ensure_device(self.anchors.view(1, 1, -1, 2), device_id)) size = torch.exp(size_norm) * anchors size2 = size / 2 yx_min = center - size2 yx_max = center + size2 logits = _feature[:, :, :, 5:] if _feature.size(-1) > 5 else None return feature, iou, center_offset, size_norm, yx_min, yx_max, logits
Example #19
Source File: sld.py From SemEval2019Task3 with MIT License | 5 votes |
def forward(self, a, a_len, a_emoji, elmo_a=None, elmo_b=None, elmo_c=None): # Sentence LSTM A a_out, a_hidden = self.lstm_forward(a, a_len, elmo_a, self.a_lstm, attention_layer=self.a_self_attention) a_emoji = self.deepmoji_model(a_emoji) a_emoji = F.relu(a_emoji) a_out = torch.cat((a_out, a_emoji), dim=1) # multi-task learning out1 = self.out2label(a_out) out2 = self.out2binary(a_out) out3 = F.sigmoid(self.out2emo(a_out)) return out1, out2, out3
Example #20
Source File: senet.py From MNIST-baselines with MIT License | 5 votes |
def forward(self, x): out = F.relu(self.bn1(self.conv1(x))) out = self.bn2(self.conv2(out)) # Squeeze w = F.avg_pool2d(out, out.size(2)) w = F.relu(self.fc1(w)) w = F.sigmoid(self.fc2(w)) # Excitation out = out * w # New broadcasting feature from v0.2! out += self.shortcut(x) out = F.relu(out) return out
Example #21
Source File: senet.py From MNIST-baselines with MIT License | 5 votes |
def forward(self, x): out = F.relu(self.bn1(x)) shortcut = self.shortcut(out) if hasattr(self, 'shortcut') else x out = self.conv1(out) out = self.conv2(F.relu(self.bn2(out))) # Squeeze w = F.avg_pool2d(out, out.size(2)) w = F.relu(self.fc1(w)) w = F.sigmoid(self.fc2(w)) # Excitation out = out * w out += shortcut return out
Example #22
Source File: capsnet.py From MNIST-baselines with MIT License | 5 votes |
def forward(self, x, target): mask = Variable(torch.zeros((x.size()[0], self.n_classes)), requires_grad=False) if next(self.parameters()).is_cuda: mask = mask.cuda() mask.scatter_(1, target.view(-1, 1), 1.) mask = mask.unsqueeze(2) x = x * mask x = x.view(-1, self.n_dim * self.n_classes) x = F.relu(self.fc1(x)) x = F.relu(self.fc2(x)) x = F.sigmoid(self.fc3(x)) return x
Example #23
Source File: model.py From LiteralE with Apache License 2.0 | 5 votes |
def forward(self, e1, rel): e1_emb = self.emb_e(e1).view(Config.batch_size, -1) rel_emb = self.emb_rel(rel) # Begin literals e1_num_lit = self.numerical_literals[e1.view(-1)] e1_emb = self.emb_num_lit(torch.cat([e1_emb, e1_num_lit], 1)) e2_multi_emb = self.emb_num_lit(torch.cat([self.emb_e.weight, self.numerical_literals], 1)) # End literals e1_emb = e1_emb.view(Config.batch_size, 1, 10, self.emb_dim//10) rel_emb = rel_emb.view(Config.batch_size, 1, 10, self.emb_dim//10) stacked_inputs = torch.cat([e1_emb, rel_emb], 2) stacked_inputs = self.bn0(stacked_inputs) x = self.inp_drop(stacked_inputs) x = self.conv1(x) x = self.bn1(x) x = F.relu(x) x = self.feature_map_drop(x) x = x.view(Config.batch_size, -1) # print(x.size()) x = self.fc(x) x = self.hidden_drop(x) x = self.bn2(x) x = F.relu(x) x = torch.mm(x, e2_multi_emb.t()) x += self.b.expand_as(x) pred = F.sigmoid(x) return pred
Example #24
Source File: model.py From LiteralE with Apache License 2.0 | 5 votes |
def forward(self, e1, rel): e1_embedded= self.emb_e(e1) rel_embedded= self.emb_rel(rel) e1_embedded = e1_embedded.view(-1, Config.embedding_dim) rel_embedded = rel_embedded.view(-1, Config.embedding_dim) e1_embedded = self.inp_drop(e1_embedded) rel_embedded = self.inp_drop(rel_embedded) pred = torch.mm(e1_embedded*rel_embedded, self.emb_e.weight.transpose(1,0)) pred = F.sigmoid(pred) return pred
Example #25
Source File: CopyGenerator.py From video-caption-openNMT.pytorch with MIT License | 5 votes |
def forward(self, hidden, attn, src_map): """ Compute a distribution over the target dictionary extended by the dynamic dictionary implied by compying source words. Args: hidden (`FloatTensor`): hidden outputs `[batch*tlen, input_size]` attn (`FloatTensor`): attn for each `[batch*tlen, input_size]` src_map (`FloatTensor`): A sparse indicator matrix mapping each source word to its index in the "extended" vocab containing. `[src_len, batch, extra_words]` """ # CHECKS batch_by_tlen, _ = hidden.size() batch_by_tlen_, slen = attn.size() slen_, batch, cvocab = src_map.size() aeq(batch_by_tlen, batch_by_tlen_) aeq(slen, slen_) # Original probabilities. logits = self.linear(hidden) logits[:, self.tgt_dict.stoi[onmt.io.PAD_WORD]] = -float('inf') prob = F.softmax(logits) # Probability of copying p(z=1) batch. p_copy = F.sigmoid(self.linear_copy(hidden)) # Probibility of not copying: p_{word}(w) * (1 - p(z)) out_prob = torch.mul(prob, 1 - p_copy.expand_as(prob)) mul_attn = torch.mul(attn, p_copy.expand_as(attn)) copy_prob = torch.bmm(mul_attn.view(-1, batch, slen) .transpose(0, 1), src_map.transpose(0, 1)).transpose(0, 1) copy_prob = copy_prob.contiguous().view(-1, cvocab) return torch.cat([out_prob, copy_prob], 1)
Example #26
Source File: senet.py From Cuff_less_BP_Prediction with MIT License | 5 votes |
def forward(self, x): out = F.relu(self.bn1(self.conv1(x))) out = self.bn2(self.conv2(out)) # Squeeze w = F.avg_pool2d(out, out.size(2)) w = F.relu(self.fc1(w)) w = F.sigmoid(self.fc2(w)) # Excitation out = out * w # New broadcasting feature from v0.2! out += self.shortcut(x) out = F.relu(out) return out
Example #27
Source File: model.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def loss(self, proposal_classes: Tensor,gt_proposal_classes: Tensor, batch_size,batch_indices) -> Tuple[Tensor, Tensor]: # assert np.any(np.isnan(np.array(proposal_classes)))==False # assert np.any(np.isnan(np.array(gt_proposal_classes))) == False cross_entropies = torch.zeros(batch_size, dtype=torch.float, device=proposal_classes.device).cuda() #batch_indices=torch.tensor(batch_indices,dtype=torch.float) for batch_index in range(batch_size): selected_indices = (batch_indices == batch_index).nonzero().view(-1) input=proposal_classes[selected_indices] target=gt_proposal_classes[selected_indices] if torch.numel(input)==0 or torch.numel(target)==0: #print("Warning:None DATA:",batch_index) continue assert torch.numel(input)==torch.numel(target) # print('input:',input) # print("input_sigmoid:", F.sigmoid(input)) # print('target:',target) cross_entropy =F.multilabel_soft_margin_loss(input=proposal_classes[selected_indices],target=gt_proposal_classes[selected_indices],reduction="mean") # cross_entropy = F.binary_cross_entropy(input=F.sigmoid(proposal_classes[selected_indices]), # target=gt_proposal_classes[selected_indices]) torch.nn.MultiLabelSoftMarginLoss # print('cross_entropy:',cross_entropy) # print('cross_entropy:',cross_entropy) # cross_entropy = F.cross_entropy(input=proposal_classes[selected_indices], # target=gt_proposal_classes[selected_indices]) cross_entropies[batch_index] = cross_entropy return cross_entropies
Example #28
Source File: senet.py From Cuff_less_BP_Prediction with MIT License | 5 votes |
def forward(self, x): out = F.relu(self.bn1(x)) shortcut = self.shortcut(out) if hasattr(self, 'shortcut') else x out = self.conv1(out) out = self.conv2(F.relu(self.bn2(out))) # Squeeze w = F.avg_pool2d(out, out.size(2)) w = F.relu(self.fc1(w)) w = F.sigmoid(self.fc2(w)) # Excitation out = out * w out += shortcut return out
Example #29
Source File: senet.py From mixup_pytorch with MIT License | 5 votes |
def forward(self, x): out = F.relu(self.bn1(self.conv1(x))) out = self.bn2(self.conv2(out)) # Squeeze w = F.avg_pool2d(out, out.size(2)) w = F.relu(self.fc1(w)) w = F.sigmoid(self.fc2(w)) # Excitation out = out * w # New broadcasting feature from v0.2! out += self.shortcut(x) out = F.relu(out) return out
Example #30
Source File: senet.py From mixup_pytorch with MIT License | 5 votes |
def forward(self, x): out = F.relu(self.bn1(x)) shortcut = self.shortcut(out) if hasattr(self, 'shortcut') else x out = self.conv1(out) out = self.conv2(F.relu(self.bn2(out))) # Squeeze w = F.avg_pool2d(out, out.size(2)) w = F.relu(self.fc1(w)) w = F.sigmoid(self.fc2(w)) # Excitation out = out * w out += shortcut return out