validation_label = torch.from_numpy(label_T[5000:(n_tag_0 + n_tag_1)]) validation_timestamp = timestamp_T[5000:(n_tag_0 + n_tag_1)] validation_data = torch.utils.data.TensorDataset(validation_input, validation_label) validation_loader = torch.utils.data.DataLoader(validation_data, batch_size=BATCH_SIZE, shuffle=False) '''-------------------------------------------------------------------------''' '''------------------------------ create model -----------------------------''' '''-------------------------------------------------------------------------''' print("creating model") cnn = None if SUPERVISED: if (NETWORK_TYPE == "2D"): cnn = CNN.CNNModel2D().to(device) elif (NETWORK_TYPE == "1D"): cnn = CNN.CNNModel1D().to(device) optimizer = torch.optim.Adam(cnn.parameters(), lr=LR) loss_func = nn.CrossEntropyLoss() else: if (NETWORK_TYPE == "2D_unsupervised"): cnn = CNN_unsupervised.CNNModel().to(device) elif (NETWORK_TYPE == "2D_reconstruct"): cnn = CNN_reconstruct.CNNModel().to(device) optimizer = torch.optim.Adam(cnn.parameters(), lr=LR) loss_func = nn.MSELoss() # validation loss of every epoch loss_record = [] '''-------------------------------------------------------------------------''' '''---------------------------- train model --------------------------------'''