{"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":"code","source":"!pip install /kaggle/input/audiomentations-v0290/resampy-0.4.2-py3-none-any.whl\n!pip install  /kaggle/input/audiomentations-v0290/librosa-0.9.2-py3-none-any.whl","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:33:19.253925Z","iopub.execute_input":"2023-06-19T05:33:19.254330Z","iopub.status.idle":"2023-06-19T05:34:24.382098Z","shell.execute_reply.started":"2023-06-19T05:33:19.254303Z","shell.execute_reply":"2023-06-19T05:34:24.380965Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch\ntorch.cuda.is_available()","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:24.384204Z","iopub.execute_input":"2023-06-19T05:34:24.384583Z","iopub.status.idle":"2023-06-19T05:34:27.471087Z","shell.execute_reply.started":"2023-06-19T05:34:24.384546Z","shell.execute_reply":"2023-06-19T05:34:27.470173Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from pathlib import Path\nimport random\n\nimport numpy as np\nimport pandas as pd\nimport time\nimport os\nimport matplotlib.pyplot as plt\n# These transformations will be passed to our model class\nimport torch\nimport torch.nn.functional as F\nimport torch.nn as nn\nimport yaml\nfrom tqdm.auto import tqdm\nimport glob\nfrom torch.distributions import Beta\nimport librosa\nimport gc","metadata":{"papermill":{"duration":6.939158,"end_time":"2021-12-13T10:09:03.241098","exception":false,"start_time":"2021-12-13T10:08:56.30194","status":"completed"},"scrolled":true,"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:27.473548Z","iopub.execute_input":"2023-06-19T05:34:27.474438Z","iopub.status.idle":"2023-06-19T05:34:29.294972Z","shell.execute_reply.started":"2023-06-19T05:34:27.474399Z","shell.execute_reply":"2023-06-19T05:34:29.293999Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from joblib import Parallel, delayed\nimport os\nfrom os.path import exists\n\nWAV_SIZE=200000\nSTEP_SIZE=500\nTIMES_REAL=4\nTIMES_TRAIN=8\nis_mixed_precision = True\nTARGET_COLS = ['StartHesitation', 'Turn', 'Walking']\n\nclass GaitDataset(torch.utils.data.Dataset):\n\n    def __init__(self, df, is_train=False,transforms=None):\n        self.is_train = is_train\n        self.data = df\n\n    def __len__(self):\n        if self.is_train:\n            return len(self.data)*TIMES_TRAIN\n        else:\n            return len(self.data)\n    \n    \n    def __getitem__(self, idx):\n        g0=9.80665\n        row = self.data.iloc[idx]\n        data = pd.read_csv(row.filename)\n        \n        print(row.Id, data.shape)\n        \n        sig = data[[ 'AccV', 'AccML', 'AccAP']].values\n        \n        if row.type == 0:\n            sigs = []\n            for c in range(3):\n                sigs.append(librosa.resample(sig[:,c],orig_sr=128,target_sr=100))\n            wav = np.stack(sigs,axis=1)\n        else:\n            wav = sig*g0\n        \n        print('after resampling',wav.shape)\n        wav = wav/40.\n        act_len = len(wav)\n        nchunk = len(wav)//WAV_SIZE\n        rem_size = len(wav) - nchunk*WAV_SIZE\n        arrs = []\n        for chk in range(nchunk):\n            arrs.append(wav[chk*WAV_SIZE:(chk+1)*WAV_SIZE])\n\n        \n        if rem_size > 0:\n            last_arr = wav[-WAV_SIZE:]\n            arrs.append(last_arr)\n            \n        wav = np.stack(arrs,axis=0)\n        \n        print('wav',wav.shape,rem_size)\n        \n        sample = {\"wav\": wav, \"Id\":row.Id, 'type': row.type, 'df_length':len(data), \n                  'act_len':act_len,'nchunk':nchunk,'rem_size':rem_size}\n\n        return sample\n        \n\ndef getDataLoader(params,val_x):\n    \n    val_dataset = GaitDataset(df=val_x, transforms=None)\n\n    valDataLoader = torch.utils.data.DataLoader(\n                        val_dataset,\n                        batch_size=1,\n                        num_workers=params['num_workers'],\n                        shuffle=False,\n                        pin_memory=False,\n                    )\n    \n    return valDataLoader","metadata":{"papermill":{"duration":0.04712,"end_time":"2021-12-13T10:09:03.372538","exception":false,"start_time":"2021-12-13T10:09:03.325418","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:29.297861Z","iopub.execute_input":"2023-06-19T05:34:29.298439Z","iopub.status.idle":"2023-06-19T05:34:29.314061Z","shell.execute_reply.started":"2023-06-19T05:34:29.298403Z","shell.execute_reply":"2023-06-19T05:34:29.313096Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class Wave_Block(nn.Module):\n\n    def __init__(self, in_channels, out_channels, dilation_rates, kernel_size):\n        super(Wave_Block, self).__init__()\n        self.num_rates = dilation_rates\n        self.convs = nn.ModuleList()\n        self.filter_convs = nn.ModuleList()\n        self.gate_convs = nn.ModuleList()\n\n        self.convs.append(nn.Conv1d(in_channels, out_channels, kernel_size=1))\n        dilation_rates = [2 ** i for i in range(dilation_rates)]\n        for dilation_rate in dilation_rates:\n            self.filter_convs.append(\n                nn.Conv1d(out_channels, out_channels, kernel_size=kernel_size, padding=int((dilation_rate*(kernel_size-1))/2), dilation=dilation_rate))\n            self.gate_convs.append(\n                nn.Conv1d(out_channels, out_channels, kernel_size=kernel_size, padding=int((dilation_rate*(kernel_size-1))/2), dilation=dilation_rate))\n            self.convs.append(nn.Conv1d(out_channels, out_channels, kernel_size=1))\n\n    def forward(self, x):\n        x = self.convs[0](x)\n        res = x\n        for i in range(self.num_rates):\n            x = torch.tanh(self.filter_convs[i](x)) * torch.sigmoid(self.gate_convs[i](x))\n            x = self.convs[i + 1](x)\n            res = res + x\n        return res\n# detail \nclass Classifier1(nn.Module):\n    def __init__(self, inch=3, kernel_size=3):\n        super().__init__()\n        self.LSTM = nn.GRU(input_size=128, hidden_size=128, num_layers=4, \n                           batch_first=True, bidirectional=True)\n        \n        #self.wave_block1 = Wave_Block(inch, 16, 12, kernel_size)\n        self.wave_block2 = Wave_Block(inch, 32, 8, kernel_size)\n        self.wave_block3 = Wave_Block(32, 64, 4, kernel_size)\n        self.wave_block4 = Wave_Block(64, 128, 1, kernel_size)\n        self.fc1 = nn.Linear(256, 3)\n\n    def forward(self, x):\n        x = x.permute(0, 2, 1)\n        #x = self.wave_block1(x)\n        x = self.wave_block2(x)\n        x = self.wave_block3(x)\n\n        x = self.wave_block4(x)\n        x = x.permute(0, 2, 1)\n        x, h = self.LSTM(x)\n        x = self.fc1(x)\n    \n        \n        return x,x,x","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:29.315567Z","iopub.execute_input":"2023-06-19T05:34:29.316589Z","iopub.status.idle":"2023-06-19T05:34:29.333293Z","shell.execute_reply.started":"2023-06-19T05:34:29.316553Z","shell.execute_reply":"2023-06-19T05:34:29.332280Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class Classifier2(nn.Module):\n    def __init__(self, inch=3, kernel_size=3):\n        super().__init__()\n        self.LSTM1 = nn.GRU(input_size=128, hidden_size=128, num_layers=4, \n                           batch_first=True, bidirectional=True)\n        \n        #self.wave_block1 = Wave_Block(inch, 16, 12, kernel_size)\n        self.wave_block2 = Wave_Block(inch, 32, 8, kernel_size)\n        self.wave_block3 = Wave_Block(32, 64, 4, kernel_size)\n        self.wave_block4 = Wave_Block(64, 128, 1, kernel_size)\n        self.fc1 = nn.Linear(256, 3)\n\n    def forward(self, x):\n        x = x.permute(0, 2, 1)\n        #x = self.wave_block1(x)\n        x = self.wave_block2(x)\n        x = self.wave_block3(x)\n\n        x = self.wave_block4(x)\n        x = x.permute(0, 2, 1)\n        x, h = self.LSTM1(x)\n        x = self.fc1(x)\n    \n        \n        return x,x,x","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:29.334669Z","iopub.execute_input":"2023-06-19T05:34:29.335412Z","iopub.status.idle":"2023-06-19T05:34:29.347269Z","shell.execute_reply.started":"2023-06-19T05:34:29.335355Z","shell.execute_reply":"2023-06-19T05:34:29.346423Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch.cuda.amp as amp\nclass AmpNet1(Classifier1):\n    \n    def __init__(self,params):\n        super(AmpNet1, self).__init__()\n    @torch.cuda.amp.autocast()\n    def forward(self,*args):\n        return super(AmpNet1, self).forward(*args)\n\nclass AmpNet2(Classifier2):\n    \n    def __init__(self,params):\n        super(AmpNet2, self).__init__()\n    @torch.cuda.amp.autocast()\n    def forward(self,*args):\n        return super(AmpNet2, self).forward(*args)\n\nis_mixed_precision = True  #True #False","metadata":{"papermill":{"duration":0.080072,"end_time":"2021-12-13T10:09:03.957995","exception":false,"start_time":"2021-12-13T10:09:03.877923","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:29.348571Z","iopub.execute_input":"2023-06-19T05:34:29.349116Z","iopub.status.idle":"2023-06-19T05:34:29.358775Z","shell.execute_reply.started":"2023-06-19T05:34:29.349083Z","shell.execute_reply":"2023-06-19T05:34:29.357738Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def getOptimzersScheduler(model,params,steps_in_epoch=25,pct_start=0.1):\n    \n    \n    mdl_parameters = [\n                {'params': model.parameters(), 'lr': 1e-4},\n            ]\n    \n    optimizer = torch.optim.Adam(mdl_parameters, lr=params['learning_rate'][0])\n    \n    scheduler = torch.optim.lr_scheduler.OneCycleLR(optimizer,steps_per_epoch=1,\n                                                    pct_start=pct_start,\n                                                    max_lr=params['learning_rate'],\n                                                    epochs  = params['max_epochs'], \n                                                    div_factor = params['div_factor'], \n                                                    final_div_factor=params['final_div_factor'],\n                                                    verbose=True)\n    \n    return optimizer,scheduler,False","metadata":{"papermill":{"duration":0.032959,"end_time":"2021-12-13T10:09:04.01587","exception":false,"start_time":"2021-12-13T10:09:03.982911","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:29.359973Z","iopub.execute_input":"2023-06-19T05:34:29.360517Z","iopub.status.idle":"2023-06-19T05:34:29.374882Z","shell.execute_reply.started":"2023-06-19T05:34:29.360479Z","shell.execute_reply":"2023-06-19T05:34:29.374003Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def save_model(epoch,model,ckpt_path='./',name='',val_rmse=0):\n    path = os.path.join(ckpt_path, '{}_{}.pth'.format(name, epoch))\n    torch.save(model.state_dict(), path, _use_new_zipfile_serialization=False)\n    \ndef load_model(model,ckpt_path):\n    state = torch.load(ckpt_path)\n    print(model.load_state_dict(state,strict=False))\n    return model","metadata":{"papermill":{"duration":0.032012,"end_time":"2021-12-13T10:09:04.072285","exception":false,"start_time":"2021-12-13T10:09:04.040273","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:29.376362Z","iopub.execute_input":"2023-06-19T05:34:29.376861Z","iopub.status.idle":"2023-06-19T05:34:29.385340Z","shell.execute_reply.started":"2023-06-19T05:34:29.376830Z","shell.execute_reply":"2023-06-19T05:34:29.384359Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"CLASS_WT = torch.tensor([0.4,1,1,1]).float().cuda()","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:29.389678Z","iopub.execute_input":"2023-06-19T05:34:29.389983Z","iopub.status.idle":"2023-06-19T05:34:32.324222Z","shell.execute_reply.started":"2023-06-19T05:34:29.389950Z","shell.execute_reply":"2023-06-19T05:34:32.323260Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def validation_step(model, batch, batch_idx):\n    # Load images and labels\n    x = batch[\"wav\"].float()\n    if GPU:\n        x= x.cuda(non_blocking=True)\n    x = x[0]\n    \n    print('x',x.shape)\n    # Forward pass & softmax\n    \n    flat_pred = np.zeros((batch['act_len'][0],3))\n    with torch.no_grad():\n        if is_mixed_precision:\n            with amp.autocast():\n                preds, _, _ = model(x)\n                preds = preds\n                \n                print('preds',preds.shape)\n     \n    for i in range(batch['nchunk'][0]):\n        flat_pred[i*WAV_SIZE:(i+1)*WAV_SIZE] = torch.sigmoid(preds[i]).detach().cpu().numpy()\n        \n    rem_sz = batch['rem_size'][0]\n    if rem_sz > 0:\n        flat_pred[-rem_sz:] = torch.sigmoid(preds[-1]).detach().cpu().numpy()[-rem_sz:]\n        \n    torch.cuda.empty_cache()\n\n    return flat_pred","metadata":{"papermill":{"duration":0.040406,"end_time":"2021-12-13T10:09:04.193173","exception":false,"start_time":"2021-12-13T10:09:04.152767","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:32.325883Z","iopub.execute_input":"2023-06-19T05:34:32.326310Z","iopub.status.idle":"2023-06-19T05:34:32.338248Z","shell.execute_reply.started":"2023-06-19T05:34:32.326273Z","shell.execute_reply":"2023-06-19T05:34:32.337394Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.metrics import roc_auc_score,f1_score,precision_score,average_precision_score\n        \n\ndef test_epoch(model,valDataLoader):\n\n    total_loss=0\n    total_step=0\n    model.eval()\n    pred_dfs = []\n\n    pbar=tqdm(enumerate(valDataLoader),total=len(valDataLoader))\n    for bi,data in pbar :\n        pred = validation_step(model,data,bi)\n        \n        if data['type'][0] == 0:\n            preds = []\n            for c in range(3):\n                preds.append(librosa.resample(pred[:,c].astype(np.float32),orig_sr=100,target_sr=128))\n                \n            pred = np.stack(preds,axis=1)\n            pred = np.clip(pred,0,1)\n            \n            pred1 = np.zeros((data['df_length'][0],3))\n            pred1[0:data['df_length'][0]] = pred[0:data['df_length'][0]]\n            pred=pred1\n        \n        total_step+=1\n        preds_df = pd.DataFrame(pred)\n        print('preds_df',preds_df.shape)\n        preds_df.columns = TARGET_COLS\n        preds_df['Id'] = data['Id'][0]\n        preds_df['Id'] = preds_df['Id'] + '_' + preds_df.index.values.astype(str)\n\n        pred_dfs.append(preds_df)\n      \n    print('len preds_df',len(preds))\n    preds = pd.concat(pred_dfs)\n\n    print('preds',preds.shape)\n    return preds[TARGET_COLS] , preds[['Id']]","metadata":{"papermill":{"duration":0.036917,"end_time":"2021-12-13T10:09:04.254423","exception":false,"start_time":"2021-12-13T10:09:04.217506","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:32.339750Z","iopub.execute_input":"2023-06-19T05:34:32.340102Z","iopub.status.idle":"2023-06-19T05:34:32.353267Z","shell.execute_reply.started":"2023-06-19T05:34:32.340068Z","shell.execute_reply":"2023-06-19T05:34:32.352307Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"GPU=True\ndef test_loop(params,test_x,ckpt_paths1,ckpt_paths2):\n    \n    #create model\n    models = []\n\n    valDataLoader = getDataLoader(params,test_x)\n    \n    preds_dfs = []\n    id_df = None\n    #'StartHesitation', 'Turn', 'Walking\n    sh_pred = 0\n    turn_pred = 0\n    walking_pred =0 \n    #for m in models:\n    for c in ckpt_paths1:\n        model = AmpNet1(params).cuda()\n        #load model\n        model = load_model(model,c).eval()\n        df, id_df = test_epoch(model,valDataLoader)\n        \n        sh_pred += df['StartHesitation'].values\n        turn_pred += df['Turn'].values\n        walking_pred += df['Walking'].values\n        del model, df\n        gc.collect()\n        torch.cuda.empty_cache()\n    for c in ckpt_paths2:\n        model = AmpNet2(params).cuda()\n        #load model\n        model = load_model(model,c).eval()\n        df, id_df = test_epoch(model,valDataLoader)\n        \n        sh_pred += df['StartHesitation'].values\n        turn_pred += df['Turn'].values\n        walking_pred += df['Walking'].values\n        del model, df\n        gc.collect()\n        torch.cuda.empty_cache()\n    \n    sh_pred /= (len(ckpt_paths1) + len(ckpt_paths2))\n    turn_pred /= (len(ckpt_paths1) + len(ckpt_paths2))\n    walking_pred /= (len(ckpt_paths1) + len(ckpt_paths2))\n    \n    preds = pd.DataFrame({'StartHesitation':sh_pred, 'Turn':turn_pred, 'Walking':walking_pred})\n        \n    preds['Id'] = id_df['Id'].values\n    return preds","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:32.356319Z","iopub.execute_input":"2023-06-19T05:34:32.357035Z","iopub.status.idle":"2023-06-19T05:34:32.369711Z","shell.execute_reply.started":"2023-06-19T05:34:32.357011Z","shell.execute_reply":"2023-06-19T05:34:32.368877Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"hparams = {\n    # Optional hparams\n    \"backbone\": 'wavenet_4096', #'', #'tf_efficientnetv2_b2',\n    \"learning_rate\": [5e-4],\n    \"max_epochs\": 121,\n    \"batch_size\": 8,\n    \"num_workers\": 0,\n    \"val_sanity_checks\": 0,\n    \"fast_dev_run\": False,\n    \"output_path\": f\"\",\n    \"gpu\": torch.cuda.is_available(),\n    'div_factor':10,\n    'final_div_factor':20,\n}","metadata":{"papermill":{"duration":0.031307,"end_time":"2021-12-13T10:09:04.424259","exception":false,"start_time":"2021-12-13T10:09:04.392952","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:32.370965Z","iopub.execute_input":"2023-06-19T05:34:32.371327Z","iopub.status.idle":"2023-06-19T05:34:32.387616Z","shell.execute_reply.started":"2023-06-19T05:34:32.371298Z","shell.execute_reply":"2023-06-19T05:34:32.386668Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"scaler = amp.GradScaler()","metadata":{"papermill":{"duration":0.034696,"end_time":"2021-12-13T10:09:04.580936","exception":false,"start_time":"2021-12-13T10:09:04.54624","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:34:32.390229Z","iopub.execute_input":"2023-06-19T05:34:32.390614Z","iopub.status.idle":"2023-06-19T05:34:32.397160Z","shell.execute_reply.started":"2023-06-19T05:34:32.390579Z","shell.execute_reply":"2023-06-19T05:34:32.396165Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import random\nseed=42\ndef set_seed(seed=42):\n    torch.manual_seed(seed)\n    torch.cuda.manual_seed(seed)\n    torch.backends.cudnn.deterministic = False\n    torch.use_deterministic_algorithms = True\n    random.seed(0)\n    np.random.seed(0)\nset_seed(seed)\n\n","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:32.398247Z","iopub.execute_input":"2023-06-19T05:34:32.398523Z","iopub.status.idle":"2023-06-19T05:34:32.409407Z","shell.execute_reply.started":"2023-06-19T05:34:32.398492Z","shell.execute_reply":"2023-06-19T05:34:32.408566Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import glob\nimport os\nimport pandas as pd\n\ntdcsfog_files = glob.glob('/kaggle/input/tlvmc-parkinsons-freezing-gait-prediction/test/tdcsfog/*.csv')\ntdcsfog_df = pd.DataFrame({'filename':tdcsfog_files, 'type':0} )\ndefog_files = glob.glob('/kaggle/input/tlvmc-parkinsons-freezing-gait-prediction/test/defog/*.csv')\ndefog_df = pd.DataFrame({'filename':defog_files, 'type':1} )\n\nfog_data = pd.concat([tdcsfog_df,defog_df]).reset_index(drop=True)\nfog_data['Id'] = fog_data.filename.apply(lambda f:os.path.basename(f).replace('.csv',''))","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:32.410935Z","iopub.execute_input":"2023-06-19T05:34:32.411321Z","iopub.status.idle":"2023-06-19T05:34:32.435222Z","shell.execute_reply.started":"2023-06-19T05:34:32.411287Z","shell.execute_reply":"2023-06-19T05:34:32.434414Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fog_data","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:32.437266Z","iopub.execute_input":"2023-06-19T05:34:32.438150Z","iopub.status.idle":"2023-06-19T05:34:32.450880Z","shell.execute_reply.started":"2023-06-19T05:34:32.438119Z","shell.execute_reply":"2023-06-19T05:34:32.449861Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import gc\nversion='1'\nfn=0\n\nckpt_paths = ['/kaggle/input/wavenet4096-v1/wavenet_4096-fold0_48.pth', \n             '/kaggle/input/wavenet4096-v1/wavenet_4096-fold1_43.pth',\n             '/kaggle/input/wavenet4096-v1/wavenet_4096-fold2_72.pth',\n             '/kaggle/input/wavenet4096-v1/wavenet_4096-fold3_23.pth',\n             '/kaggle/input/wavenet4096-v1/wavenet_4096-fold4_36.pth',\n              '/kaggle/input/gait-wavenet-v2/wavenet_4096-fold0_58.pth',\n             '/kaggle/input/gait-wavenet-v2/wavenet_4096-fold1_36.pth',\n             '/kaggle/input/gait-wavenet-v2/wavenet_4096-fold2_50.pth',\n            '/kaggle/input/gait-wavenet-v2/wavenet_4096-fold3_17.pth',\n              '/kaggle/input/gait-wavenet-v2/wavenet_4096-fold4_12.pth',\n            ]\n\nckpt_paths = ['/kaggle/input/gait-wavenet-focal/wavenet_4096-fold0_18.pth',\n            '/kaggle/input/gait-wavenet-focal/wavenet_4096-fold1_54.pth',\n            '/kaggle/input/gait-wavenet-focal/wavenet_4096-fold2_19.pth',\n            '/kaggle/input/gait-wavenet-focal/wavenet_4096-fold3_21.pth',\n            '/kaggle/input/gait-wavenet-focal/wavenet_4096-fold4_45.pth'\n            ]\n\nckpt_paths1 = []\nckpt_path = glob.glob('/kaggle/input/gait-wavenet-focal/*.pth')\nckpt_paths1.extend(ckpt_path)\n\nckpt_path = glob.glob('/kaggle/input/trained-models-wavenet-2000-v6/*.pth')\nckpt_paths1.extend(ckpt_path)\n\n#ckpt_path = glob.glob('/kaggle/input/wavenwt-4000-aug-v1/*.pth')\n#ckpt_paths1.extend(ckpt_path)\n\n#ckpt_path = glob.glob('/kaggle/input/wavnet2000-aug-v1/*.pth')\n#ckpt_paths1.extend(ckpt_path)\n\nckpt_paths2 = []\nckpt_path = glob.glob('/kaggle/input/wavenet-from-pretrain-v3/*.pth')\nckpt_paths2.extend(ckpt_path)\n\nprint(ckpt_paths1)\n\nsubm = test_loop(hparams,fog_data,ckpt_paths1,ckpt_paths2)","metadata":{"papermill":{"duration":0.04818,"end_time":"2021-12-13T13:17:52.100451","exception":false,"start_time":"2021-12-13T13:17:52.052271","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-06-19T05:59:21.894112Z","iopub.execute_input":"2023-06-19T05:59:21.894506Z","iopub.status.idle":"2023-06-19T05:59:21.907051Z","shell.execute_reply.started":"2023-06-19T05:59:21.894472Z","shell.execute_reply":"2023-06-19T05:59:21.906018Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(glob.glob('/kaggle/input/trained-models-wavenet-2000-v6/*.pth'))","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:59:02.728466Z","iopub.execute_input":"2023-06-19T05:59:02.728854Z","iopub.status.idle":"2023-06-19T05:59:02.736040Z","shell.execute_reply.started":"2023-06-19T05:59:02.728824Z","shell.execute_reply":"2023-06-19T05:59:02.735058Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"subm[-4000:]","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:32.484279Z","iopub.execute_input":"2023-06-19T05:34:32.484907Z","iopub.status.idle":"2023-06-19T05:34:32.953808Z","shell.execute_reply.started":"2023-06-19T05:34:32.484875Z","shell.execute_reply":"2023-06-19T05:34:32.952441Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"subm[['Id','StartHesitation','Turn','Walking']].to_csv('./submission.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2023-06-19T05:34:32.955052Z","iopub.status.idle":"2023-06-19T05:34:32.955875Z","shell.execute_reply.started":"2023-06-19T05:34:32.955583Z","shell.execute_reply":"2023-06-19T05:34:32.955609Z"},"trusted":true},"execution_count":null,"outputs":[]}]}