this.feat_list = Object.keys(response.data.image_info); for (var i = 0; i < this.feat_list.length; i++) { response.data.image_info[this.feat_list[i]][2] = this.feat_list[i]; this.feature_list.push(response.data.image_info[this.feat_list[i]]); } this.feature_list.push(response.data.image_info); this.feature_list_1 = this.feature_list[0]; this.dialogTableVisible = false; this.percentage = 0; this.notice1(); });
时间: 2024-03-04 15:51:18 浏览: 77
这段代码是在处理从服务器返回的数据。首先,它会将服务器返回的 response 数据中 image_info 对象的属性名(即特征列表)存储到 feat_list 数组中。然后,它会遍历 feat_list 数组,对于每一个特征,它会在 image_info 对象中添加一个属性,将该特征的名字存储到这个属性中,并将该属性添加到 feature_list 数组中。最后,它将 feature_list 数组中的第一个元素赋值给 feature_list_1 变量,并关闭一个弹出框(dialogTableVisible),将上传进度条的百分比重置为 0,并执行一个名为 notice1 的函数。
相关问题
class NormedLinear(nn.Module): def __init__(self, feat_dim, num_classes): super().__init__() self.weight = nn.Parameter(torch.Tensor(feat_dim, num_classes)) self.weight.data.uniform_(-1, 1).renorm_(2, 1, 1e-5).mul_(1e5) def forward(self, x): return F.normalize(x, dim=1).mm(F.normalize(self.weight, dim=0)) class LearnableWeightScalingLinear(nn.Module): def __init__(self, feat_dim, num_classes, use_norm=False): super().__init__() self.classifier = NormedLinear(feat_dim, num_classes) if use_norm else nn.Linear(feat_dim, num_classes) self.learned_norm = nn.Parameter(torch.ones(1, num_classes)) def forward(self, x): return self.classifier(x) * self.learned_norm class DisAlignLinear(nn.Module): def __init__(self, feat_dim, num_classes, use_norm=False): super().__init__() self.classifier = NormedLinear(feat_dim, num_classes) if use_norm else nn.Linear(feat_dim, num_classes) self.learned_magnitude = nn.Parameter(torch.ones(1, num_classes)) self.learned_margin = nn.Parameter(torch.zeros(1, num_classes)) self.confidence_layer = nn.Linear(feat_dim, 1) torch.nn.init.constant_(self.confidence_layer.weight, 0.1) def forward(self, x): output = self.classifier(x) confidence = self.confidence_layer(x).sigmoid() return (1 + confidence * self.learned_magnitude) * output + confidence * self.learned_margin class MLP_ConClassfier(nn.Module): def __init__(self): super(MLP_ConClassfier, self).__init__() self.num_inputs, self.num_hiddens_1, self.num_hiddens_2, self.num_hiddens_3, self.num_outputs \ = 41, 512, 128, 32, 5 self.num_proj_hidden = 32 self.mlp_conclassfier = nn.Sequential( nn.Linear(self.num_inputs, self.num_hiddens_1), nn.ReLU(), nn.Linear(self.num_hiddens_1, self.num_hiddens_2), nn.ReLU(), nn.Linear(self.num_hiddens_2, self.num_hiddens_3), ) self.fc1 = torch.nn.Linear(self.num_hiddens_3, self.num_proj_hidden) self.fc2 = torch.nn.Linear(self.num_proj_hidden, self.num_hiddens_3) self.linearclassfier = nn.Linear(self.num_hiddens_3, self.num_outputs) self.NormedLinearclassfier = NormedLinear(feat_dim=self.num_hiddens_3, num_classes=self.num_outputs) self.DisAlignLinearclassfier = DisAlignLinear(feat_dim=self.num_hiddens_3, num_classes=self.num_outputs, use_norm=True) self.LearnableWeightScalingLinearclassfier = LearnableWeightScalingLinear(feat_dim=self.num_hiddens_3, num_classes=self.num_outputs, use_norm=True)
这段代码定义了一个名为MLP_ConClassfier的神经网络模型,它包含了多个子模块,包括三个不同的分类器:NormedLinearclassfier、DisAlignLinearclassfier和LearnableWeightScalingLinearclassfier。这些分类器都是基于输入特征进行分类的,并且使用不同的方法来实现分类功能。此外,该模型还包含了一个MLP网络,用于将输入特征映射到更高维的特征空间中。该模型的输入特征维度为41,输出类别数为5。
class GraphPooling(nn.Module): def __init__(self, pool_type): super(GraphPooling, self).__init__() self.pool_type = pool_type if pool_type == 'mean': self.reduce_func = fn.mean(msg='m', out='h') elif pool_type == 'max': self.reduce_func = fn.max(msg='m', out='h') elif pool_type == 'min': self.reduce_func = fn.min(msg='m', out='h') def forward(self, g, feat): with g.local_scope(): g.ndata['x'] = feat g.update_all(fn.copy_u('x', 'm'), self.reduce_func) return g.ndata['h']
这段代码定义了一个名为GraphPooling的神经网络模块,用于对图进行池化操作。
在初始化方法__init__中,通过传入参数pool_type来指定池化操作的类型。如果pool_type为'mean',则使用fn.mean函数进行平均池化;如果pool_type为'max',则使用fn.max函数进行最大池化;如果pool_type为'min',则使用fn.min函数进行最小池化。
在forward方法中,输入参数g表示输入的图,feat表示节点的特征表示。在每次前向传播过程中,首先将特征表示feat赋值给图g中的节点数据字段'x'。然后使用g.update_all函数,根据消息传递规则fn.copy_u('x', 'm')将节点特征'x'复制到边上的消息'm'中,并使用预定义的reduce_func对消息进行池化操作。最后,返回经过池化操作后的节点特征'h'。
这个GraphPooling模块可以方便地根据不同的池化类型对输入的图进行池化操作,并提取出整体图的特征表示。
阅读全文