FSCE icon indicating copy to clipboard operation
FSCE copied to clipboard

Hello~Where should this code be added?

Open MrCrightH opened this issue 2 years ago • 0 comments

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

MrCrightH avatar Aug 11 '22 06:08 MrCrightH