Esempio n. 1
0
def tsne_feature(X_features, y_label, use_cuda=True, save_fig=SAVE_NAME):
    print("Feature Shape: " + str(X_features.shape))
    print("Label len: " + str(len(y_label)))

    # reshape feature and label
    # reshaped_feature = np.asarray(reshaped_feature, dtype=np.uint8)
    y_label = np.asarray(y_label, dtype=np.uint8)
    if USE_PCA:
        pca = PCA(n_components=NCOMPONENTS)
        X_features = pca.fit_transform(X_features)
        print("PCA DONE")
    if USE_CUDA:
        from tsnecuda import TSNE
        domain_shift_tsne = TSNE(n_components=2,
                                 perplexity=15,
                                 learning_rate=10).fit_transform(X_features)
    else:
        from sklearn.manifold import TSNE
        domain_shift_tsne = TSNE(random_state=RS).fit_transform(X_features)

    fashion_scatter(domain_shift_tsne, y_label)
    #fashion_scatter_3D(domain_shift_tsne, y_label)
    #angle = 3
    #ani = animation.FuncAnimation(f, rotate, frames=np.arange(0, 360, angle), interval=50)
    #ani.save('inhadr_tsne1.gif', writer=animation.PillowWriter(fps=20))

    plt.savefig('./images/' + save_fig + '.png', dpi=120)
    return
Esempio n. 2
0
def apply_tsne(act, perplexity, n_iter):
    time_start = time.time()
    tsne = TSNE(n_components=2, verbose=1, perplexity=perplexity, n_iter=n_iter)
    tsne_results = tsne.fit_transform(act)
    # del act
    print(f"Time elapsed: {time.time() - time_start} seconds")
    return tsne_results
Esempio n. 3
0
def compute_tsne_scenarios():
    if PRECOMPUTED:
        x_subset, y_subset = load_dataset_precomputed()
    else:
        x_subset, y_subset = load_idda()

    if USE_PCA:
        #compute first pca
        pca = PCA(n_components=50)
        pca_result = pca.fit_transform(x_subset)
        print("PCA DONE")
        #compute than tsne
        domain_shift_tsne = TSNE(random_state=RS).fit_transform(pca_result)
        print("TSN DONE")
    else:
        # compute the tSNE
        if USE_CUDA:
            domain_shift_tsne = TSNE(n_components=2,
                                     perplexity=15,
                                     learning_rate=10).fit_transform(x_subset)
        else:
            domain_shift_tsne = TSNE(random_state=RS).fit_transform(x_subset)
        print("TSN DONE")

    # plot the tSNE computed
    fashion_scatter(domain_shift_tsne, y_subset)
    plt.savefig('./images/' + SAVE_NAME + '.png', dpi=120)
Esempio n. 4
0
def display_latent_code(
    latent_code: np.ndarray, labels: np.ndarray, title: str, seed: int
) -> None:
    """
    Plots the computed latent code representation for the features.

    Parameters
    ----------
    latent_code: np.ndarray
        The latent code representation for features.
    labels: np.ndarray
        The labels for the dataset features.
    title: str
        The plot title to use.
    seed: int
        The pseudorandom seed to use for reproducible t-SNE visualization.
    """
    tsne_encoder = TSNE(random_seed=seed, perplexity=50, learning_rate=10, n_iter=5000)
    latent_code = tsne_encoder.fit_transform(latent_code)
    sns.set_style("darkgrid")
    plt.scatter(latent_code[:, 0], latent_code[:, 1], c=labels, marker="o")
    plt.title(title)
    plt.grid()
    plt.savefig(fname=f"data/{title}.png", dpi=150)
    plt.show()
Esempio n. 5
0
def compute_tsne(X, plot=True):
    tsne_model = TSNE(n_components=2,
                      perplexity=40,
                      learning_rate=100,
                      verbose=10)
    tsne_Y = tsne_model.fit_transform(tsne_vectors)
    if plot:
        fig = plt.figure(figsize=(10, 10))
        ax = fig.gca()
        ax.scatter(tsne_Y[:, 1], tsne_Y[:, 0], c=tsne_labels, s=1, cmap='hsv')
