예제 #1
0
from comet_ml import Experiment

import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from torch.optim.lr_scheduler import ExponentialLR, CosineAnnealingLR

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

from enchanter import addons
from enchanter import tasks
from enchanter.addons import layers
from enchanter.engine.modules import fix_seed, get_dataset

fix_seed(0)

experiment = Experiment()
model = layers.MLP([4, 512, 128, 3], addons.mish)
optimizer = optim.Adam(model.parameters())
runner = tasks.ClassificationRunner(model,
                                    optimizer=optimizer,
                                    criterion=nn.CrossEntropyLoss(),
                                    experiment=experiment,
                                    scheduler=[
                                        CosineAnnealingLR(optimizer,
                                                          T_max=10,
                                                          eta_min=1e-10),
                                        ExponentialLR(optimizer, gamma=0.9),
                                    ])
from comet_ml import Experiment
# from enchanter.callbacks import TensorBoardLogger as Experiment
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from sklearn.svm import SVC
from tslearn.datasets import UCR_UEA_datasets
from enchanter.addons import layers as L
from enchanter.callbacks import EarlyStoppingForTSUS
from enchanter.tasks import TimeSeriesUnsupervisedRunner
from enchanter.engine.modules import fix_seed
from enchanter.utils.datasets import TimeSeriesLabeledDataset

fix_seed(800)

downloader = UCR_UEA_datasets()
x_train, y_train, x_test, y_test = downloader.load_dataset("Libras")
x_train = torch.tensor(x_train.transpose(0, 2, 1), dtype=torch.float32)
x_test = torch.tensor(x_test.transpose(0, 2, 1), dtype=torch.float32)

y_train = y_train.astype(float).astype(int) - 1
y_train = torch.tensor(y_train, dtype=torch.long)
y_test = y_test.astype(float).astype(int) - 1
y_test = torch.tensor(y_test, dtype=torch.long)


class Encoder(nn.Module):
    def __init__(self, in_features, mid_features, out_features,
                 representation_size):
        super(Encoder, self).__init__()