{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"It is often hard to find a large collection of correctly labelled data. This scarcity of labelled real data exists for gravitational waves as well. One way to combat this shortage is to train on simulated data and hope the trained model is useful for the real dataset as well. The success of such an approach is dependant on the quality of simulation. However, astronomy doesn't have a shortage of raw data. So, I felt the application of semi-supervised training approach is particularly relevant for this task. One of the main components of semi-supervised training is the augmentation scheme. However in my experiments I found that it extremely difficult to come up with a good augmentation for this dataset.\n\nWhile thinking on how to augment the data such that the signal characteristic is preserved, I realized that we already have an augmented dataset! My main insight was that whenever there is a gravitational wave, all three detectors must detect it. So, we can imagine that we have access to augmented versions of the same signal. The different geographical position and noise characteristic already takes care of the augmentation :-)","metadata":{}},{"cell_type":"markdown","source":"![barlow.jpg](attachment:e7c8e015-acb2-4806-88aa-f23cdf3a26d9.jpg)\n\nI used the recently proposed Barlow Twins method for semi-supervised training. I would highly recommend going through the paper to understand the details. The basic idea is to have two models which see different versions of data (in our case the gravitational wave signal) and use the barlow twin's objective function to learn embeddings. While training on imagenet, people generally use cropping, flipping, blurring, random contrast etc\nto create different versions of the same image. \n\nIn our case, we can feed the data from Hanford/Livingston into Net 1 and data from the Virgo detector into Net 2. Since the noise in Virgo detector is quite different from Hanford/Livingston, we can imagine it as an augmented sample of the same underlying signal.","metadata":{},"attachments":{"e7c8e015-acb2-4806-88aa-f23cdf3a26d9.jpg":{"image/jpeg":"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JJJJJJJJBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJBJJJJJJJJJBJJJJJBJIJAJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJBAAIJIBBJJJJJJJJBJJJBJBJBAIJABJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJBIIJIABBJJJJJJJJBJJJIIBAJIABBBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJIAAIIJAJJJJJJJJJJJJJJJJJJJJJBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJBIBAAJJJJJJJJJJJBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJIJAAIJJJJBJJJJJJJJJJJJJJJJJJJJIBJIAJJBJJJJJJJBBABJBJJJJJJJJJJJJJJJBAAJAJJElhpJJJJJJJJLbZJJJJJJJJBJAIIAJBJJJJJJJIBBABBJJJJJJJJJJJJJJJJBJJJJJHzR5JJJJJJJAGWpIAAAJJJJBIIAIABJJJJJJJJIBJJBBJJJJJJJJJJJJJJJJBJJJBJAUVjDktVIJNhWj5BJJJBJJJJJJJJJJJJJJJJJJJJIBJJJJJJJJJJJJJJJJJJBJJJBJAUmQLs1+4ARNmxpBJJJBJJJJJJJJJJJJJJJJJJAABIJBJJJJJJJJJJJJJJJJBJJJBJAUkkkEgIIJSgkhpBJJJBJJIJJIAAJAJJJJJJJIBBJJAABJJJJJJJJJJJJJJJBJJBBJAUkkkkkC7IykkhpBJJBBJJIBJBAIBABJJJJJJABABBIJBJJJJJJJJJJJJJJJAJIABJAUkkkkknxJUkkhoBJBJBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJBAIJJBKUkkkkk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"}}},{"cell_type":"markdown","source":"# Useful links:\n- [Project Github Repo](https://github.com/sidml/Self-Supervised-Learning-for-Gravitational-Waves)\n- [Barlow Twins Paper](https://arxiv.org/pdf/2103.03230.pdf)\n- [Gravitational Wave Dataset](https://www.kaggle.com/c/g2net-gravitational-wave-detection/data)\n- [1D CNN trained using supervised learning](https://www.kaggle.com/scaomath/g2net-1d-cnn-gem-pool-pytorch-train-inference)","metadata":{}},{"cell_type":"code","source":"!git clone https://github.com/sidml/Self-Supervised-Learning-for-Gravitational-Waves.git","metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","papermill":{"duration":2.491686,"end_time":"2021-10-01T10:37:52.846007","exception":false,"start_time":"2021-10-01T10:37:50.354321","status":"completed"},"tags":[],"_kg_hide-input":true,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2021-10-08T05:50:24.100507Z","iopub.execute_input":"2021-10-08T05:50:24.101027Z","iopub.status.idle":"2021-10-08T05:50:25.921843Z","shell.execute_reply.started":"2021-10-08T05:50:24.100941Z","shell.execute_reply":"2021-10-08T05:50:25.920990Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cd Self-Supervised-Learning-for-Gravitational-Waves","metadata":{"papermill":{"duration":0.02402,"end_time":"2021-10-01T10:37:52.885198","exception":false,"start_time":"2021-10-01T10:37:52.861178","status":"completed"},"tags":[],"_kg_hide-input":true,"execution":{"iopub.status.busy":"2021-10-08T05:50:25.926050Z","iopub.execute_input":"2021-10-08T05:50:25.926282Z","iopub.status.idle":"2021-10-08T05:50:25.935414Z","shell.execute_reply.started":"2021-10-08T05:50:25.926255Z","shell.execute_reply":"2021-10-08T05:50:25.934276Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%load_ext autoreload\n%autoreload 2\n\nimport numpy as np\nimport pandas as pd\nimport pdb\npd.set_option(\"display.max_columns\", None)\nimport cv2\n\nimport matplotlib\nimport matplotlib.pyplot as plt\n\nmatplotlib.use(\"Agg\")\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom torch.utils.data import Dataset, DataLoader\nimport random\nimport torchvision.transforms as T\nimport pdb\n\nfrom pytorch_lightning.callbacks.early_stopping import EarlyStopping\nfrom pytorch_lightning.callbacks import ModelCheckpoint\nfrom pytorch_lightning import Trainer\nfrom pytorch_lightning import seed_everything\n\nimport random\nfrom collections import OrderedDict\nimport os, gc, time\nfrom glob import glob\nfrom functools import partial\nfrom tqdm.auto import tqdm\n\nfrom sklearn.metrics import (\n    roc_auc_score,\n    accuracy_score,\n    average_precision_score,\n    f1_score,\n    precision_score,\n    recall_score,\n)\n\nfrom pl_model import G2Net, G2NetEval\nfrom cnn1d_models import NetEval\nfrom dataset import GWDatasetBandpass\n\nfrom utils import average_model, get_file_path\n\nimport warnings\n\nwarnings.filterwarnings(\"ignore\")","metadata":{"papermill":{"duration":6.795437,"end_time":"2021-10-01T10:37:59.694969","exception":false,"start_time":"2021-10-01T10:37:52.899532","status":"completed"},"tags":[],"_kg_hide-input":true,"execution":{"iopub.status.busy":"2021-10-08T05:50:25.936845Z","iopub.execute_input":"2021-10-08T05:50:25.937124Z","iopub.status.idle":"2021-10-08T05:50:33.065039Z","shell.execute_reply.started":"2021-10-08T05:50:25.937087Z","shell.execute_reply":"2021-10-08T05:50:33.064182Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class Config:\n    batch_size = 456\n    weight_decay = 1e-8\n    lr = 5e-5\n    num_workers = 4\n    epochs = 4\n    model_name = 'cnn1d_aug'\n    suffix = \"barlow\"\n    ROOT = \"/kaggle/input/g2net-gravitational-wave-detection\"\n    TRAIN_ROOT = f\"{ROOT}/train/\"\n    NOISE_DIR = f\"/kaggle/input/gwdet-noise\"\n    TEST_ROOT = f\"{ROOT}/test/\"\n    SUB_DIR = \"./submissions/\"\n    \nconfig = Config()","metadata":{"papermill":{"duration":0.058442,"end_time":"2021-10-01T10:37:59.767296","exception":false,"start_time":"2021-10-01T10:37:59.708854","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-10-08T05:50:33.067015Z","iopub.execute_input":"2021-10-08T05:50:33.067275Z","iopub.status.idle":"2021-10-08T05:50:33.111368Z","shell.execute_reply.started":"2021-10-08T05:50:33.067241Z","shell.execute_reply":"2021-10-08T05:50:33.110545Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"seed_everything(42, workers=True)\nprint(\"PL_SEED_WORKERS=\" + os.environ[\"PL_SEED_WORKERS\"])\nconfig = Config()\ntrain_labels = pd.read_csv(f\"{config.ROOT}/training_labels.csv\")\n# bce loss requires labels to be of float type\ntrain_labels[\"target\"] = train_labels[\"target\"].astype(np.float32)\n\nget_path = partial(get_file_path, config.TRAIN_ROOT)\ntrain_labels[\"file_path\"] = train_labels[\"id\"].apply(get_path)\nprint(train_labels.head())","metadata":{"papermill":{"duration":0.812538,"end_time":"2021-10-01T10:38:00.593441","exception":false,"start_time":"2021-10-01T10:37:59.780903","status":"completed"},"tags":[],"_kg_hide-input":true,"execution":{"iopub.status.busy":"2021-10-08T05:50:33.112570Z","iopub.execute_input":"2021-10-08T05:50:33.112923Z","iopub.status.idle":"2021-10-08T05:50:33.967313Z","shell.execute_reply.started":"2021-10-08T05:50:33.112886Z","shell.execute_reply":"2021-10-08T05:50:33.966410Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"trn_idx = np.random.randint(0, len(train_labels), (int(len(train_labels)*0.9),))\nval_idx = np.array(list(set(range(len(train_labels))) - set(trn_idx)))\ntrain_df = train_labels.loc[trn_idx].reset_index(drop=True)\nval_df = train_labels.loc[val_idx].reset_index(drop=True)\n\nprint(f'Training with {len(trn_idx)}, validation with {len(val_df)}')","metadata":{"papermill":{"duration":0.730653,"end_time":"2021-10-01T10:38:01.3388","exception":false,"start_time":"2021-10-01T10:38:00.608147","status":"completed"},"tags":[],"_kg_hide-input":true,"execution":{"iopub.status.busy":"2021-10-08T05:50:33.968579Z","iopub.execute_input":"2021-10-08T05:50:33.968892Z","iopub.status.idle":"2021-10-08T05:50:34.707961Z","shell.execute_reply.started":"2021-10-08T05:50:33.968853Z","shell.execute_reply":"2021-10-08T05:50:34.707087Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Train barlow twins using self-supervised learning\n\nCurrently most semi-supervised work is focused on images. So, usually inputs are images and 2D CNN is used as model. However, for faster training I decided to train using waveforms. I trained a 1D CNN model inspired by [this post](https://www.kaggle.com/scaomath/g2net-1d-cnn-gem-pool-pytorch-train-inference). I observed that adding a GRU layer and reducing the original pooling size led to better results. I also removed the final fully connected layers since we require the models to produce embeddings. The bandpassed waveforms are fed as input to the model and we get embeddings of size 2048 as output.\n\nThe output embeddings produced by both the networks are normalized along the batch dimension and we calculate the invariance and redundancy reduction terms. Using these terms, we get the final loss used for training the networks. In the original paper, they used LARS optimizer but I found that AdamW with an initial learning rate of 1e-4 also works. (I haven't tried LARS optimizer yet, so maybe it will work even better.) Currently, I am only using pycbc generated noise as an additional augmentation. ","metadata":{"papermill":{"duration":0.016005,"end_time":"2021-10-01T10:38:01.369755","exception":false,"start_time":"2021-10-01T10:38:01.35375","status":"completed"},"tags":[]}},{"cell_type":"code","source":"model = G2Net(config=config, train_df=train_df, val_df=val_df)\nckpt_dir = \"/kaggle/input/self-supervised-method-for-gravitation-wave-det/Self-Supervised-Learning-for-Gravitational-Waves/cnn1d_aug_barlow\"\npaths = glob(f\"{ckpt_dir}/lightning_logs/version_0/checkpoints/*.ckpt\")\naveraged_w = average_model(paths)\nmodel.model.load_state_dict(averaged_w, strict=True)\ndel averaged_w; torch.cuda.empty_cache(); gc.collect()\n\ncheckpoint_callback = ModelCheckpoint(\n    monitor=\"val_loss\",\n    filename=\"{epoch:02d}-{val_loss_epoch:.3f}\",\n    mode=\"min\",\n    save_top_k=5,\n    save_weights_only=True,\n)\nearly_stopping = EarlyStopping(\n    monitor=\"val_loss\", mode=\"min\", patience=10, verbose=True\n)\ntrainer = Trainer(\n    max_epochs=config.epochs,\n    progress_bar_refresh_rate=10,\n    limit_val_batches=0.2,\n    val_check_interval=0.5,\n    amp_level='O2',\n    precision=16,\n    gpus=1,\n    default_root_dir=f\"{config.model_name}_{config.suffix}\",\n    num_sanity_val_steps=0,\n    callbacks=[checkpoint_callback, early_stopping],\n)\ntrainer.fit(model)","metadata":{"papermill":{"duration":10341.399757,"end_time":"2021-10-01T13:30:22.784002","exception":false,"start_time":"2021-10-01T10:38:01.384245","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-10-08T05:50:34.709538Z","iopub.execute_input":"2021-10-08T05:50:34.709834Z","iopub.status.idle":"2021-10-08T05:53:41.970953Z","shell.execute_reply.started":"2021-10-08T05:50:34.709797Z","shell.execute_reply":"2021-10-08T05:53:41.968769Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"papermill":{"duration":0.021107,"end_time":"2021-10-01T13:30:22.826362","exception":false,"start_time":"2021-10-01T13:30:22.805255","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Freeze backbone layers and finetune FC\n\nAfter training the 1D CNN based model, we are able to get embeddings of the input waveform. Now, we need to train a Fully connected (FC) layer to make final prediction. For this we obtain embeddings for all the three detectors. Embeddings for Hanford/Livingston are obtained from Net 1 and Net 2 provides the Virgo embedding. The concatenation of all the embeddings is used as input to the FC layer.\n\nDuring the FC layer training, we freeze the backbone layer weights (net 1 & 2) and only train the FC layer on a subset of training dataset (i used 25% of the dataset). It is sufficient to train FC layer for 7-8 epochs. Once the FC training is complete, we can use the model to detect GW.","metadata":{"papermill":{"duration":0.020331,"end_time":"2021-10-01T13:30:22.867563","exception":false,"start_time":"2021-10-01T13:30:22.847232","status":"completed"},"tags":[]}},{"cell_type":"code","source":"config.epochs = 8\nconfig.batch_size = 512\nconfig.model_name = 'cnn1d_aug'\nconfig.suffix = \"eval\"\nckpt_dir = \"./cnn1d_aug_barlow/lightning_logs/version_0/checkpoints/\"\nconfig.weight_paths = glob(f\"{ckpt_dir}/*.ckpt\")\nmodel = G2NetEval(config=config, train_df=train_df, val_df=val_df)","metadata":{"execution":{"iopub.execute_input":"2021-10-01T13:30:22.915831Z","iopub.status.busy":"2021-10-01T13:30:22.915203Z","iopub.status.idle":"2021-10-01T13:30:25.43312Z","shell.execute_reply":"2021-10-01T13:30:25.432544Z","shell.execute_reply.started":"2021-10-01T10:33:38.2827Z"},"papermill":{"duration":2.545187,"end_time":"2021-10-01T13:30:25.433259","exception":false,"start_time":"2021-10-01T13:30:22.888072","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"checkpoint_callback = ModelCheckpoint(\n    monitor=\"val_loss\",\n    filename=\"{epoch:02d}-{val_loss_epoch:.3f}\",\n    mode=\"min\",\n    save_top_k=5,\n    save_weights_only=True,\n)\nearly_stopping = EarlyStopping(\n    monitor=\"val_loss\", mode=\"min\", patience=5, verbose=True\n)\ntrainer = Trainer(\n    max_epochs=config.epochs,\n    progress_bar_refresh_rate=10,\n    limit_train_batches=0.25,\n    limit_val_batches=0.2,\n    gpus=1,\n    default_root_dir=f\"{config.model_name}_{config.suffix}\",\n    num_sanity_val_steps=0,\n    callbacks=[checkpoint_callback, early_stopping],\n)\ntrainer.fit(model)\n","metadata":{"execution":{"iopub.execute_input":"2021-10-01T13:30:25.486657Z","iopub.status.busy":"2021-10-01T13:30:25.485449Z","iopub.status.idle":"2021-10-01T14:34:42.156706Z","shell.execute_reply":"2021-10-01T14:34:42.157133Z","shell.execute_reply.started":"2021-10-01T10:34:00.322158Z"},"papermill":{"duration":3856.70144,"end_time":"2021-10-01T14:34:42.15732","exception":false,"start_time":"2021-10-01T13:30:25.45588","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"papermill":{"duration":0.027222,"end_time":"2021-10-01T14:34:42.212598","exception":false,"start_time":"2021-10-01T14:34:42.185376","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Validation set result","metadata":{"papermill":{"duration":0.027337,"end_time":"2021-10-01T14:34:42.267484","exception":false,"start_time":"2021-10-01T14:34:42.240147","status":"completed"},"tags":[]}},{"cell_type":"code","source":"root_dir = (\n    f\"./{config.model_name}_{config.suffix}/lightning_logs\"\n)\npaths = list(glob(f\"{root_dir}/version_0/checkpoints/*.ckpt\"))\n\nprint(paths)\nmodel = NetEval(config.weight_paths)\naveraged_w = average_model(paths)\nmodel.load_state_dict(averaged_w)\nmodel.eval()\ndevice = 'cuda'\nmodel.to(device)\nval_idx = val_idx[:40000]\nval_df = train_labels.loc[val_idx].reset_index(drop=True)\ndataset = GWDatasetBandpass(val_df, mode=\"val\")\ntest_loader = DataLoader(\n    dataset,\n    batch_size=int(config.batch_size),\n    num_workers=config.num_workers,\n    shuffle=False,\n    drop_last=False,\n)\ntk = tqdm(test_loader, total=len(test_loader))\nsub_index = val_df.id.values\nidx = 0\ncv_preds = train_labels.copy(deep=True)\ncv_preds[\"preds\"] = None\ncv_preds = cv_preds.set_index(\"id\")\n\nwith torch.no_grad():\n    for i, (im, _) in enumerate(tk):\n        im = im.to(device)\n        preds = model(im, mode='val').reshape(\n            -1,\n        )\n        o = preds.sigmoid().cpu().numpy()\n        for offset, val in enumerate(o):\n            cv_preds.loc[sub_index[idx], \"preds\"] = val\n            idx += 1\n\nt = cv_preds.loc[sub_index]\nauc = roc_auc_score(t[\"target\"], t[\"preds\"])\nprint(f\"\\nAUC:{auc:.4f}\")\nprint(t[\"preds\"].astype(np.float32).describe())\ntorch.cuda.empty_cache()\ngc.collect()\ntime.sleep(2)\n\ncv_preds = cv_preds.dropna()\ncv_preds[\"preds\"] = cv_preds[\"preds\"].astype(np.float32)\ncv_preds.to_csv(f\"cv_{config.model_name}_{config.suffix}.csv\", index=True)\nprint(cv_preds.head())\nprint(cv_preds[\"preds\"].describe())\nauc = roc_auc_score(cv_preds.loc[:, \"target\"], cv_preds.loc[:, \"preds\"])\nprint(\"auc score\", auc)","metadata":{"execution":{"iopub.execute_input":"2021-10-01T14:34:42.334444Z","iopub.status.busy":"2021-10-01T14:34:42.330178Z","iopub.status.idle":"2021-10-01T14:40:15.054875Z","shell.execute_reply":"2021-10-01T14:40:15.055294Z","shell.execute_reply.started":"2021-10-01T10:34:39.670094Z"},"papermill":{"duration":332.760764,"end_time":"2021-10-01T14:40:15.055462","exception":false,"start_time":"2021-10-01T14:34:42.294698","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"papermill":{"duration":0.028468,"end_time":"2021-10-01T14:40:15.112615","exception":false,"start_time":"2021-10-01T14:40:15.084147","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Make Test set predictions for LB evaluation","metadata":{"papermill":{"duration":0.028554,"end_time":"2021-10-01T14:40:15.169636","exception":false,"start_time":"2021-10-01T14:40:15.141082","status":"completed"},"tags":[]}},{"cell_type":"code","source":"os.makedirs(config.SUB_DIR, exist_ok=True)\n# # Test predictions\nsub = pd.read_csv(f\"{config.ROOT}/sample_submission.csv\")\nsub.loc[:, \"target\"] = 0.0  # init to 0\nget_path = partial(get_file_path, config.TEST_ROOT)\nsub[\"file_path\"] = sub[\"id\"].apply(get_path)\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nroot_dir = f\"./{config.model_name}_{config.suffix}/lightning_logs\"\npaths = list(glob(f\"{root_dir}/version_0/checkpoints/*.ckpt\"))\nprint(paths)\nmodel = NetEval(paths, mode='val').to(device)\naveraged_w = average_model(paths)\nmodel.load_state_dict(averaged_w)\nmodel.eval();","metadata":{"execution":{"iopub.execute_input":"2021-10-01T14:40:15.234233Z","iopub.status.busy":"2021-10-01T14:40:15.233445Z","iopub.status.idle":"2021-10-01T14:40:17.446306Z","shell.execute_reply":"2021-10-01T14:40:17.445413Z","shell.execute_reply.started":"2021-10-01T10:35:00.237783Z"},"papermill":{"duration":2.248434,"end_time":"2021-10-01T14:40:17.446453","exception":false,"start_time":"2021-10-01T14:40:15.198019","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dataset = GWDatasetBandpass(sub, mode=\"test\")\ntest_loader = DataLoader(\n    dataset,\n    batch_size=int(config.batch_size),\n    num_workers=4,\n    shuffle=False,\n    drop_last=False,\n)\ntk = tqdm(test_loader, total=len(test_loader))\nsub_index = 0\nwith torch.no_grad():\n    for i, (waves, _) in enumerate(tk):\n        waves = waves.to(device)\n        preds = model(waves,\n                      mode=\"test\").reshape(-1,)\n        o = preds.sigmoid().cpu().numpy()\n        for val in o:\n            sub.loc[sub_index, \"target\"] = val\n            sub_index += 1\nsub = sub.drop(\"file_path\", axis=1)\nsub_path = (\n    f\"{config.SUB_DIR}/submission_{config.model_name}_{config.suffix}.csv\"\n)\nsub.to_csv(sub_path, index=False)\nprint(sub.head())\nprint(sub.loc[:, \"target\"].describe())","metadata":{"execution":{"iopub.execute_input":"2021-10-01T14:40:17.511993Z","iopub.status.busy":"2021-10-01T14:40:17.511203Z","iopub.status.idle":"2021-10-01T14:50:43.57977Z","shell.execute_reply":"2021-10-01T14:50:43.580515Z","shell.execute_reply.started":"2021-10-01T10:35:03.516051Z"},"papermill":{"duration":626.105971,"end_time":"2021-10-01T14:50:43.581627","exception":false,"start_time":"2021-10-01T14:40:17.475656","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Possible future work:\n\n- Try this semi-supervised approach with 2D CNN model. In this case, instead of using direct waveforms we can use the extracted CQT features.\n- Different 1d CNN architectures.\n- New Augmentations\n- Tuning the lambda parameter in barlow twins loss\n","metadata":{}},{"cell_type":"code","source":"!rm *.py\n!find . | grep -E \"(__pycache__|\\.pyc|\\.pyo$)\" | xargs rm -rf\n!rm -rf ./.git","metadata":{"execution":{"iopub.execute_input":"2021-10-01T14:50:43.655667Z","iopub.status.busy":"2021-10-01T14:50:43.655081Z","iopub.status.idle":"2021-10-01T14:50:46.70171Z","shell.execute_reply":"2021-10-01T14:50:46.701222Z"},"papermill":{"duration":3.084782,"end_time":"2021-10-01T14:50:46.701866","exception":false,"start_time":"2021-10-01T14:50:43.617084","status":"completed"},"tags":[],"_kg_hide-input":true,"_kg_hide-output":true},"execution_count":null,"outputs":[]}]}