Esempio n. 6
0
def tsne(lemniscate, perp, labels):

    if isinstance(perp, int):
        perp = [perp]
    else:
        perp = perp.split(',')

    for p in perp:
        x = lemniscate.memory
        x = x.data.cpu()
        x_embedded = TSNE(n_components=2, perplexity=p,
                          learning_rate=10).fit_transform(x)

        x, y = [[] for i in range(2)]
        for c in x_embedded:
            x.append(c[0])
            y.append(c[1])
        plt.scatter(x, y)

        for idx in labels.keys():
            label = labels[idx]
            lx = x[idx]
            ly = y[idx]
            plt.annotate(label,
                         xy=(lx, ly),
                         xytext=(-20, 20),
                         arrowprops=dict(arrowstyle='->',
                                         connectionstyle='arc3,rad=0'),
                         textcoords='offset points')
        plt.savefig('tsne-{}.png'.format(p))
        plt.clf()
Esempio n. 7
0
def do_tsne(options):
    options.shuffle = False
    options.batch_size = 2048
    options.cuda_device = f"cuda:{get_gpu_ids()[0]}"

    # Load dataset into memory
    dataset = getattr(datasets, options.dataset)(options).test_set
    num = len(dataset)

    # Get the model
    model = get_model(options)
    proj_dim = options.projection_dim

    X = np.empty((num, proj_dim))
    y = np.empty(num)

    # Get the dataloader
    loader = get_loader(dataset, options)

    idx = 0
    for (batch, labels) in loader:
        num_batch = batch.shape[0]

        X[idx:idx + num_batch] = model(batch).cpu().numpy()
        y[idx:idx + num_batch] = labels.cpu().numpy()

        idx += num_batch

    X_new = TSNE().fit_transform(X)
    return (X_new, y)
Esempio n. 8
0
    def visualize(self, src_data_loader, tgt_data_loader, epoch):
        fig = plt.figure()
        features = []
        labels = []
        for data_loader in [src_data_loader, tgt_data_loader]:
            tmp_features = []
            tmp_labels = []
            for i, inputs in enumerate(data_loader):
                with torch.no_grad():
                    inputs, targets = self._parse_data(inputs)
                    feature = self.model.extract_feature(inputs)
                tmp_features.append(feature)
                tmp_labels.append(targets)
            tmp_features = torch.cat(tmp_features, dim=0)
            tmp_labels = torch.cat(tmp_labels, dim=0)
            tmp_features = tmp_features.detach().cpu().numpy()
            tmp_labels = tmp_labels.detach().cpu().numpy()
            features.append(tmp_features)
            labels.append(tmp_labels)

        mid = features[0].shape[0]
        features = np.concatenate((features[0], features[1]), axis=0)
        feat_tsne = TSNE().fit_transform(features)

        plt.scatter(feat_tsne[:mid,0], feat_tsne[:mid,1], c=labels[0], alpha=0.4)
        #plt.scatter(feat_tsne[mid:,0], feat_tsne[mid:,1], c=labels[1]/2, alpha=0.5)

        save_path = osp.join(self.backup_path, str(epoch)+'.png')
        plt.savefig(save_path)
        self.writer.add_figure('visualization', fig,global_step=epoch)

        plt.clf()
Esempio n. 9
0
def proj(X):
    Y = TSNE(n_components=2).fit_transform(X)
    # scaler = MinMaxScaler()
    # Y = scaler.fit_transform(Y)
    # Y = Y.tolist()
    # Y = np.round(Y, decimals=3).tolist()
    return Y
Esempio n. 10
0
def write_tsne(label_dict, embedding, extension="png", tsne_model=None):
    """
    base:https://medium.com/analytics-vidhya/super-fast-tsne-cuda-on-kaggle-b66dcdc4a5a4
    """
    if tsne_model is None:
        tsne_model = TSNE()

    x_embedding = tsne_model.fit_transform(embedding)

    for key in label_dict:
        label = label_dict[key]
        embedding_and_label = pd.concat([pd.DataFrame(x_embedding), pd.DataFrame(data=label,columns=["label"])], axis=1)
        sns.FacetGrid(embedding_and_label, hue="label", height=6).map(plt.scatter, 0, 1).add_legend()
        plt.savefig("{}.{}".format(key,extension))
        plt.clf()
    plt.close('all')
