{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-08-07T13:21:46.519576Z","iopub.execute_input":"2023-08-07T13:21:46.520127Z","iopub.status.idle":"2023-08-07T13:21:46.529825Z","shell.execute_reply.started":"2023-08-07T13:21:46.520087Z","shell.execute_reply":"2023-08-07T13:21:46.528987Z"},"trusted":true},"execution_count":39,"outputs":[{"name":"stdout","text":"/kaggle/input/dogs-vs-cats/test1.zip\n/kaggle/input/dogs-vs-cats/train.zip\n/kaggle/input/dogs-vs-cats/sampleSubmission.csv\n","output_type":"stream"}]},{"cell_type":"code","source":"import shutil\n\ninput_dir = '/kaggle/input/dogs-vs-cats/train.zip'\nsave_dir = '/kaggle/data/train'\n\nif os.path.isdir(save_dir):\n    shutil.rmtree(save_dir)\n    \n# os.mkdir(save_dir)\n\nshutil.unpack_archive(input_dir, save_dir)\n\nx_train = []\ny_train = []\nfor dir_name, _, file_names in os.walk(save_dir):\n    for file_name in file_names:\n        file_path = os.path.join(dir_name, file_name)\n        x_train.append(file_path)\n        if \"dog\" in file_path:\n            y_train.append(0)\n            \n        if \"cat\" in file_path:\n            y_train.append(1)\n\nx_train = np.array(x_train)\ny_train = np.array(y_train)\nid_train = np.array(range(len(x_train)))\nprint(x_train[:10])\nprint(y_train[:10])\nprint(id_train[:10])\n","metadata":{"execution":{"iopub.status.busy":"2023-08-07T13:51:27.177233Z","iopub.execute_input":"2023-08-07T13:51:27.178591Z","iopub.status.idle":"2023-08-07T13:51:35.504788Z","shell.execute_reply.started":"2023-08-07T13:51:27.178532Z","shell.execute_reply":"2023-08-07T13:51:35.503605Z"},"trusted":true},"execution_count":54,"outputs":[{"name":"stdout","text":"['/kaggle/data/train/train/dog.890.jpg'\n '/kaggle/data/train/train/dog.1178.jpg'\n '/kaggle/data/train/train/dog.7845.jpg'\n '/kaggle/data/train/train/dog.4632.jpg'\n '/kaggle/data/train/train/cat.3660.jpg'\n '/kaggle/data/train/train/dog.814.jpg'\n '/kaggle/data/train/train/dog.2066.jpg'\n '/kaggle/data/train/train/dog.8575.jpg'\n '/kaggle/data/train/train/dog.1444.jpg'\n '/kaggle/data/train/train/cat.9803.jpg']\n[0 0 0 0 1 0 0 0 0 1]\n[0 1 2 3 4 5 6 7 8 9]\n","output_type":"stream"}]},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\n\n# ベースライン検証用データの作成\nx_tr, x_va2, y_tr, y_va2 = train_test_split(x_train, y_train, test_size=5/len(x_train), shuffle=True, stratify=y_train, random_state=123)\nprint(f\"x_train.shape:{x_train.shape}\")\nprint(x_tr.shape, y_tr.shape, x_tr[:3], y_tr[:3])\nprint(x_va2.shape, y_va2.shape, x_va2[:3], y_va2[:3])\n\n# 学習データと検証データの分割\nx_tr1, x_va1, y_tr1, y_va1 = train_test_split(x_tr, y_tr, test_size=5/len(x_train), shuffle=True, stratify=y_tr, random_state=789)\nprint(f\"x_tr.shape:{x_tr.shape}\")\nprint(x_tr1.shape, y_tr1.shape, x_tr1[:3], y_tr1[:3])\nprint(x_va1.shape, y_va1.shape, x_va1[:3], y_va1[:3])\n","metadata":{"execution":{"iopub.status.busy":"2023-08-07T14:04:09.847521Z","iopub.execute_input":"2023-08-07T14:04:09.848007Z","iopub.status.idle":"2023-08-07T14:04:09.89075Z","shell.execute_reply.started":"2023-08-07T14:04:09.847974Z","shell.execute_reply":"2023-08-07T14:04:09.889389Z"},"trusted":true},"execution_count":61,"outputs":[{"name":"stdout","text":"x_train.shape:(25000,)\n(24995,) (24995,) ['/kaggle/data/train/train/dog.9072.jpg'\n '/kaggle/data/train/train/cat.5666.jpg'\n '/kaggle/data/train/train/cat.1167.jpg'] [0 1 1]\n(5,) (5,) ['/kaggle/data/train/train/dog.4619.jpg'\n '/kaggle/data/train/train/cat.5643.jpg'\n '/kaggle/data/train/train/dog.10921.jpg'] [0 1 0]\nx_tr.shape:(24995,)\n(24990,) (24990,) ['/kaggle/data/train/train/cat.4805.jpg'\n '/kaggle/data/train/train/cat.9775.jpg'\n '/kaggle/data/train/train/dog.1954.jpg'] [1 1 0]\n(5,) (5,) ['/kaggle/data/train/train/dog.7264.jpg'\n '/kaggle/data/train/train/dog.10189.jpg'\n '/kaggle/data/train/train/cat.8810.jpg'] [0 0 1]\n","output_type":"stream"}]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}