FSCE
FSCE copied to clipboard
Hello~Where should this code be added?
You can use the code below to visualize the features.
def plot_embedding(data, label, title,show=None):
# param data:data
# param label:label
# param title:title of output
# param show:(int) if you have too much proposals to draw, you can draw part of them
# return: tsne-image
if show is not None:
temp = [i for i in range(len(data))]
random.shuffle(temp)
data = data[temp]
data = data[:show]
label = torch.tensor(label)[temp]
label = label[:show]
label.numpy().tolist()
x_min, x_max = np.min(data, 0), np.max(data, 0)
data = (data - x_min) / (x_max - x_min) # norm data
fig = plt.figure()
# go through all the samples
data = data.tolist()
label = label.squeeze().tolist()
for i in range(len(data)):
plt.text(data[i][0], data[i][1], ".",fontsize=18, color=plt.cm.tab20(label[i] / 20))
plt.title(title, fontsize=14)
return fig
# weight:(n proposals * 1024-D) input of the classifier
# label: the label of the proposals/ground truth
# we only select foreground proposals to visualize
# you can try to visualize the weight of different classes by extracting weight during training or testing stage
ts = TSNE(n_components=2,init='pca', random_state=0)
weight = ts.fit_transform(weight)
fig = plot_embedding(weight, label, 't-SNE feature child')
plt.show()
Originally posted by @Chauncy-Cai in https://github.com/megvii-research/FSCE/issues/3#issuecomment-802534849