Esempio n. 11
0
def tsne(X, n_components, perplexity, learning_rate, N, gt_classes, dir_out,
         suffix, has_label):

    X_embedded = TSNE(
        n_components=n_components,
        perplexity=perplexity,
        learning_rate=learning_rate,
    ).fit_transform(X)

    if has_label:
        fig = plt.figure(figsize=(20, 15))
    else:
        fig = plt.figure(figsize=(15, 15))

    # cmap = plt.cm.jet
    # cmap = plt.cm.rainbow
    cmap = discrete_cmap(N, base_cmap='tab20')

    scat = plt.scatter(
        X_embedded[:, 0],
        X_embedded[:, 1],
        c=gt_classes[:],
        cmap=cmap,
    )

    # bg_inds = np.where(gt_classes == 0)[0]
    # fg_inds = np.where(gt_classes > 0)[0]
    # plt.scatter(
    # X_embedded[bg_inds, 0],
    # X_embedded[bg_inds, 1],
    # c=gt_classes[bg_inds],
    # cmap=cmap,
    # )

    if has_label:
        plt.colorbar(ticks=range(N))
        plt.clim(-0.5, N - 0.5)

    plt.axis('off')
    plt.tick_params(axis='both',
                    left='off',
                    top='off',
                    right='off',
                    bottom='off',
                    labelleft='off',
                    labeltop='off',
                    labelright='off',
                    labelbottom='off')
    plt.tight_layout(pad=0)

    # now = strftime("%Y%m%d_%H%M%S")
    save_path = os.path.join(
        dir_out, '{}_{}_{}.png'.format(
            perplexity,
            learning_rate,
            suffix,
        ))
    plt.savefig(save_path, bbox_inches='tight', pad_inches=0)
    plt.close('all')
Esempio n. 12
0
def write_tsne(file_name, embedding, ins_label, sem_label=None):
    """
    base:https://medium.com/analytics-vidhya/super-fast-tsne-cuda-on-kaggle-b66dcdc4a5a4
    """
    x_embedding = TSNE().fit_transform(embedding)
    embedding_and_ins_label = pd.concat([pd.DataFrame(x_embedding), pd.DataFrame(data=ins_label,columns=["label"])], axis=1)
    sns.FacetGrid(embedding_and_ins_label, hue="label", height=6).map(plt.scatter, 0, 1).add_legend()
    plt.savefig(file_name)
    plt.close()
Esempio n. 13
0
def tsne_vis(feature, feature_labels, vis_path):
    feature_np = feature.detach().cpu().numpy()
    feature_embeddings = TSNE().fit_transform(feature_np)
    vis_x = feature_embeddings[:, 0]
    vis_y = feature_embeddings[:, 1]
    plt.figure(figsize=(4, 3), dpi=160)
    plt.scatter(vis_x, vis_y, c=feature_labels, cmap=plt.cm.get_cmap("jet", 10), marker='.')
    plt.colorbar(ticks=range(10))
    plt.clim(-0.5, 9.5)
    plt.savefig(vis_path)
Esempio n. 14
0
def to_tsne(conv, labels, resultpath):
    plt.figure(figsize=(8, 8))
    X_embedded = TSNE(n_components=2,
                      perplexity=15,
                      learning_rate=10,
                      random_seed=0).fit_transform(conv)
    plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=labels, alpha=0.8)
    plt.colorbar()
    plt.title('TSNE Features and labels')
    plt.savefig(os.path.join(resultpath, 'tsne.png'))
    plt.close()
Esempio n. 15
0
def do_tsne_on_episode(options):
    options.cuda_device = f"cuda:{get_gpu_ids()[0]}"
    episode_loader = SimpleShotEpisodes(options).episode_loader(options)
    model = get_model(options)

    idx = 0
    for (batch, labels) in episode_loader:
        X = model(batch).cpu().numpy()
        y = labels.cpu().numpy()
        X_new = TSNE(perplexity=10).fit_transform(X)
        visualize(X_new, y, f"figs/fig{idx:03d}.png")
        idx += 1
