先实现一个简单的关系网络
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