diff --git "a/train_model.ipynb" "b/train_model.ipynb"
new file mode 100644--- /dev/null
+++ "b/train_model.ipynb"
@@ -0,0 +1,3822 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "742dd25e",
+ "metadata": {
+ "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
+ "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:57:34.588701Z",
+ "iopub.status.busy": "2025-04-09T14:57:34.588348Z",
+ "iopub.status.idle": "2025-04-09T14:57:36.465959Z",
+ "shell.execute_reply": "2025-04-09T14:57:36.464971Z"
+ },
+ "papermill": {
+ "duration": 1.884778,
+ "end_time": "2025-04-09T14:57:36.467568",
+ "exception": false,
+ "start_time": "2025-04-09T14:57:34.582790",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "\n",
+ "import os\n",
+ "import urllib.request\n",
+ "import sys\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "6376949e",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:57:36.477658Z",
+ "iopub.status.busy": "2025-04-09T14:57:36.477313Z",
+ "iopub.status.idle": "2025-04-09T14:57:44.372695Z",
+ "shell.execute_reply": "2025-04-09T14:57:44.371993Z"
+ },
+ "papermill": {
+ "duration": 7.901685,
+ "end_time": "2025-04-09T14:57:44.374160",
+ "exception": false,
+ "start_time": "2025-04-09T14:57:36.472475",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import torch\n",
+ "import torch.nn as nn\n",
+ "from torch.utils.data import Dataset, DataLoader\n",
+ "import torch.nn.functional as f\n",
+ "import torch.optim as optim\n",
+ "\n",
+ "import torchvision\n",
+ "from torchvision.transforms import v2\n",
+ "from torchvision import models\n",
+ "from torchvision.models import resnet50, ResNet50_Weights\n",
+ "import torch.optim.lr_scheduler as lr_scheduler\n",
+ "\n",
+ "import random\n",
+ "from PIL import Image\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "c2c2efd2",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:57:44.384169Z",
+ "iopub.status.busy": "2025-04-09T14:57:44.383727Z",
+ "iopub.status.idle": "2025-04-09T14:57:44.850886Z",
+ "shell.execute_reply": "2025-04-09T14:57:44.849673Z"
+ },
+ "papermill": {
+ "duration": 0.474073,
+ "end_time": "2025-04-09T14:57:44.852622",
+ "exception": false,
+ "start_time": "2025-04-09T14:57:44.378549",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "df = pd.read_csv('/kaggle/input/fakenews-fakedit/Dataset/df_balanced_resized.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "cd73260e",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:57:44.862381Z",
+ "iopub.status.busy": "2025-04-09T14:57:44.862092Z",
+ "iopub.status.idle": "2025-04-09T14:57:44.892519Z",
+ "shell.execute_reply": "2025-04-09T14:57:44.891636Z"
+ },
+ "papermill": {
+ "duration": 0.036914,
+ "end_time": "2025-04-09T14:57:44.894122",
+ "exception": false,
+ "start_time": "2025-04-09T14:57:44.857208",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " author | \n",
+ " clean_title | \n",
+ " created_utc | \n",
+ " domain | \n",
+ " hasImage | \n",
+ " id | \n",
+ " image_url | \n",
+ " linked_submission_id | \n",
+ " num_comments | \n",
+ " score | \n",
+ " subreddit | \n",
+ " upvote_ratio | \n",
+ " 6_way_label | \n",
+ " binary_label | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " BruxellesBlonde | \n",
+ " sooooo satisfying | \n",
+ " 1.537968e+09 | \n",
+ " i.redd.it | \n",
+ " True | \n",
+ " 9j2gd1 | \n",
+ " https://preview.redd.it/bjlftqsj3lo11.jpg?widt... | \n",
+ " NaN | \n",
+ " 3.0 | \n",
+ " 15 | \n",
+ " mildlyinteresting | \n",
+ " 0.75 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " korkow | \n",
+ " the chips fell out of this chocolate chip cookie | \n",
+ " 1.384738e+09 | \n",
+ " i.imgur.com | \n",
+ " True | \n",
+ " 1qv2m9 | \n",
+ " https://external-preview.redd.it/ESPM-tTuK3wer... | \n",
+ " NaN | \n",
+ " 4.0 | \n",
+ " 8 | \n",
+ " misleadingthumbnails | \n",
+ " 0.59 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " kyletheheroman | \n",
+ " has anyone seen a square cloud before | \n",
+ " 1.551516e+09 | \n",
+ " i.redd.it | \n",
+ " True | \n",
+ " awfsgw | \n",
+ " https://preview.redd.it/trqkt1rx4oj21.jpg?widt... | \n",
+ " NaN | \n",
+ " 6.0 | \n",
+ " 4 | \n",
+ " mildlyinteresting | \n",
+ " 0.60 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " FledPotato | \n",
+ " it almost seems to smile back | \n",
+ " 1.522871e+09 | \n",
+ " i.redd.it | \n",
+ " True | \n",
+ " 89ssvs | \n",
+ " https://preview.redd.it/yf1j0rvq4yp01.jpg?widt... | \n",
+ " NaN | \n",
+ " 9.0 | \n",
+ " 212 | \n",
+ " pareidolia | \n",
+ " 0.98 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " allhundredyears | \n",
+ " this tape deck has seen some shit | \n",
+ " 1.426363e+09 | \n",
+ " imgur.com | \n",
+ " True | \n",
+ " 2z1tha | \n",
+ " https://external-preview.redd.it/QFHuRDeu_v1cm... | \n",
+ " NaN | \n",
+ " 2.0 | \n",
+ " 6 | \n",
+ " pareidolia | \n",
+ " 0.88 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " spyder_19 | \n",
+ " saw an interesting sign at the store so i got it | \n",
+ " 1.564682e+09 | \n",
+ " i.redd.it | \n",
+ " True | \n",
+ " ckrv3k | \n",
+ " https://preview.redd.it/ketwpycjmvd31.jpg?widt... | \n",
+ " NaN | \n",
+ " 2.0 | \n",
+ " 32 | \n",
+ " mildlyinteresting | \n",
+ " 0.87 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " Not3Shabby | \n",
+ " inherent paradox scrabeck | \n",
+ " 1.489213e+09 | \n",
+ " imgur.com | \n",
+ " True | \n",
+ " 5yrdcs | \n",
+ " https://external-preview.redd.it/g3nNRMvtW8FCT... | \n",
+ " NaN | \n",
+ " 0.0 | \n",
+ " 4 | \n",
+ " fakealbumcovers | \n",
+ " 0.83 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " mikewall | \n",
+ " gop senate candidate kelli ward complained mcc... | \n",
+ " 1.535296e+09 | \n",
+ " newsweek.com | \n",
+ " True | \n",
+ " 9ag51l | \n",
+ " https://external-preview.redd.it/3c79PddPA_og2... | \n",
+ " NaN | \n",
+ " 15.0 | \n",
+ " 243 | \n",
+ " nottheonion | \n",
+ " 0.95 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " worldnews_SS | \n",
+ " christians fleeing iraqs mosul region to provi... | \n",
+ " 1.458731e+09 | \n",
+ " engadget.com | \n",
+ " True | \n",
+ " 4bm0cs | \n",
+ " https://external-preview.redd.it/xNKcWQsoGpWr3... | \n",
+ " NaN | \n",
+ " 20.0 | \n",
+ " 10 | \n",
+ " subredditsimulator | \n",
+ " 0.92 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " todayilearned_SS | \n",
+ " til pegi europes video game in only to turn to... | \n",
+ " 1.486354e+09 | \n",
+ " nytimes.com | \n",
+ " True | \n",
+ " 5sc05y | \n",
+ " https://external-preview.redd.it/PL4PyhChdGdhF... | \n",
+ " NaN | \n",
+ " 61.0 | \n",
+ " 5 | \n",
+ " subredditsimulator | \n",
+ " 0.86 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " author clean_title \\\n",
+ "0 BruxellesBlonde sooooo satisfying \n",
+ "1 korkow the chips fell out of this chocolate chip cookie \n",
+ "2 kyletheheroman has anyone seen a square cloud before \n",
+ "3 FledPotato it almost seems to smile back \n",
+ "4 allhundredyears this tape deck has seen some shit \n",
+ "5 spyder_19 saw an interesting sign at the store so i got it \n",
+ "6 Not3Shabby inherent paradox scrabeck \n",
+ "7 mikewall gop senate candidate kelli ward complained mcc... \n",
+ "8 worldnews_SS christians fleeing iraqs mosul region to provi... \n",
+ "9 todayilearned_SS til pegi europes video game in only to turn to... \n",
+ "\n",
+ " created_utc domain hasImage id \\\n",
+ "0 1.537968e+09 i.redd.it True 9j2gd1 \n",
+ "1 1.384738e+09 i.imgur.com True 1qv2m9 \n",
+ "2 1.551516e+09 i.redd.it True awfsgw \n",
+ "3 1.522871e+09 i.redd.it True 89ssvs \n",
+ "4 1.426363e+09 imgur.com True 2z1tha \n",
+ "5 1.564682e+09 i.redd.it True ckrv3k \n",
+ "6 1.489213e+09 imgur.com True 5yrdcs \n",
+ "7 1.535296e+09 newsweek.com True 9ag51l \n",
+ "8 1.458731e+09 engadget.com True 4bm0cs \n",
+ "9 1.486354e+09 nytimes.com True 5sc05y \n",
+ "\n",
+ " image_url linked_submission_id \\\n",
+ "0 https://preview.redd.it/bjlftqsj3lo11.jpg?widt... NaN \n",
+ "1 https://external-preview.redd.it/ESPM-tTuK3wer... NaN \n",
+ "2 https://preview.redd.it/trqkt1rx4oj21.jpg?widt... NaN \n",
+ "3 https://preview.redd.it/yf1j0rvq4yp01.jpg?widt... NaN \n",
+ "4 https://external-preview.redd.it/QFHuRDeu_v1cm... NaN \n",
+ "5 https://preview.redd.it/ketwpycjmvd31.jpg?widt... NaN \n",
+ "6 https://external-preview.redd.it/g3nNRMvtW8FCT... NaN \n",
+ "7 https://external-preview.redd.it/3c79PddPA_og2... NaN \n",
+ "8 https://external-preview.redd.it/xNKcWQsoGpWr3... NaN \n",
+ "9 https://external-preview.redd.it/PL4PyhChdGdhF... NaN \n",
+ "\n",
+ " num_comments score subreddit upvote_ratio 6_way_label \\\n",
+ "0 3.0 15 mildlyinteresting 0.75 0 \n",
+ "1 4.0 8 misleadingthumbnails 0.59 2 \n",
+ "2 6.0 4 mildlyinteresting 0.60 0 \n",
+ "3 9.0 212 pareidolia 0.98 2 \n",
+ "4 2.0 6 pareidolia 0.88 2 \n",
+ "5 2.0 32 mildlyinteresting 0.87 0 \n",
+ "6 0.0 4 fakealbumcovers 0.83 1 \n",
+ "7 15.0 243 nottheonion 0.95 0 \n",
+ "8 20.0 10 subredditsimulator 0.92 3 \n",
+ "9 61.0 5 subredditsimulator 0.86 3 \n",
+ "\n",
+ " binary_label \n",
+ "0 0 \n",
+ "1 1 \n",
+ "2 0 \n",
+ "3 1 \n",
+ "4 1 \n",
+ "5 0 \n",
+ "6 1 \n",
+ "7 0 \n",
+ "8 1 \n",
+ "9 1 "
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "722e2299",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:57:44.905475Z",
+ "iopub.status.busy": "2025-04-09T14:57:44.905209Z",
+ "iopub.status.idle": "2025-04-09T14:57:58.592716Z",
+ "shell.execute_reply": "2025-04-09T14:57:58.591624Z"
+ },
+ "papermill": {
+ "duration": 13.695117,
+ "end_time": "2025-04-09T14:57:58.594460",
+ "exception": false,
+ "start_time": "2025-04-09T14:57:44.899343",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "%%capture\n",
+ "\n",
+ "! pip install bert-serving-server\n",
+ "! pip install bert-serving-client\n",
+ "! pip install torch transformers"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "09e8dffc",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:57:58.605520Z",
+ "iopub.status.busy": "2025-04-09T14:57:58.605233Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.242728Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.241824Z"
+ },
+ "papermill": {
+ "duration": 17.644708,
+ "end_time": "2025-04-09T14:58:16.244174",
+ "exception": false,
+ "start_time": "2025-04-09T14:57:58.599466",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "3a33316103c840dcbe682c6f0aeea286",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "tokenizer_config.json: 0%| | 0.00/48.0 [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "32bccc63f7044ac497bd8ad9c918f44e",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "vocab.txt: 0%| | 0.00/232k [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "44a0a0f1927d4b4abfa23702200b5dfe",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "tokenizer.json: 0%| | 0.00/466k [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "4edcb2d0ea964d348230e57d8938ce49",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "config.json: 0%| | 0.00/570 [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "da7ae94dd26a44b9851cf104543c0fd3",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "model.safetensors: 0%| | 0.00/440M [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "BertModel(\n",
+ " (embeddings): BertEmbeddings(\n",
+ " (word_embeddings): Embedding(30522, 768, padding_idx=0)\n",
+ " (position_embeddings): Embedding(512, 768)\n",
+ " (token_type_embeddings): Embedding(2, 768)\n",
+ " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+ " (dropout): Dropout(p=0.1, inplace=False)\n",
+ " )\n",
+ " (encoder): BertEncoder(\n",
+ " (layer): ModuleList(\n",
+ " (0-11): 12 x BertLayer(\n",
+ " (attention): BertAttention(\n",
+ " (self): BertSdpaSelfAttention(\n",
+ " (query): Linear(in_features=768, out_features=768, bias=True)\n",
+ " (key): Linear(in_features=768, out_features=768, bias=True)\n",
+ " (value): Linear(in_features=768, out_features=768, bias=True)\n",
+ " (dropout): Dropout(p=0.1, inplace=False)\n",
+ " )\n",
+ " (output): BertSelfOutput(\n",
+ " (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+ " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+ " (dropout): Dropout(p=0.1, inplace=False)\n",
+ " )\n",
+ " )\n",
+ " (intermediate): BertIntermediate(\n",
+ " (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+ " (intermediate_act_fn): GELUActivation()\n",
+ " )\n",
+ " (output): BertOutput(\n",
+ " (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+ " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+ " (dropout): Dropout(p=0.1, inplace=False)\n",
+ " )\n",
+ " )\n",
+ " )\n",
+ " )\n",
+ " (pooler): BertPooler(\n",
+ " (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+ " (activation): Tanh()\n",
+ " )\n",
+ ")"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import torch\n",
+ "from transformers import BertModel, BertTokenizer\n",
+ "\n",
+ "# Load pre-trained BERT model and tokenizer\n",
+ "model_name = 'bert-base-uncased'\n",
+ "tokenizer = BertTokenizer.from_pretrained(model_name)\n",
+ "bert_model = BertModel.from_pretrained(model_name, output_hidden_states = True)\n",
+ "\n",
+ "# Put the model in evaluation mode, which turns off dropout regularization which is used in training.\n",
+ "bert_model.eval()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "123c3656",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.256413Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.255949Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.259660Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.259038Z"
+ },
+ "papermill": {
+ "duration": 0.011103,
+ "end_time": "2025-04-09T14:58:16.261002",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.249899",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def get_bert_embedding(text):\n",
+ " # Tokenize input text and get token IDs and attention mask\n",
+ " inputs = tokenizer.encode_plus(text, add_special_tokens = True, return_tensors='pt', max_length=80, truncation=True, padding='max_length')\n",
+ "\n",
+ " return inputs['input_ids'].squeeze(0), inputs['attention_mask'].squeeze(0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "f2f68f26",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.271870Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.271629Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.342935Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.342176Z"
+ },
+ "papermill": {
+ "duration": 0.078097,
+ "end_time": "2025-04-09T14:58:16.344324",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.266227",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "df_train, df_test = train_test_split(df, test_size=0.2, stratify=df[\"binary_label\"])\n",
+ "df_test, df_val = train_test_split(df_test, test_size=0.5, stratify=df_test[\"binary_label\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "ae5603c3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.355488Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.355259Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.361355Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.360587Z"
+ },
+ "papermill": {
+ "duration": 0.01337,
+ "end_time": "2025-04-09T14:58:16.362806",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.349436",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "class FakedditDataset(Dataset):\n",
+ " def __init__(self, df, text_field=\"clean_title\", label_field=\"binary_label\", image_id=\"id\"):\n",
+ " self.df = df.reset_index(drop=True)\n",
+ " self.text_field = text_field\n",
+ " self.label_field = label_field\n",
+ " self.image_id = image_id\n",
+ "\n",
+ " self.img_size = 256\n",
+ " # Using the pre-calculated ImageNet mean and std values for normalization\n",
+ " self.mean, self.std = [0.485, 0.456, 0.406], [0.229, 0.224, 0.225]\n",
+ "\n",
+ " self.transform_func = v2.Compose(\n",
+ " [ v2.Resize(256),\n",
+ " v2.ToImage(),\n",
+ " v2.ToDtype(torch.float32, scale=True),\n",
+ " v2.Normalize(self.mean, self.std)\n",
+ " ])\n",
+ "\n",
+ " def __getitem__(self, index):\n",
+ " text = str(self.df.at[index, self.text_field])\n",
+ " label = self.df.at[index, self.label_field]\n",
+ " img_path = \"/kaggle/input/fakenews-fakedit/Dataset/images/\" + self.df.at[index, self.image_id] + \".jpg\"\n",
+ "\n",
+ " image = Image.open(img_path)\n",
+ " img = self.transform_func(image)\n",
+ "\n",
+ " input_ids, attention_mask = get_bert_embedding(text)\n",
+ "\n",
+ " return input_ids, attention_mask, label, img\n",
+ "\n",
+ " def __len__(self):\n",
+ " return self.df.shape[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "b01687f7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.373613Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.373405Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.385730Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.385182Z"
+ },
+ "papermill": {
+ "duration": 0.01933,
+ "end_time": "2025-04-09T14:58:16.387149",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.367819",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "train_dataset = FakedditDataset(df_train)\n",
+ "test_dataset = FakedditDataset(df_test)\n",
+ "val_dataset = FakedditDataset(df_val)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "3ea3e972",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.398504Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.398275Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.707457Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.706508Z"
+ },
+ "papermill": {
+ "duration": 0.316775,
+ "end_time": "2025-04-09T14:58:16.709280",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.392505",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1643\n",
+ "torch.Size([32, 80]) torch.Size([32, 80]) torch.Size([32]) torch.Size([32, 3, 256, 256])\n"
+ ]
+ }
+ ],
+ "source": [
+ "train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)\n",
+ "test_loader = DataLoader(test_dataset, batch_size=32, shuffle=True)\n",
+ "val_loader = DataLoader(val_dataset, batch_size=32, shuffle=True)\n",
+ "\n",
+ "print(len(train_loader))\n",
+ "\n",
+ "# Verifying dataset was created accurately\n",
+ "input_ids, attention_mask, label, img = next(iter(train_loader))\n",
+ "print(input_ids.shape, attention_mask.shape, label.shape, img.shape)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "2bbb61c0",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.721642Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.721384Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.726400Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.725731Z"
+ },
+ "papermill": {
+ "duration": 0.012021,
+ "end_time": "2025-04-09T14:58:16.727524",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.715503",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "class EarlyStopping:\n",
+ " def __init__(self, patience=4, verbose=False, delta=0):\n",
+ " self.patience = patience\n",
+ " self.verbose = verbose\n",
+ " self.counter = 0\n",
+ " self.best_loss = None\n",
+ " self.early_stop = False\n",
+ " self.delta = delta\n",
+ "\n",
+ " def __call__(self, val_loss):\n",
+ " if self.best_loss is None:\n",
+ " self.best_loss = val_loss\n",
+ " elif val_loss > self.best_loss + self.delta:\n",
+ " self.counter += 1\n",
+ " if self.verbose:\n",
+ " print(f\"EarlyStopping counter: {self.counter} out of {self.patience}\")\n",
+ " if self.counter >= self.patience:\n",
+ " self.early_stop = True\n",
+ " else:\n",
+ " self.best_loss = val_loss\n",
+ " self.counter = 0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "f2584bec",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.738341Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.738140Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.743512Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.742634Z"
+ },
+ "papermill": {
+ "duration": 0.012462,
+ "end_time": "2025-04-09T14:58:16.745020",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.732558",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[0 0 0 ... 0 1 1]\n",
+ "Unique labels: [0 1]\n"
+ ]
+ }
+ ],
+ "source": [
+ "labels = df_train[\"binary_label\"].values \n",
+ "\n",
+ "print(labels)\n",
+ "print(\"Unique labels:\", np.unique(labels))\n",
+ "# assert set(np.unique(labels)).issubset({0, 1}), \"🔥 Labels must be 0 or 1 for binary classification!\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "99e961ca",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.757348Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.757133Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.761985Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.761219Z"
+ },
+ "papermill": {
+ "duration": 0.012382,
+ "end_time": "2025-04-09T14:58:16.763299",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.750917",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "class SelfAttentionFusion(nn.Module):\n",
+ " def __init__(self, embed_dim):\n",
+ " super().__init__()\n",
+ " self.attn = nn.Linear(embed_dim * 2, 2)\n",
+ " self.softmax = nn.Softmax(dim=1)\n",
+ "\n",
+ " def forward(self, x_text, x_img):\n",
+ " stacked = torch.stack([x_text, x_img], dim=1) # (B, 2, D)\n",
+ " attn_weights = self.softmax(self.attn(torch.cat([x_text, x_img], dim=1))).unsqueeze(2) # (B, 2, 1)\n",
+ " fused = (attn_weights * stacked).sum(dim=1) # (B, D)\n",
+ " return fused"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "09b3f58a",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.774550Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.774308Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.780321Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.779507Z"
+ },
+ "papermill": {
+ "duration": 0.013157,
+ "end_time": "2025-04-09T14:58:16.781710",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.768553",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "class BERTResNetClassifier(nn.Module):\n",
+ " def __init__(self, num_classes=2):\n",
+ " super(BERTResNetClassifier, self).__init__()\n",
+ "\n",
+ " self.num_classes = num_classes\n",
+ "\n",
+ " # Image model\n",
+ " self.image_model = resnet50(weights=ResNet50_Weights.IMAGENET1K_V1)\n",
+ " self.fc_image = nn.Linear(1000, 512)\n",
+ " self.drop_img = nn.Dropout(p=0.3)\n",
+ "\n",
+ " # Text model\n",
+ " self.text_model = BertModel.from_pretrained(\"bert-base-uncased\")\n",
+ " self.fc_text = nn.Linear(self.text_model.config.hidden_size, 512)\n",
+ " self.drop_text = nn.Dropout(p=0.3)\n",
+ "\n",
+ " # Attention-based fusion\n",
+ " self.fusion = SelfAttentionFusion(embed_dim=512)\n",
+ "\n",
+ " # Final classification\n",
+ " self.fc_final = nn.Linear(512, num_classes)\n",
+ "\n",
+ " def forward(self, image, text_input_ids, text_attention_mask):\n",
+ " # Image path\n",
+ " x_img = self.image_model(image)\n",
+ " x_img = self.drop_img(x_img)\n",
+ " x_img = self.fc_image(x_img)\n",
+ "\n",
+ " # Text path\n",
+ " x_text_last_hidden = self.text_model(\n",
+ " input_ids=text_input_ids,\n",
+ " attention_mask=text_attention_mask,\n",
+ " return_dict=False\n",
+ " )[0][:, 0, :]\n",
+ " x_text = self.drop_text(x_text_last_hidden)\n",
+ " x_text = self.fc_text(x_text)\n",
+ "\n",
+ " # Fusion\n",
+ " x_fused = self.fusion(x_text, x_img)\n",
+ "\n",
+ " # Final classifier\n",
+ " logits = self.fc_final(x_fused)\n",
+ " return logits\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "40348647",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.792735Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.792516Z",
+ "iopub.status.idle": "2025-04-09T14:58:16.795400Z",
+ "shell.execute_reply": "2025-04-09T14:58:16.794836Z"
+ },
+ "papermill": {
+ "duration": 0.009703,
+ "end_time": "2025-04-09T14:58:16.796564",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.786861",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.utils import compute_class_weight\n",
+ "# import torch_xla.core.xla_model as xm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "b8ad064a",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:16.808136Z",
+ "iopub.status.busy": "2025-04-09T14:58:16.807923Z",
+ "iopub.status.idle": "2025-04-09T14:58:18.651123Z",
+ "shell.execute_reply": "2025-04-09T14:58:18.650416Z"
+ },
+ "papermill": {
+ "duration": 1.850916,
+ "end_time": "2025-04-09T14:58:18.652720",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:16.801804",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "cuda\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n",
+ "100%|██████████| 97.8M/97.8M [00:00<00:00, 172MB/s]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Using 2 GPUs!\n"
+ ]
+ }
+ ],
+ "source": [
+ "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
+ "print(device)\n",
+ "model = BERTResNetClassifier(num_classes=2)\n",
+ "\n",
+ "if torch.cuda.device_count() > 1:\n",
+ " print(f\"Using {torch.cuda.device_count()} GPUs!\")\n",
+ " model = nn.DataParallel(model)\n",
+ "model = model.to(device)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "bafa7e70",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:18.666026Z",
+ "iopub.status.busy": "2025-04-09T14:58:18.665764Z",
+ "iopub.status.idle": "2025-04-09T14:58:18.670654Z",
+ "shell.execute_reply": "2025-04-09T14:58:18.669984Z"
+ },
+ "papermill": {
+ "duration": 0.012684,
+ "end_time": "2025-04-09T14:58:18.671827",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:18.659143",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import torch.nn.functional as F\n",
+ "\n",
+ "class FocalLoss(nn.Module):\n",
+ " def __init__(self, alpha=None, gamma=2.0, reduction='mean'):\n",
+ " super(FocalLoss, self).__init__()\n",
+ " self.alpha = alpha\n",
+ " self.gamma = gamma\n",
+ " self.reduction = reduction\n",
+ "\n",
+ " def forward(self, inputs, targets):\n",
+ " ce_loss = F.cross_entropy(inputs, targets, weight=self.alpha, reduction='none')\n",
+ " pt = torch.exp(-ce_loss) # Prob of correct class\n",
+ " focal_loss = ((1 - pt) ** self.gamma) * ce_loss\n",
+ "\n",
+ " if self.reduction == 'mean':\n",
+ " return focal_loss.mean()\n",
+ " elif self.reduction == 'sum':\n",
+ " return focal_loss.sum()\n",
+ " else:\n",
+ " return focal_loss"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "9f205502",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:18.684572Z",
+ "iopub.status.busy": "2025-04-09T14:58:18.684346Z",
+ "iopub.status.idle": "2025-04-09T14:58:18.702780Z",
+ "shell.execute_reply": "2025-04-09T14:58:18.701803Z"
+ },
+ "papermill": {
+ "duration": 0.026304,
+ "end_time": "2025-04-09T14:58:18.704195",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:18.677891",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.utils.class_weight import compute_class_weight\n",
+ "\n",
+ "class_weights = compute_class_weight(class_weight='balanced', classes=np.unique(labels), y=labels)\n",
+ "class_weights = torch.tensor(class_weights, dtype=torch.float).to(device)\n",
+ "\n",
+ "criterion = FocalLoss(alpha=class_weights, gamma=2.0)\n",
+ "# criterion = nn.CrossEntropyLoss(weight=class_weights)\n",
+ "# optimizer = torch.optim.Adam(model.parameters(), lr=1e-5, weight_decay=1e-4)\n",
+ "optimizer = torch.optim.Adam([\n",
+ " {'params': model.module.text_model.parameters(), 'lr': 1e-5},\n",
+ " {'params': model.module.image_model.parameters(), 'lr': 5e-5},\n",
+ " {'params': list(model.module.fc_image.parameters()) +\n",
+ " list(model.module.fc_text.parameters()) +\n",
+ " list(model.module.fusion.parameters()) +\n",
+ " list(model.module.fc_final.parameters()), 'lr': 1e-4}\n",
+ "], weight_decay=1e-5)\n",
+ "\n",
+ "scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.5, patience=0, min_lr=1e-6, verbose=True)\n",
+ "num_epochs = 20\n",
+ "\n",
+ "def train_model(model, train_loader, val_loader, criterion, optimizer, scheduler, num_epochs):\n",
+ " early_stopping = EarlyStopping(patience=5, verbose=True)\n",
+ " \n",
+ " # Training loop\n",
+ " for epoch in range(num_epochs):\n",
+ " model.train()\n",
+ " running_loss = 0.0\n",
+ "\n",
+ " for input_ids, attention_mask, label, img in train_loader:\n",
+ " input_ids = input_ids.to(device)\n",
+ " attention_mask = attention_mask.to(device)\n",
+ " label = label.to(device)\n",
+ " img = img.to(device)\n",
+ " \n",
+ " optimizer.zero_grad()\n",
+ "\n",
+ " # Forward pass\n",
+ " outputs = model(img, input_ids, attention_mask)\n",
+ " loss = criterion(outputs, label)\n",
+ "\n",
+ " # Backward pass and optimization\n",
+ " loss.backward()\n",
+ " torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)\n",
+ " optimizer.step()\n",
+ "\n",
+ " running_loss += loss.item()* img.size(0)\n",
+ " \n",
+ " # Validating model and ensuring loss is decreasing \n",
+ " model.eval()\n",
+ " val_loss = 0.0\n",
+ " correct_preds = 0\n",
+ " with torch.no_grad():\n",
+ " for input_ids, attention_mask, label, img in val_loader:\n",
+ " input_ids = input_ids.to(device)\n",
+ " attention_mask = attention_mask.to(device)\n",
+ " label = label.to(device)\n",
+ " img = img.to(device)\n",
+ " \n",
+ " outputs = model(img, input_ids, attention_mask)\n",
+ " loss = criterion(outputs, label)\n",
+ " val_loss += loss.item() * img.size(0)\n",
+ "\n",
+ " _, preds = torch.max(outputs, 1)\n",
+ " correct_preds += torch.sum(preds == label)\n",
+ "\n",
+ " val_loss = val_loss / len(val_loader.dataset)\n",
+ " accuracy = correct_preds.double() / len(val_loader.dataset)\n",
+ " scheduler.step(val_loss)\n",
+ " print(f'Epoch {epoch+1}/{num_epochs}, Training Loss: {running_loss/len(train_loader.dataset):.4f}, Validation Loss: {val_loss:.4f}, Accuracy: {accuracy:.4f}')\n",
+ "\n",
+ " # Early stopping\n",
+ " early_stopping(val_loss)\n",
+ " if early_stopping.early_stop:\n",
+ " print(\"Early stopping triggered. Stopping training.\")\n",
+ " break\n",
+ "\n",
+ " torch.save(model.state_dict(), '/kaggle/working/model2.pth')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "bec89fae",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:18.716491Z",
+ "iopub.status.busy": "2025-04-09T14:58:18.716211Z",
+ "iopub.status.idle": "2025-04-09T14:58:18.722261Z",
+ "shell.execute_reply": "2025-04-09T14:58:18.721597Z"
+ },
+ "papermill": {
+ "duration": 0.013742,
+ "end_time": "2025-04-09T14:58:18.723546",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:18.709804",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.metrics import precision_score, recall_score\n",
+ "\n",
+ "def evaluate_model(model, test_loader, criterion):\n",
+ " model.eval()\n",
+ " val_losses = []\n",
+ " correct_preds = 0\n",
+ "\n",
+ " all_preds = []\n",
+ " all_labels = []\n",
+ "\n",
+ " with torch.no_grad():\n",
+ " for input_ids, attention_mask, label, img in test_loader:\n",
+ " input_ids = input_ids.to(device)\n",
+ " attention_mask = attention_mask.to(device)\n",
+ " label = label.to(device)\n",
+ " img = img.to(device)\n",
+ "\n",
+ " outputs = model(\n",
+ " image = img,\n",
+ " text_input_ids = input_ids,\n",
+ " text_attention_mask = attention_mask\n",
+ " )\n",
+ "\n",
+ " # Final Softmax layer returns class predictions per sample in batch\n",
+ " # Highest probability value resembles class prediction and is assigned to preds variable\n",
+ " _, preds = torch.max(outputs, dim=1)\n",
+ " #print(outputs)\n",
+ "\n",
+ " # Loss is calculated by applying Cross Entropy Loss\n",
+ " val_loss = criterion(outputs, label)\n",
+ "\n",
+ " # Counting correct model predictions and incrementing correct prediction count\n",
+ " correct_preds += torch.sum(preds == label)\n",
+ " print(preds, label)\n",
+ "\n",
+ " # Appending current loss per batch to list of losses per epoch\n",
+ " val_losses.append(val_loss.item())\n",
+ " \n",
+ " all_preds.extend(preds.cpu().numpy())\n",
+ " all_labels.extend(label.cpu().numpy())\n",
+ " \n",
+ "\n",
+ " accuracy = float((correct_preds.double() / len(df_test)) * 100)\n",
+ " precision = precision_score(all_labels, all_preds, average='weighted')\n",
+ " recall = recall_score(all_labels, all_preds, average='weighted')\n",
+ "\n",
+ " print(\"\\nAccuracy: \", accuracy)\n",
+ " print(\"Precision: \", precision)\n",
+ " print(\"Recall: \", recall)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "73760f46",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T14:58:18.735738Z",
+ "iopub.status.busy": "2025-04-09T14:58:18.735525Z",
+ "iopub.status.idle": "2025-04-09T17:15:30.818242Z",
+ "shell.execute_reply": "2025-04-09T17:15:30.817069Z"
+ },
+ "papermill": {
+ "duration": 8232.090989,
+ "end_time": "2025-04-09T17:15:30.820095",
+ "exception": false,
+ "start_time": "2025-04-09T14:58:18.729106",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Epoch 1/20, Training Loss: 0.1160, Validation Loss: 0.0951, Accuracy: 0.8409\n",
+ "Epoch 2/20, Training Loss: 0.0839, Validation Loss: 0.0968, Accuracy: 0.8478\n",
+ "EarlyStopping counter: 1 out of 5\n",
+ "Epoch 3/20, Training Loss: 0.0541, Validation Loss: 0.1117, Accuracy: 0.8513\n",
+ "EarlyStopping counter: 2 out of 5\n",
+ "Epoch 4/20, Training Loss: 0.0336, Validation Loss: 0.1642, Accuracy: 0.8517\n",
+ "EarlyStopping counter: 3 out of 5\n",
+ "Epoch 5/20, Training Loss: 0.0198, Validation Loss: 0.2515, Accuracy: 0.8484\n",
+ "EarlyStopping counter: 4 out of 5\n",
+ "Epoch 6/20, Training Loss: 0.0152, Validation Loss: 0.2819, Accuracy: 0.8484\n",
+ "EarlyStopping counter: 5 out of 5\n",
+ "Early stopping triggered. Stopping training.\n",
+ "\n",
+ "\n",
+ "tensor([0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 1, 1], device='cuda:0') tensor([0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0,\n",
+ " 1, 1, 0, 1, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0,\n",
+ " 1, 0, 1, 1, 0, 1, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0,\n",
+ " 0, 1, 1, 1, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0,\n",
+ " 0, 1, 0, 0, 1, 0, 1, 1], device='cuda:0') tensor([0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,\n",
+ " 0, 1, 1, 0, 0, 1, 1, 1], device='cuda:0') tensor([0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,\n",
+ " 0, 1, 1, 0, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,\n",
+ " 0, 0, 1, 1, 0, 0, 0, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1,\n",
+ " 1, 0, 0, 1, 0, 1, 0, 1], device='cuda:0') tensor([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 0, 1, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 0, 1, 0], device='cuda:0') tensor([0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1,\n",
+ " 1, 1, 0, 0, 0, 0, 1, 1], device='cuda:0') tensor([1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1,\n",
+ " 1, 1, 0, 1, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0,\n",
+ " 0, 1, 1, 0, 1, 1, 0, 0], device='cuda:0') tensor([1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 1, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0,\n",
+ " 1, 1, 0, 1, 1, 1, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0,\n",
+ " 1, 1, 0, 1, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 1, 0, 0], device='cuda:0') tensor([0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 0, 1], device='cuda:0') tensor([1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
+ " 0, 0, 0, 0, 1, 1, 0, 0], device='cuda:0') tensor([0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1,\n",
+ " 0, 1, 1, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 0, 0, 1, 0, 0, 1, 0], device='cuda:0') tensor([1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0,\n",
+ " 0, 0, 0, 1, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 1], device='cuda:0') tensor([0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,\n",
+ " 1, 0, 0, 1, 0, 0, 1, 0], device='cuda:0') tensor([1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,\n",
+ " 1, 0, 0, 1, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,\n",
+ " 1, 0, 0, 1, 1, 0, 1, 1], device='cuda:0') tensor([1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,\n",
+ " 1, 0, 1, 1, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,\n",
+ " 0, 0, 1, 1, 0, 1, 1, 1], device='cuda:0') tensor([0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0,\n",
+ " 1, 0, 0, 1, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 1, 1, 1, 1, 0, 0], device='cuda:0') tensor([0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 1, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 1, 0, 1, 0, 0, 0], device='cuda:0') tensor([1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1,\n",
+ " 0, 1, 1, 0, 0, 0, 1, 0], device='cuda:0') tensor([1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1,\n",
+ " 0, 0, 0, 0, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,\n",
+ " 0, 0, 0, 0, 0, 1, 0, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1,\n",
+ " 0, 0, 0, 0, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1,\n",
+ " 0, 0, 1, 1, 0, 1, 1, 0], device='cuda:0') tensor([1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0,\n",
+ " 1, 0, 1, 1, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,\n",
+ " 0, 0, 0, 0, 0, 1, 1, 1], device='cuda:0') tensor([1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,\n",
+ " 0, 0, 1, 0, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1,\n",
+ " 0, 1, 0, 0, 0, 1, 0, 1], device='cuda:0') tensor([1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 0, 1, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0,\n",
+ " 0, 1, 1, 1, 0, 0, 1, 1], device='cuda:0') tensor([1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,\n",
+ " 0, 0, 1, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0,\n",
+ " 0, 0, 1, 0, 1, 0, 0, 1], device='cuda:0') tensor([1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
+ " 0, 1, 1, 0, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,\n",
+ " 1, 1, 1, 0, 0, 1, 0, 1], device='cuda:0') tensor([1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 1, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0,\n",
+ " 0, 0, 0, 1, 1, 0, 0, 0], device='cuda:0') tensor([1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1,\n",
+ " 0, 0, 0, 1, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0,\n",
+ " 1, 1, 0, 1, 1, 1, 0, 0], device='cuda:0') tensor([1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 0, 0, 0, 0, 1, 0], device='cuda:0') tensor([0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0,\n",
+ " 0, 0, 0, 1, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 1, 0, 1, 0, 1, 1], device='cuda:0') tensor([0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 0, 0, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 1, 0, 1, 1, 1, 0], device='cuda:0') tensor([0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 1, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1,\n",
+ " 1, 1, 1, 1, 1, 0, 1, 1], device='cuda:0') tensor([0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1,\n",
+ " 0, 1, 1, 1, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 1, 0, 0, 0], device='cuda:0') tensor([1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 0, 0, 1], device='cuda:0') tensor([1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1,\n",
+ " 1, 1, 1, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 1, 0, 1, 1], device='cuda:0') tensor([0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0,\n",
+ " 0, 1, 0, 0, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 1], device='cuda:0') tensor([0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 1, 1, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1,\n",
+ " 1, 0, 1, 0, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0,\n",
+ " 0, 0, 0, 0, 0, 1, 0, 1], device='cuda:0') tensor([0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0,\n",
+ " 0, 0, 1, 0, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 1, 0, 1, 0, 1, 0, 1], device='cuda:0') tensor([1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1,\n",
+ " 0, 1, 1, 0, 0, 0, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,\n",
+ " 0, 1, 1, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,\n",
+ " 0, 1, 1, 0, 1, 1, 0, 0], device='cuda:0') tensor([0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,\n",
+ " 0, 1, 1, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 0, 1, 0, 1, 0, 1], device='cuda:0') tensor([1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 0, 1, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 0, 1, 1, 1], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 0, 0, 0, 0, 0, 1, 0, 0], device='cuda:0') tensor([0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 0, 0, 0, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0,\n",
+ " 1, 1, 1, 0, 0, 1, 1, 1], device='cuda:0') tensor([0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0,\n",
+ " 1, 1, 1, 0, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0,\n",
+ " 0, 0, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0,\n",
+ " 1, 1, 1, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1,\n",
+ " 0, 1, 0, 0, 1, 1, 0, 0], device='cuda:0') tensor([0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1,\n",
+ " 0, 1, 0, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 1], device='cuda:0') tensor([0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,\n",
+ " 1, 1, 0, 0, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 0, 0, 1, 0, 0, 0], device='cuda:0') tensor([1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0,\n",
+ " 0, 1, 1, 0, 1, 0, 1, 0], device='cuda:0') tensor([1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,\n",
+ " 0, 1, 1, 0, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0,\n",
+ " 1, 0, 0, 0, 0, 0, 0, 0], device='cuda:0') tensor([0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0,\n",
+ " 1, 0, 0, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0,\n",
+ " 0, 1, 0, 1, 1, 0, 1, 0], device='cuda:0') tensor([1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0,\n",
+ " 0, 1, 0, 1, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1,\n",
+ " 1, 1, 1, 1, 1, 0, 0, 0], device='cuda:0') tensor([0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1,\n",
+ " 1, 1, 1, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1,\n",
+ " 1, 1, 0, 0, 1, 0, 0, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1,\n",
+ " 1, 1, 0, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0,\n",
+ " 1, 0, 0, 0, 0, 1, 0, 1], device='cuda:0') tensor([1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,\n",
+ " 1, 0, 0, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0,\n",
+ " 1, 0, 0, 1, 0, 1, 0, 1], device='cuda:0') tensor([1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 0, 1, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,\n",
+ " 0, 1, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0,\n",
+ " 0, 1, 1, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0,\n",
+ " 1, 0, 0, 1, 0, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0,\n",
+ " 1, 1, 0, 1, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0,\n",
+ " 1, 1, 0, 1, 1, 0, 1, 0], device='cuda:0') tensor([1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,\n",
+ " 1, 0, 0, 1, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 1, 1, 1, 1, 0, 1], device='cuda:0') tensor([0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 1, 1, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1,\n",
+ " 0, 0, 1, 0, 0, 0, 0, 0], device='cuda:0') tensor([0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1,\n",
+ " 0, 0, 1, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1,\n",
+ " 0, 1, 0, 1, 0, 0, 1, 1], device='cuda:0') tensor([1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1,\n",
+ " 0, 0, 0, 0, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 1], device='cuda:0') tensor([0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 0, 0, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0,\n",
+ " 0, 1, 0, 0, 1, 1, 0, 1], device='cuda:0') tensor([1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0,\n",
+ " 0, 1, 0, 0, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 0, 1, 0, 1, 0, 0], device='cuda:0') tensor([0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1,\n",
+ " 1, 1, 0, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0,\n",
+ " 1, 1, 0, 0, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 1], device='cuda:0') tensor([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 1, 1, 1], device='cuda:0') tensor([1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0,\n",
+ " 1, 1, 0, 1, 1, 0, 0, 1], device='cuda:0') tensor([0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0,\n",
+ " 1, 1, 0, 1, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1,\n",
+ " 1, 0, 0, 1, 1, 0, 1, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 0, 1, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1,\n",
+ " 1, 1, 0, 1, 1, 1, 0, 1], device='cuda:0') tensor([1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0,\n",
+ " 1, 1, 1, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,\n",
+ " 0, 1, 0, 1, 1, 0, 0, 0], device='cuda:0') tensor([0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 1, 1, 0, 1, 1, 0], device='cuda:0') tensor([1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 1, 1, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0,\n",
+ " 1, 0, 0, 1, 1, 1, 0, 1], device='cuda:0') tensor([0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0,\n",
+ " 1, 0, 0, 1, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 0, 0, 1], device='cuda:0') tensor([0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1,\n",
+ " 0, 0, 1, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 0, 1], device='cuda:0') tensor([1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1,\n",
+ " 1, 0, 0, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 1, 1], device='cuda:0') tensor([1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 1, 0, 0, 1, 1, 0, 0, 0], device='cuda:0') tensor([1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0,\n",
+ " 1, 0, 0, 1, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1,\n",
+ " 1, 1, 0, 1, 0, 1, 0, 1], device='cuda:0') tensor([0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,\n",
+ " 1, 1, 0, 1, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1,\n",
+ " 1, 1, 1, 1, 1, 0, 0, 0], device='cuda:0') tensor([1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,\n",
+ " 1, 0, 0, 1, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 0, 0, 0, 0, 1, 1], device='cuda:0') tensor([1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1,\n",
+ " 0, 0, 0, 0, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 0, 1, 0], device='cuda:0') tensor([0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0,\n",
+ " 0, 0, 0, 0, 1, 0, 0, 1], device='cuda:0') tensor([1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0,\n",
+ " 0, 0, 0, 0, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 1, 1, 1], device='cuda:0') tensor([1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1,\n",
+ " 1, 0, 1, 1, 1, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1,\n",
+ " 1, 0, 0, 1, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 1, 1, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1,\n",
+ " 0, 0, 1, 0, 1, 0, 0, 0], device='cuda:0') tensor([0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0,\n",
+ " 0, 0, 1, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1,\n",
+ " 0, 1, 0, 1, 1, 1, 0, 0], device='cuda:0') tensor([1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 1, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 0], device='cuda:0') tensor([1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1,\n",
+ " 1, 1, 1, 0, 1, 0, 0, 1], device='cuda:0') tensor([1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1,\n",
+ " 1, 1, 1, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 1, 0, 1], device='cuda:0') tensor([1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 1, 1, 0, 1, 1, 0, 1, 0], device='cuda:0') tensor([0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1,\n",
+ " 1, 1, 0, 1, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0,\n",
+ " 0, 0, 1, 0, 1, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0,\n",
+ " 0, 0, 1, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 0, 1, 1, 0], device='cuda:0') tensor([0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,\n",
+ " 0, 1, 1, 0, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 0, 0, 1, 0, 1, 1, 0], device='cuda:0') tensor([0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0,\n",
+ " 0, 0, 1, 0, 0, 0, 0, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1,\n",
+ " 0, 1, 1, 1, 0, 0, 1, 0], device='cuda:0') tensor([1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1,\n",
+ " 1, 1, 1, 1, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 1, 1, 1, 1], device='cuda:0') tensor([1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 1, 1, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,\n",
+ " 1, 0, 0, 1, 0, 0, 0, 1], device='cuda:0') tensor([1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1,\n",
+ " 1, 1, 0, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,\n",
+ " 0, 1, 1, 0, 1, 0, 0, 0], device='cuda:0') tensor([1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1,\n",
+ " 0, 1, 1, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 1, 0, 0, 1], device='cuda:0') tensor([0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 1], device='cuda:0') tensor([0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 0], device='cuda:0') tensor([0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 0, 1, 0, 0], device='cuda:0') tensor([1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 0, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0,\n",
+ " 1, 1, 1, 0, 0, 1, 1, 0], device='cuda:0') tensor([1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 0, 0, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1,\n",
+ " 0, 0, 1, 0, 1, 0, 0, 0], device='cuda:0') tensor([0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1,\n",
+ " 0, 0, 1, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 0, 1], device='cuda:0') tensor([1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0,\n",
+ " 0, 0, 1, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0,\n",
+ " 1, 1, 1, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 0, 1, 1], device='cuda:0') tensor([0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,\n",
+ " 0, 0, 1, 1, 0, 0, 0, 1], device='cuda:0') tensor([1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1,\n",
+ " 0, 0, 1, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0,\n",
+ " 1, 0, 0, 0, 0, 0, 0, 0], device='cuda:0') tensor([0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0,\n",
+ " 1, 1, 0, 0, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1,\n",
+ " 1, 1, 0, 1, 0, 0, 0, 1], device='cuda:0') tensor([0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1,\n",
+ " 1, 1, 0, 0, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 0, 1], device='cuda:0') tensor([1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1,\n",
+ " 0, 0, 1, 1, 1, 1, 0, 1], device='cuda:0') tensor([1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1,\n",
+ " 0, 0, 1, 1, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 0, 1], device='cuda:0') tensor([1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 0, 0, 0, 1, 0, 0], device='cuda:0') tensor([1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 0, 1], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 1, 0, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0,\n",
+ " 1, 1, 1, 0, 1, 0, 1, 1], device='cuda:0') tensor([1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0,\n",
+ " 1, 0, 1, 0, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 0], device='cuda:0') tensor([0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1,\n",
+ " 0, 1, 1, 0, 1, 1, 1, 1], device='cuda:0') tensor([0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1,\n",
+ " 1, 1, 1, 0, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0,\n",
+ " 0, 0, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0,\n",
+ " 0, 0, 0, 1, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0,\n",
+ " 1, 0, 1, 0, 1, 0, 1, 0], device='cuda:0') tensor([1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 0, 1, 1, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 0, 0, 0, 1, 0, 1], device='cuda:0') tensor([0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 1, 1, 0, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1,\n",
+ " 1, 0, 0, 0, 0, 0, 1, 1], device='cuda:0') tensor([1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0,\n",
+ " 1, 0, 1, 0, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1,\n",
+ " 1, 0, 0, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,\n",
+ " 1, 0, 0, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 1, 0, 1, 1, 1, 0, 0], device='cuda:0') tensor([0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 1, 0, 1, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,\n",
+ " 0, 0, 1, 0, 0, 1, 0, 0], device='cuda:0') tensor([0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 1, 0, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 0, 1, 1, 0, 1, 0], device='cuda:0') tensor([0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 0, 1, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 1, 0, 1, 0, 0, 0], device='cuda:0') tensor([0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 1, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 1, 1, 0, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0,\n",
+ " 1, 1, 1, 1, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 0, 1, 1, 0], device='cuda:0') tensor([0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 1, 0, 1, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0,\n",
+ " 1, 0, 1, 1, 1, 1, 1, 1], device='cuda:0') tensor([1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0,\n",
+ " 1, 0, 1, 1, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,\n",
+ " 0, 1, 1, 1, 1, 0, 0, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,\n",
+ " 0, 0, 1, 1, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 1, 1, 0], device='cuda:0') tensor([0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,\n",
+ " 1, 0, 1, 1, 1, 0, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,\n",
+ " 0, 0, 0, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0,\n",
+ " 0, 1, 0, 0, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 0, 1], device='cuda:0') tensor([0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 0, 1, 1, 0], device='cuda:0') tensor([1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 1, 0, 0, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 1, 1, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 0, 1], device='cuda:0') tensor([0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1,\n",
+ " 1, 0, 0, 1, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,\n",
+ " 0, 1, 1, 1, 0, 0, 0, 1], device='cuda:0') tensor([0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,\n",
+ " 0, 1, 1, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1,\n",
+ " 0, 1, 1, 1, 0, 1, 1, 0], device='cuda:0') tensor([0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 1, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1,\n",
+ " 0, 1, 0, 0, 0, 1, 1, 0], device='cuda:0') tensor([1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1,\n",
+ " 1, 0, 1, 1, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 1, 0, 0, 0, 1, 0, 0, 1], device='cuda:0') tensor([1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 0, 0, 0, 1, 0], device='cuda:0') tensor([1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0,\n",
+ " 0, 1, 0, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 0, 1, 1, 1, 1, 1, 1], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 0, 1, 1, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,\n",
+ " 1, 0, 0, 0, 1, 0, 0, 1], device='cuda:0') tensor([0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0,\n",
+ " 1, 1, 0, 0, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1,\n",
+ " 1, 0, 0, 1, 0, 0, 1, 0], device='cuda:0') tensor([1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1,\n",
+ " 1, 0, 0, 1, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1,\n",
+ " 0, 1, 1, 0, 0, 0, 1, 0], device='cuda:0') tensor([1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1,\n",
+ " 0, 1, 1, 0, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1,\n",
+ " 1, 0, 0, 1, 1, 1, 1, 0], device='cuda:0') tensor([0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1,\n",
+ " 1, 1, 0, 1, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0,\n",
+ " 0, 1, 1, 0, 1, 0, 0, 0], device='cuda:0') tensor([0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0,\n",
+ " 0, 1, 1, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 1, 0, 0, 0, 1, 1], device='cuda:0') tensor([1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 1, 0, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 1, 1, 0, 1, 0], device='cuda:0') tensor([0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 0, 0, 1, 1, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,\n",
+ " 1, 0, 1, 0, 1, 1, 1, 1], device='cuda:0') tensor([1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1,\n",
+ " 0, 0, 0, 1, 1, 1, 0, 0], device='cuda:0') tensor([1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,\n",
+ " 0, 0, 0, 1, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 1, 0, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0,\n",
+ " 0, 1, 1, 1, 0, 1, 0, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 1, 0, 0, 0, 0, 0], device='cuda:0') tensor([1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0,\n",
+ " 1, 0, 1, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,\n",
+ " 0, 1, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,\n",
+ " 0, 1, 1, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1,\n",
+ " 1, 0, 0, 1, 0, 1, 1, 1], device='cuda:0') tensor([0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1,\n",
+ " 1, 0, 0, 1, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 1, 0, 0, 0, 0, 0, 0], device='cuda:0') tensor([0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1,\n",
+ " 1, 0, 1, 0, 0, 1, 0, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 1], device='cuda:0') tensor([1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1,\n",
+ " 0, 0, 1, 1, 0, 0, 0, 0], device='cuda:0') tensor([0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1,\n",
+ " 0, 0, 1, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 0, 1, 1], device='cuda:0') tensor([1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1,\n",
+ " 0, 1, 0, 1, 0, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1,\n",
+ " 1, 1, 1, 1, 1, 1, 0, 0], device='cuda:0') tensor([1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1,\n",
+ " 0, 0, 1, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1,\n",
+ " 0, 0, 1, 1, 0, 1, 1, 1], device='cuda:0') tensor([1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1,\n",
+ " 0, 0, 1, 1, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0,\n",
+ " 0, 1, 0, 0, 0, 1, 0, 0], device='cuda:0') tensor([1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 0, 1, 0, 0, 1], device='cuda:0') tensor([1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0,\n",
+ " 1, 1, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0,\n",
+ " 1, 1, 1, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 1, 1, 1, 1, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,\n",
+ " 0, 1, 1, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,\n",
+ " 1, 0, 0, 0, 1, 0, 1, 1], device='cuda:0') tensor([0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 1, 1], device='cuda:0') tensor([0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 0], device='cuda:0') tensor([1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,\n",
+ " 1, 0, 1, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,\n",
+ " 1, 0, 0, 0, 1, 0, 0, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,\n",
+ " 1, 1, 0, 0, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1,\n",
+ " 1, 1, 0, 0, 0, 1, 1, 0], device='cuda:0') tensor([0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1,\n",
+ " 0, 1, 0, 0, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 0, 1, 0], device='cuda:0') tensor([0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1,\n",
+ " 1, 0, 1, 0, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0,\n",
+ " 0, 1, 1, 0, 1, 1, 1, 0], device='cuda:0') tensor([0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0,\n",
+ " 0, 1, 0, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,\n",
+ " 1, 1, 0, 0, 0, 0, 0, 0], device='cuda:0') tensor([0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1,\n",
+ " 1, 1, 1, 0, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,\n",
+ " 1, 1, 0, 0, 1, 1, 1, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1,\n",
+ " 0, 1, 0, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0,\n",
+ " 1, 1, 1, 1, 1, 0, 0, 0], device='cuda:0') tensor([0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0,\n",
+ " 1, 1, 1, 1, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 1, 1, 0, 0, 1, 1, 0, 1], device='cuda:0') tensor([1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1,\n",
+ " 1, 1, 1, 0, 1, 1, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,\n",
+ " 1, 0, 1, 1, 0, 1, 0, 0], device='cuda:0') tensor([0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,\n",
+ " 1, 0, 1, 1, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 1, 0], device='cuda:0') tensor([0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1,\n",
+ " 0, 1, 0, 0, 1, 0, 1, 0], device='cuda:0') tensor([1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1,\n",
+ " 0, 1, 1, 0, 1, 0, 1, 1], device='cuda:0')\n",
+ "tensor([0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1,\n",
+ " 1, 1, 1, 0, 0, 0, 1, 0], device='cuda:0') tensor([0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1,\n",
+ " 1, 1, 1, 0, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 1], device='cuda:0') tensor([1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1,\n",
+ " 0, 0, 0, 0, 1, 1, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 0, 0], device='cuda:0') tensor([1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,\n",
+ " 0, 1, 0, 1, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0,\n",
+ " 1, 1, 0, 0, 0, 0, 0, 0], device='cuda:0') tensor([1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0,\n",
+ " 0, 0, 0, 0, 0, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1,\n",
+ " 1, 0, 0, 0, 1, 1, 0, 1], device='cuda:0') tensor([1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1,\n",
+ " 0, 0, 0, 1, 1, 0, 0, 1], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1,\n",
+ " 1, 0, 0, 0, 0, 1, 1, 0], device='cuda:0') tensor([0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0,\n",
+ " 1, 0, 0, 0, 0, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1,\n",
+ " 1, 1, 1, 0, 1, 0, 0, 0], device='cuda:0') tensor([0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1,\n",
+ " 1, 1, 1, 0, 1, 0, 0, 0], device='cuda:0')\n",
+ "tensor([1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0,\n",
+ " 1, 1, 0, 1, 1, 1, 0, 0], device='cuda:0') tensor([0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0,\n",
+ " 0, 0, 0, 0, 1, 1, 0, 0], device='cuda:0')\n",
+ "tensor([0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1,\n",
+ " 0, 1, 0, 1, 0, 0, 1, 0], device='cuda:0') tensor([1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1,\n",
+ " 0, 1, 0, 1, 0, 0, 1, 0], device='cuda:0')\n",
+ "tensor([1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 0], device='cuda:0') tensor([1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1,\n",
+ " 1, 0, 0, 0, 1, 1, 1, 0], device='cuda:0')\n",
+ "tensor([0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 0, 1, 1, 0, 1, 0], device='cuda:0') tensor([0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0,\n",
+ " 1, 0, 0, 1, 1, 0, 1, 0], device='cuda:0')\n",
+ "tensor([0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1,\n",
+ " 0, 0, 0, 0, 0, 0, 1, 1], device='cuda:0') tensor([0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1,\n",
+ " 0, 0, 1, 0, 0, 0, 1, 1], device='cuda:0')\n",
+ "tensor([1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0,\n",
+ " 0, 1, 0, 1, 0, 0, 0, 0], device='cuda:0') tensor([0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0,\n",
+ " 0, 1, 0, 1, 0, 1, 0, 0], device='cuda:0')\n",
+ "tensor([1, 0, 0, 1, 1, 1, 0, 0, 1], device='cuda:0') tensor([1, 0, 1, 1, 1, 0, 0, 0, 1], device='cuda:0')\n",
+ "\n",
+ "Accuracy: 85.61424874410108\n",
+ "Precision: 0.8561740091595716\n",
+ "Recall: 0.8561424874410108\n"
+ ]
+ }
+ ],
+ "source": [
+ "train_model(model, train_loader,val_loader, criterion, optimizer, scheduler, num_epochs)\n",
+ "print(\"\\n\")\n",
+ "evaluate_model(model, test_loader, criterion)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "afc77f76",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-04-09T17:15:30.856373Z",
+ "iopub.status.busy": "2025-04-09T17:15:30.856007Z",
+ "iopub.status.idle": "2025-04-09T17:15:32.493494Z",
+ "shell.execute_reply": "2025-04-09T17:15:32.492607Z"
+ },
+ "papermill": {
+ "duration": 1.656113,
+ "end_time": "2025-04-09T17:15:32.495130",
+ "exception": false,
+ "start_time": "2025-04-09T17:15:30.839017",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "torch.save(model, \"/kaggle/working/model.pt\")\n",
+ "torch.save(model.state_dict(), \"/kaggle/working/state_dict.pth\") "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f409be3f",
+ "metadata": {
+ "papermill": {
+ "duration": 0.015863,
+ "end_time": "2025-04-09T17:15:32.527601",
+ "exception": false,
+ "start_time": "2025-04-09T17:15:32.511738",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kaggle": {
+ "accelerator": "nvidiaTeslaT4",
+ "dataSources": [
+ {
+ "datasetId": 7057067,
+ "sourceId": 11328921,
+ "sourceType": "datasetVersion"
+ }
+ ],
+ "dockerImageVersionId": 30919,
+ "isGpuEnabled": true,
+ "isInternetEnabled": true,
+ "language": "python",
+ "sourceType": "notebook"
+ },
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.12"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 8283.491684,
+ "end_time": "2025-04-09T17:15:35.373455",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "__notebook__.ipynb",
+ "output_path": "__notebook__.ipynb",
+ "parameters": {},
+ "start_time": "2025-04-09T14:57:31.881771",
+ "version": "2.6.0"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {
+ "0285041787f74b7ba095ace50a72e574": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "07c6b547766e4cf0a6123096a6f21626": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "0e19184d5f6b4d94b5919750e8fcf274": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "12ea9a83d1cd4d88ad8a909e27473ed0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "156fc409fd7f4673a17579f563c836a4": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_86b19f2561a642c498dcabc829f0086b",
+ "placeholder": "​",
+ "style": "IPY_MODEL_350506cb0cc5476f84da42d58c77ffc1",
+ "tabbable": null,
+ "tooltip": null,
+ "value": "model.safetensors: 100%"
+ }
+ },
+ "19ff028ca56e4b9997fa56c81ebd6bde": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1b4a1d6ebf9f4a48b8e1f705c4a90fdf": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1cd8b01c50ca4e92ada8fd06f58059c1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "1f059dc277da4644b34aa54861d2a973": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_58541b5838484ab3b01718408383c2db",
+ "placeholder": "​",
+ "style": "IPY_MODEL_dee6108f6ba247a6bf060f2e14d64614",
+ "tabbable": null,
+ "tooltip": null,
+ "value": " 440M/440M [00:01<00:00, 250MB/s]"
+ }
+ },
+ "21f57957cee04faabfa4944b9e4c09f0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_cea1a56a25c44991bd38712b04ef55cd",
+ "max": 48.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_37b25998aacb4a079a7617313c5fd0e6",
+ "tabbable": null,
+ "tooltip": null,
+ "value": 48.0
+ }
+ },
+ "2644698b31044ed88b8fd330f3c02fee": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_57e41f24608a421b9cfe928094120116",
+ "placeholder": "​",
+ "style": "IPY_MODEL_0285041787f74b7ba095ace50a72e574",
+ "tabbable": null,
+ "tooltip": null,
+ "value": "tokenizer.json: 100%"
+ }
+ },
+ "26a54b761e244f6abf6b2d3fb1cdfdeb": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_35b5ac5e42ba4efba7c22e4b10cc0265",
+ "placeholder": "​",
+ "style": "IPY_MODEL_69727cbcde6c43fead6243f53dd5fdca",
+ "tabbable": null,
+ "tooltip": null,
+ "value": " 570/570 [00:00<00:00, 54.4kB/s]"
+ }
+ },
+ "32bccc63f7044ac497bd8ad9c918f44e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_87fe0b5e67ec41bc9e26a58f33f81a18",
+ "IPY_MODEL_be7fb2b086554b139c08b8dcd3b4ea39",
+ "IPY_MODEL_57f05aa864ae40d0ab176845e5a0fab7"
+ ],
+ "layout": "IPY_MODEL_f49f3f0db628406d88cfac2cb38726b2",
+ "tabbable": null,
+ "tooltip": null
+ }
+ },
+ "350506cb0cc5476f84da42d58c77ffc1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "35b5ac5e42ba4efba7c22e4b10cc0265": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "37b25998aacb4a079a7617313c5fd0e6": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "39eaafd9f45a48c3abf8ad7ecd444af2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "3a33316103c840dcbe682c6f0aeea286": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_c85303099ccc4b81ba9b7f4e6ff139ae",
+ "IPY_MODEL_21f57957cee04faabfa4944b9e4c09f0",
+ "IPY_MODEL_7b50ea08c3f947f0a014f74c634f832a"
+ ],
+ "layout": "IPY_MODEL_9f5a5a8f76ae43a4992130e49bd273c1",
+ "tabbable": null,
+ "tooltip": null
+ }
+ },
+ "3bc3c45949334ae2bafc543ce27d59f2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "3c5f7725c98149cd9576004f9a5d3387": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_e6320c15f0004a2ca37e52fb1a10cc26",
+ "max": 440449768.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_b855e0a0c2f5489fa7b47f5461d28d94",
+ "tabbable": null,
+ "tooltip": null,
+ "value": 440449768.0
+ }
+ },
+ "44a0a0f1927d4b4abfa23702200b5dfe": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_2644698b31044ed88b8fd330f3c02fee",
+ "IPY_MODEL_95835c43ca944cefb167946b29d738bd",
+ "IPY_MODEL_ff869ec0da4c45bb87b2e84c04c7789b"
+ ],
+ "layout": "IPY_MODEL_b21344ec94e94243ba2ec46a64c85281",
+ "tabbable": null,
+ "tooltip": null
+ }
+ },
+ "4e9cb8cc1d83476aa2e41fa0370abfac": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "4edcb2d0ea964d348230e57d8938ce49": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_cc637d8fd2ce455eae2f978e58096187",
+ "IPY_MODEL_97af4c5b554e48f9a52d2d0cfbbe7ef4",
+ "IPY_MODEL_26a54b761e244f6abf6b2d3fb1cdfdeb"
+ ],
+ "layout": "IPY_MODEL_19ff028ca56e4b9997fa56c81ebd6bde",
+ "tabbable": null,
+ "tooltip": null
+ }
+ },
+ "57e41f24608a421b9cfe928094120116": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "57f05aa864ae40d0ab176845e5a0fab7": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_4e9cb8cc1d83476aa2e41fa0370abfac",
+ "placeholder": "​",
+ "style": "IPY_MODEL_82c27606d99049eb8bf8af591d8aa869",
+ "tabbable": null,
+ "tooltip": null,
+ "value": " 232k/232k [00:00<00:00, 5.02MB/s]"
+ }
+ },
+ "58541b5838484ab3b01718408383c2db": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "64736576032745efbe91b3eabb802825": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "650f016f79034b158ba69259f81fd267": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "69727cbcde6c43fead6243f53dd5fdca": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "7b50ea08c3f947f0a014f74c634f832a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_badf7a1fdc1a462eb5eb834b3b8ca119",
+ "placeholder": "​",
+ "style": "IPY_MODEL_07c6b547766e4cf0a6123096a6f21626",
+ "tabbable": null,
+ "tooltip": null,
+ "value": " 48.0/48.0 [00:00<00:00, 4.28kB/s]"
+ }
+ },
+ "7b6c88ddab4c4613b22abdcbe8b273c0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "82c27606d99049eb8bf8af591d8aa869": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "82c6dcf1f6aa478a8332f5d5a0b83d2c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "86b19f2561a642c498dcabc829f0086b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "87fe0b5e67ec41bc9e26a58f33f81a18": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_3bc3c45949334ae2bafc543ce27d59f2",
+ "placeholder": "​",
+ "style": "IPY_MODEL_d9b30b7841094cf1b547eb43def9f569",
+ "tabbable": null,
+ "tooltip": null,
+ "value": "vocab.txt: 100%"
+ }
+ },
+ "95835c43ca944cefb167946b29d738bd": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_0e19184d5f6b4d94b5919750e8fcf274",
+ "max": 466062.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_7b6c88ddab4c4613b22abdcbe8b273c0",
+ "tabbable": null,
+ "tooltip": null,
+ "value": 466062.0
+ }
+ },
+ "95bdf94084dd4ab2b9daaed5b4324c19": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "97af4c5b554e48f9a52d2d0cfbbe7ef4": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_cf2bb8d025de4dd08a8a4e3460dc8524",
+ "max": 570.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_650f016f79034b158ba69259f81fd267",
+ "tabbable": null,
+ "tooltip": null,
+ "value": 570.0
+ }
+ },
+ "9f5a5a8f76ae43a4992130e49bd273c1": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "b21344ec94e94243ba2ec46a64c85281": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "b855e0a0c2f5489fa7b47f5461d28d94": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "badf7a1fdc1a462eb5eb834b3b8ca119": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "be5ed94ddf5549149c06487d14d0150e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "be7fb2b086554b139c08b8dcd3b4ea39": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_39eaafd9f45a48c3abf8ad7ecd444af2",
+ "max": 231508.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_64736576032745efbe91b3eabb802825",
+ "tabbable": null,
+ "tooltip": null,
+ "value": 231508.0
+ }
+ },
+ "c85303099ccc4b81ba9b7f4e6ff139ae": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_82c6dcf1f6aa478a8332f5d5a0b83d2c",
+ "placeholder": "​",
+ "style": "IPY_MODEL_12ea9a83d1cd4d88ad8a909e27473ed0",
+ "tabbable": null,
+ "tooltip": null,
+ "value": "tokenizer_config.json: 100%"
+ }
+ },
+ "cc637d8fd2ce455eae2f978e58096187": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_95bdf94084dd4ab2b9daaed5b4324c19",
+ "placeholder": "​",
+ "style": "IPY_MODEL_f6f5e70be7024b0ebaac6ed8c224577d",
+ "tabbable": null,
+ "tooltip": null,
+ "value": "config.json: 100%"
+ }
+ },
+ "cea1a56a25c44991bd38712b04ef55cd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "cf2bb8d025de4dd08a8a4e3460dc8524": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "d9b30b7841094cf1b547eb43def9f569": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "da7ae94dd26a44b9851cf104543c0fd3": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_156fc409fd7f4673a17579f563c836a4",
+ "IPY_MODEL_3c5f7725c98149cd9576004f9a5d3387",
+ "IPY_MODEL_1f059dc277da4644b34aa54861d2a973"
+ ],
+ "layout": "IPY_MODEL_1b4a1d6ebf9f4a48b8e1f705c4a90fdf",
+ "tabbable": null,
+ "tooltip": null
+ }
+ },
+ "dee6108f6ba247a6bf060f2e14d64614": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "e6320c15f0004a2ca37e52fb1a10cc26": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "f49f3f0db628406d88cfac2cb38726b2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "f6f5e70be7024b0ebaac6ed8c224577d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "ff869ec0da4c45bb87b2e84c04c7789b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_be5ed94ddf5549149c06487d14d0150e",
+ "placeholder": "​",
+ "style": "IPY_MODEL_1cd8b01c50ca4e92ada8fd06f58059c1",
+ "tabbable": null,
+ "tooltip": null,
+ "value": " 466k/466k [00:00<00:00, 23.2MB/s]"
+ }
+ }
+ },
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}