Esempio n. 16
0
def compute_tsne_2d_components(embedding_dict):
    embeddings = []
    for name, path in embedding_dict.items():
        if os.path.exists(path):
            embedding_pd = pd.read_parquet(path)
            vectors = np.array([np.array(v) for v in embedding_pd['vector'].to_numpy()])
            vectors_tsne_results = TSNE(n_components=2, perplexity=40, learning_rate=10).fit_transform(vectors)
            embedding_pd = embedding_pd.join(pd.DataFrame(data=vectors_tsne_results, columns=['tsne-2d-one', 'tsne-2d-two']))
            embeddings.append((name, embedding_pd))
        else:
            LOGGER.error('embedding {name} does not exisit at {path}'.format(name=name, 
                                                                             path=path))
    return embeddings
Esempio n. 17
0
def reduce_dimensions(model, perplexity):
    num_dimensions = 2  # final num dimensions (2D, 3D, etc)

    vectors = []  # positions in vector space
    labels = []  # keep track of words to label our data again later
    for word in model.wv.vocab:
        vectors.append(model.wv[word])
        labels.append(word)

    # convert both lists into numpy vectors for reduction
    vectors = np.asarray(vectors)
    labels = np.asarray(labels)

    # reduce using t-SNE
    vectors = np.asarray(vectors)
    tsne = TSNE(n_components=num_dimensions, perplexity=perplexity)
    vectors = tsne.fit_transform(vectors)

    x_vals = [v[0] for v in vectors]
    y_vals = [v[1] for v in vectors]

    print(x_vals[:5])
    return x_vals, y_vals, labels
def get_tsne(model, tsneloader, device):
    model.eval()
    feature_space = []
    sample_weights = []
    with torch.no_grad():
        for image, target, file_labelweight in tsneloader:
            image, target = image.to(device), target.to(device)
            features = model.encoder(image)
            if features.size()[3] == 72:
                continue
            flattened_features = np.squeeze(features.cpu().numpy()).transpose(
                (1, 2, 0))
            flattened_features = np.reshape(
                flattened_features, (np.prod(flattened_features.shape), ))
            feature_space.append(flattened_features)
            sample_weights.append(file_labelweight[1][0].item())
    return TSNE(perplexity=100, learning_rate=300).fit_transform(
        np.array(feature_space)), sample_weights
def main(training_method, dataset_name, dataset_dir, gpu_id, seed):
    torch.manual_seed(seed)
    device = get_device(gpu_id)

    dataset = get_data(dataset_name, dataset_dir)
    features_dimension, classes_dimensions = dataset.num_features, dataset.num_classes
    data = dataset[0]
    data = data.to(device)

    model, optimizer = get_model_and_optimizer(training_method,
                                               features_dimension,
                                               classes_dimensions, device)

    best_validation_accuracy = best_test_accuracy = 0
    for e in range(1, 251):
        train(model, optimizer, data)
        training_accuracy, validation_accuracy, test_accuracy = test(
            model, data)
        if validation_accuracy > best_validation_accuracy:
            best_validation_accuracy = validation_accuracy
            best_test_accuracy = test_accuracy
        print(
            f"Epoch: {e}, Train: {training_accuracy:.4f}, Val.: {validation_accuracy:.4f} "
            f"({best_validation_accuracy:.4f}), Test: {test_accuracy:.4f} ({best_test_accuracy:.4f})"
        )

    embeddings = model.get_hidden_embeddings(data).detach().cpu().numpy()
    tsne_embeddings = TSNE(n_components=2,
                           perplexity=20,
                           learning_rate=100,
                           n_iter=5000).fit_transform(embeddings)

    sb.set_style('white', {})
    tsne_plot = sb.scatterplot(x=tsne_embeddings[:, 0],
                               y=tsne_embeddings[:, 1],
                               hue=data.y.cpu(),
                               legend=False,
                               edgecolor=None,
                               palette=sb.color_palette("colorblind",
                                                        n_colors=7))
    tsne_plot.set(xticks=[], yticks=[])
    tsne_plot = tsne_plot.get_figure()
    sb.despine(fig=tsne_plot, left=True, bottom=True)
    tsne_plot.savefig('/home/julienlaunay/tsne.png')
