PVEN改进基于关系网络

本文介绍了如何基于深度学习改进关系网络,首先将batch['id']转化为one-hot编码,然后在epoch循环中应用关系网络。实验中尝试了两种版本:一是使用fc层对全局信息进行分类;二是参照'learning to compare'的数据组织方式。由于训练中断,计划从上次停止处继续训练。
摘要由CSDN通过智能技术生成

先实现一个简单的关系网络

def dense_to_one_hot(labels_dense, num_classes):
   """Convert class labels from scalars to one-hot vectors."""
   num_labels = labels_dense.shape[0]
   index_offset = np.arange(num_labels) * num_classes
   labels_one_hot = np.zeros((num_labels, num_classes))
   labels_one_hot.flat[index_offset + labels_dense.ravel()] = 1
   return labels_one_hot

class RelationNetwork(nn.Module):
    """docstring for RelationNetwork"""
    def __init__(self,input_size,hidden_size):
        super(RelationNetwork, self).__init__()
        # self.layer1 = nn.Sequential(
        #                 nn.Conv2d(128,64,kernel_size=3,padding=1),
        #                 nn.BatchNorm2d(64, momentum=1, affine=True),
        #                 nn.ReLU(),
        #                 nn.MaxPool2d(2))
        # self.layer2 = nn.Sequential(
        #                 nn.Conv2d(64,64,kernel_size=3,padding=1),
        #                 nn.BatchNorm2d(64, momentum=1, affine=True),
        #                 nn.ReLU(),
        #                 nn.MaxPool2d(2))
        self.fc1 = nn.Linear(input_size,hidden_size)
        self.fc2 = nn.Linear(hidden_size,576)

    def forward(self,x):
        # out = self.layer1(x)
        # out = self.layer2(out)
        # out = out.view(out.size(0),-1)
        out = F.relu(self.fc1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值