File size: 1,078 Bytes
a638e43 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import torch
from torch import nn
import logging
logger = logging.getLogger(__name__)
from model.layers import FCPlusTransformer
class VideoScoringHead(nn.Module):
"""
Video Scoring Head
"""
def __init__(self, config,base_bert_layer_config,hidden_dim):
super(VideoScoringHead, self).__init__()
base_bert_layer_config = base_bert_layer_config
hidden_dim = hidden_dim
self.video_feature_modeling = FCPlusTransformer(base_bert_layer_config, hidden_dim * 5)
self.video_score_predictor = nn.Sequential(
nn.Linear(**config.linear_1_cfg),
nn.ReLU(),
nn.Linear(**config.linear_2_cfg)
)
def forward(self, G, video_mask):
## Contexual_QAL_feature for video scoring
R = self.video_feature_modeling(
features=G,
feat_mask=video_mask)
holistic_video_feature, _ = torch.max(R, dim=1)
video_similarity_score = self.video_score_predictor(holistic_video_feature.squeeze(1)) # r
return video_similarity_score |