Esempio n. 20
0
def plot_tsne(ax, curnpz, name, cluster_path='./data_clean/results/'):
    labels = np.load("{}{}/features_conv_v27.npz".format(cluster_path,
                                                         name))['labels'][:, 1]
    conv = np.load("{}{}/features_conv_v27.npz".format(cluster_path,
                                                       name))['feature_vector']

    cal = calinski_harabasz_score(conv, labels)

    X_embedded = TSNE(n_components=2,
                      perplexity=15,
                      learning_rate=10,
                      random_seed=0).fit_transform(conv)

    classes = np.unique(labels)
    cmap = plt.cm.get_cmap('brg', len(classes))
    im = ax.scatter(X_embedded[:, 0], X_embedded[:, 1], c=labels, cmap=cmap)
    ax.figure.colorbar(im, ax=ax, ticks=classes)
    title = "Cluster audio, T-SNE representation"
    ax.set(title=title)

    space = int(len(conv) * 0.1)
    add_direction(ax, X_embedded[:, 0], X_embedded[:, 1], space, 5)
    return ax
Esempio n. 21
0
def save_data(embeddings, labels, iteration=None, detected_labels=None):
    N_embedded = embeddings.shape[1]
    # num_dims = N_embedded
    # num_display_dims = 2
    # tsne_lr = 20.0

    # Get only the non-zero indexes
    idx_array = labels.nonzero()
    idx_tuple = idx_array.split(1, dim=1)
    labeled_pixels = labels[idx_tuple].squeeze(1)
    object_pixels = torch.gather(embeddings, 0,
                                 idx_array.repeat(1, N_embedded))

    from tsnecuda import TSNE
    # from tsne import tsne
    X = object_pixels.cpu().detach().numpy()
    Y = TSNE(n_components=2, perplexity=40, learning_rate=50).fit_transform(X)

    fig = plt.figure()
    ax1 = fig.add_subplot(111)
    ax1.scatter(Y[:, 0], Y[:, 1], 5, labeled_pixels, cmap='tab20b')
    if iteration is None:
        iteration = 0
    plt.savefig("low_dim_embeeding/embedded_%d.png" % iteration)
    plt.close(fig)

    if detected_labels is not None:
        detected_labels_pixels = detected_labels[idx_tuple].squeeze(1)
        fig = plt.figure()
        ax1 = fig.add_subplot(111)
        pylab.scatter(Y[:, 0],
                      Y[:, 1],
                      5,
                      detected_labels_pixels,
                      cmap='tab20b')
        pylab.savefig("low_dim_embeeding/embedded_%d.png" % (iteration + 1))
        pylab.close(fig)
Esempio n. 22
0
    embed_set = "embedding"
    embed_dir = "stored_data/embeddings"
    embed_dir = os.path.join(embed_dir, embed_name, "embeddings")
    create_folder(embed_dir)
    fig_dir = os.path.join(embed_dir, "figures")
    create_folder(fig_dir)

    df_emb, embeddings = calculate_embedding(test_dataset, emb_model,
                                             savedir=os.path.join(embed_dir, embed_set), concatenate="append")
    print(embeddings.mean())
    print(embeddings.var())
    embeddings = sklearn.preprocessing.StandardScaler().fit_transform(embeddings.reshape(embeddings.shape[0], -1))
    print("normalized")
    print(embeddings.mean())
    print(embeddings.var())
    df_emb = df_emb.fillna("")
    tsne = TSNE()
    tsne_emb = tsne.fit_transform(X=embeddings.reshape(embeddings.shape[0], -1))
    tsne_plots(tsne_emb, df_emb, savefig=os.path.join(fig_dir, embed_set))
    scater_valid_rat = scatter_ratio(embeddings.reshape(embeddings.shape[0], -1), df_emb.reset_index())
    silhouette_valid_score = sklearn.metrics.silhouette_score(
        embeddings.reshape(embeddings.shape[0], -1), df_emb.event_labels, metric='euclidean')
    LOG.info("Valid silhouette for all classes in 2D (tsne) : {}".format(
        sklearn.metrics.silhouette_score(df_emb[["X", "Y"]], df_emb.event_labels, metric='euclidean')))

    embed_dir = "stored_data/embeddings"
    embed_dir = os.path.join(embed_dir, embed_name)
    create_folder(embed_dir)
    np.save(os.path.join(embed_dir, "embed" + str(epoch_model)), embeddings)
    test_fr.to_csv(os.path.join(embed_dir, "df" + str(epoch_model)), sep="\t", index=False)
Esempio n. 23
0
embedding_pd = pd.read_parquet(
    '/data/research_ops/omops/omop_2019q4_embeddings/mce_visit/embeddings')
embedding_pd.set_index('standard_concept_id', inplace=True)

patient_event = spark.read.parquet(
    '/data/research_ops/omops/omop_2019q4_embeddings/visit/patient_event/')
patient_event = patient_event \
    .withColumn("lower_bound", F.unix_timestamp(F.date_add(F.from_unixtime(F.col('date'), 'yyyy-MM-dd'), -30), 'yyyy-MM-dd')) \
    .withColumn("upper_bound", F.unix_timestamp(F.date_add(F.from_unixtime(F.col('date'), 'yyyy-MM-dd'), 30), 'yyyy-MM-dd'))
patient_event.cache()

data = visualize_time_lines(patient_event, 312327, 5000)
data['sequence'] = [list(map(int, i.split())) for i in data['sequence']]
sequences = data['sequence'].to_list()
max_pooled_vector = np.asarray([max_pool(embedding_pd, s) for s in sequences])
vectors_tsne_results = TSNE(n_components=2, perplexity=40,
                            learning_rate=10).fit_transform(max_pooled_vector)
data = data.join(
    pd.DataFrame(data=vectors_tsne_results,
                 columns=['tsne-2d-one', 'tsne-2d-two']))

alt.data_transformers.disable_max_rows()
alt.Chart(data, title='max pooled vectors').mark_point().encode(
    x='tsne-2d-one:Q', y='tsne-2d-two:Q', tooltip=['person_id']).interactive()

sequences = data[(data['tsne-2d-one'] > -15) & (data['tsne-2d-one'] < -5) &
                 (data['tsne-2d-two'] > -25) &
                 (data['tsne-2d-two'] < -15)]['sequence']

sequences = data['sequence'].to_list()[0:100]

# +
Esempio n. 24
0
    torch.load("../data/model/resnet18x3_fft_ela_adaption_epoch30.pth"))
model = model.to(device)
feature_list = []
label_list = []

# Test
model.eval()
with torch.no_grad():
    for images, labels, fourier, ela in tqdm(test_loader):
        images = images.to(device)
        fourier = fourier.to(device)
        labels = labels.to(device)
        ela = ela.to(device)

        _, feature = model(images, fourier, ela)
        feature_list.append(feature)
        label_list.append(labels)

features = torch.Tensor.cpu(torch.cat(feature_list, 0))
X = TSNE(n_components=2).fit_transform(features)
labels = torch.Tensor.cpu(torch.cat(label_list, 0))

plt.figure()
for i in tqdm(range(len(X))):
    if labels[i].item() == 0:
        plt.plot(X[i, 0], X[i, 1], 'r.')
    else:
        plt.plot(X[i, 0], X[i, 1], 'g.')
plt.savefig("../data/visualize/{}.jpg".format(
    time.strftime("%y-%m-%d-%H-%M-%S", time.localtime())))
Esempio n. 25
0
 def apply_tsne(j):
     idx, md5, x = j
     tsne = TSNE(**kwargs)
     return (idx, md5, tsne.fit_transform(x))
Esempio n. 26
0
# Notice the view 2 predictions. Had our view2 images been randomly rotated,
# the predictions would have a hazy circle, since the best guess would be the
# mean of all the rotated digits. Since we don't rotate our view2 images, we
# instead get something that's only a bit hazy around the edges -- corresonding
# to the mean of all the non-rotated digits.

# Next let's visualize our 20d test embeddings with T-SNE and see if they
# represent our original underlying representation -- the digits from 0-9 -- of
# which we made two views of. In the perfect scenario, each of the 10,000
# vectors of our test embedding would be one of ten vectors, representing the
# digits from 0-9. (Our network wouldn't do this, as it tries to reconstruct
# each unique view1 image exactly). In lieu of this we can hope for embedding
# vectors corresponding to the same digits to be closer together.


tsne = TSNE()
tsneEmbeddings = tsne.fit_transform(testEmbed)


def plot2DEmbeddings(embeddings, labels):
    pointColors = []
    origColors = [
        [55, 55, 55], [255, 34, 34], [38, 255, 38],
        [10, 10, 255], [255, 12, 255], [250, 200, 160],
        [120, 210, 180], [150, 180, 205], [210, 160, 210],
        [190, 190, 110]
        ]
    origColors = (np.array(origColors)) / 255
    for l in labels.cpu().numpy():
        pointColors.append(tuple(origColors[l].tolist()))
Esempio n. 27
0
    data = []
    target = []
    subdirectories = {
        dir_: idx
        for (idx, dir_) in enumerate(os.listdir(bboxForTsne_path))
        if os.path.isdir(os.path.join(bboxForTsne_path, dir_))
    }
    for sub_ in subdirectories.keys():
        for img_ in imread_collection(
                os.path.join(bboxForTsne_path, sub_) + '/*.jpg'):
            target.append(sub_)
            data.append(resize(img_, (300, 300)).ravel())

    return np.array(data), target, subdirectories


data, target, target_num = load_images_from_subdirectories()

tsne = TSNE()
data_tsne = tsne.fit_transform(data)

#np.save('tsne.npy', tsne)

for x, y, tg in zip(data_tsne[:, 0], data_tsne[:, 1], target):
    plt.scatter(x, y, c=color[target_num[tg]])

plt.xlim(data_tsne[:, 0].min(), data_tsne[:, 0].max())  # 최소, 최대
plt.ylim(data_tsne[:, 1].min(), data_tsne[:, 1].max())  # 최소, 최대
plt.xlabel('t-SNE 특성0')  # x축 이름
plt.ylabel('t-SNE 특성1')  # y축 이름
plt.savefig('./result.png')
Esempio n. 28
0
    x_s = x_s.cuda()
    y_s = y_s.cuda()
    x_t = x_t.cuda()

    optimizer.zero_grad()
    # optimizer_ad.zero_grad()

    ########### Networks Forward Propagation
    f_s, p_s = model(x_s)
    f_t, p_t = model(x_t)
    features = torch.cat((f_s, f_t), dim=0)
    outputs = torch.cat((p_s, p_t), dim=0)
    loss = nn.CrossEntropyLoss()(outputs.narrow(0, 0, x_s.size(0)), y_s)

    ### TSNE
    tsne_model = TSNE(learning_rate=100)
    transformed = tsne_model.fit_transform(f_s.detach())
    # transformed = tsne_model.fit_transform(f_s.detach().cpu())

    X_embedded = TSNE(n_components=2, perplexity=15,
                      learning_rate=10).fit_transform(f_s.detach())

    xs = transformed[:, 0]
    ys = transformed[:, 1]

    fig = plt.figure()
    plt.scatter(xs, ys, c=y_s.cpu())
    fig.savefig('f_s_tsne.png')

    pdb.set_trace()
Esempio n. 29
0
 def apply_tsne(j):
   idx, md5, x = j
   tsne = TSNE(**kwargs)
   return (idx, md5, tsne.fit_transform(x))
Esempio n. 30
0
def save_data(embeddings, labels, iteration=None, detected_labels=None):
    N_embedded = embeddings.shape[1]
    # num_dims = N_embedded
    # num_display_dims = 2
    # tsne_lr = 20.0

    # Get only the non-zero indexes
    idx_array = labels.nonzero()
    idx_tuple = idx_array.split(1, dim=1)
    labeled_pixels = labels[idx_tuple].squeeze(1)
    object_pixels = torch.gather(embeddings, 0,
                                 idx_array.repeat(1, N_embedded))

    unique_labels = torch.unique(labeled_pixels)
    N_objects = len(unique_labels)
    mu_vector = torch.zeros(N_objects, N_embedded)

    for c in range(N_objects):
        fiber_id = unique_labels[c]
        idx_c = (labeled_pixels == fiber_id).nonzero()

        # xi vector
        x_i = torch.gather(embeddings, 0, idx_c.repeat(1, N_embedded))

        # get mu
        mu = x_i.mean(0)
        mu_vector[c, :] = mu
    resta = mu_vector[c, :] - x_i.cpu()
    lv_term = torch.norm(resta, 2) - 0

    lv_temp2 = torch.norm(resta, 2, dim=1)
    ff = 0
    for k in range(x_i.shape[0]):
        ff += torch.norm(resta[k, :], 2)

    mu_vector = mu_vector.detach().cpu().numpy()
    # Y = tsne(object_pixels[::4, :].detach().numpy(), num_display_dims, num_dims, tsne_lr)
    # Y = pca(object_pixels.detach().numpy(), no_dims=2).real
    from tsnecuda import TSNE
    # from tsne import tsne
    X = object_pixels.cpu().detach().numpy()
    Y = TSNE(n_components=2, perplexity=20, learning_rate=50).fit_transform(X)

    fig = plt.figure()
    ax1 = fig.add_subplot(111)
    ax1.scatter(Y[:, 0], Y[:, 1], 5, labeled_pixels, cmap='tab20b')
    if iteration is None:
        iteration = 0
    plt.savefig("low_dim_embeeding/embedded_%d.png" % iteration)
    plt.close(fig)
    # print(X[:, 0].shape)

    # Y = tsne(X, 2, 32, 20.0)
    # fig = pylab.figure()
    # pylab.scatter(Y[:, 0], Y[:, 1], 5, labeled_pixels, cmap='tab20b')
    # if iteration is None:labels
    #    iteration = 0
    # pylab.savefig("low_dim_embeeding/embedded_%d.png" % iteration)
    # pylab.close(fig)
    '''
    ax1 = fig.add_subplot(222)
    ax1.scatter(Y[:, 0], Y[:, 2], 5, labeled_pixels, cmap='tab20b')
    ax1 = fig.add_subplot(223)
    ax1.scatter(Y[:, 0], Y[:, 3], 5, labeled_pixels, cmap='tab20b')
    ax1 = fig.add_subplot(224)
    ax1.scatter(Y[:, 0], Y[:, 4], 5, labeled_pixels, cmap='tab20b')
    '''
    fig = pylab.figure()
    ax1 = fig.add_subplot(221)
    ax1.scatter(X[:, 0], X[:, 1], 5, labeled_pixels, cmap='tab20b')
    ax1.scatter(mu_vector[:, 0],
                mu_vector[:, 1],
                40,
                unique_labels,
                cmap='tab20b',
                marker="x")
    ax1 = fig.add_subplot(222)
    ax1.scatter(X[:, 0], X[:, 2], 5, labeled_pixels, cmap='tab20b')
    ax1.scatter(mu_vector[:, 0],
                mu_vector[:, 2],
                40,
                unique_labels,
                cmap='tab20b',
                marker="x")
    ax1 = fig.add_subplot(223)
    ax1.scatter(X[:, 0], X[:, 3], 5, labeled_pixels, cmap='tab20b')
    ax1.scatter(mu_vector[:, 0],
                mu_vector[:, 3],
                40,
                unique_labels,
                cmap='tab20b',
                marker="x")
    ax1 = fig.add_subplot(224)
    ax1.scatter(X[:, 0], X[:, 4], 5, labeled_pixels, cmap='tab20b')
    ax1.scatter(mu_vector[:, 0],
                mu_vector[:, 4],
                40,
                unique_labels,
                cmap='tab20b',
                marker="x")
    plt.savefig("2_embedding/embedded_%d.png" % iteration)
    plt.close(fig)

    if detected_labels is not None:
        pylab.scatter(Y[:, 0], Y[:, 1], 5, detected_labels, cmap='tab20b')
        pylab.savefig("low_dim_embeeding/embedded_%d.png" % (iteration + 1000))
        pylab.close(fig)
Esempio n. 31
0
y_dim = test_set.num_classes()
num_bits = args.nbits
num_features = test_set[0][0].size(0)

# load model
model = VDSH(None, num_features, num_bits, dropoutProb=0.1, device=device)
model.to(device)

model.load_state_dict(torch.load('trained_models_32/' + args.model,  map_location=torch.device(device)))
model.eval()

codes = []

# encode all of test
for step, (xb, yb) in enumerate(test_loader):
        with torch.no_grad():
                code = model.get_code(xb).numpy()[0]
                #print("Sample " + str(step) + ": " + str(code))
                codes.append(code)

codes = np.array(codes)
embedded = TSNE(n_components = 2).fit_transform(codes)

df_embedded = pd.DataFrame()
df_embedded['tsne_x'] = embedded[:,0]
df_embedded['tsne_y'] = embedded[:,1]

df_embedded.to_pickle('df_embedded_result.pkl')

sns.scatterplot(data=df_embedded, alpha=0.3, x='tsne_x', y='tsne_y')
plt.show()