{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":82654,"databundleVersionId":9073423,"sourceType":"competition"}],"dockerImageVersionId":30746,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom keras.models import Sequential\nfrom keras.layers import Input, Dense, Conv2D, Dropout","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:09:30.841935Z","iopub.execute_input":"2024-07-23T08:09:30.842374Z","iopub.status.idle":"2024-07-23T08:09:30.848346Z","shell.execute_reply.started":"2024-07-23T08:09:30.842342Z","shell.execute_reply":"2024-07-23T08:09:30.847000Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# CSVファイルからデータを読み込む\ntrain_df = pd.read_csv('../input/digit-recognizer-uec-clone/train.csv')\ntest_df = pd.read_csv('../input/digit-recognizer-uec-clone/test.csv')\n\n# データとラベルに分割する\nX_train = train_df.iloc[:40000, 1:].values / 255.0  # 画像データ (0-255) を0-1の範囲に正規化\ny_train = train_df.iloc[:40000, 0].values  # ラベル (数字)\n\nX_valid = train_df.iloc[40000:, 1:].values / 255.0\ny_valid = train_df.iloc[40000:, 0].values\n\nX_test = test_df.iloc[:, :].values / 255.0","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:09:31.178452Z","iopub.execute_input":"2024-07-23T08:09:31.179754Z","iopub.status.idle":"2024-07-23T08:09:36.814496Z","shell.execute_reply.started":"2024-07-23T08:09:31.179715Z","shell.execute_reply":"2024-07-23T08:09:36.813112Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = Sequential()\nmodel.add(Input(shape=(28 * 28,)))\nmodel.add(Dense(64, activation=\"relu\"))\nmodel.add(Dense(64, activation=\"relu\"))\nmodel.add(Dense(10, activation=\"softmax\"))","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:09:45.239302Z","iopub.execute_input":"2024-07-23T08:09:45.239730Z","iopub.status.idle":"2024-07-23T08:09:45.333416Z","shell.execute_reply.started":"2024-07-23T08:09:45.239699Z","shell.execute_reply":"2024-07-23T08:09:45.332192Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.summary()","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:09:46.655996Z","iopub.execute_input":"2024-07-23T08:09:46.657029Z","iopub.status.idle":"2024-07-23T08:09:46.679452Z","shell.execute_reply.started":"2024-07-23T08:09:46.656991Z","shell.execute_reply":"2024-07-23T08:09:46.678343Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.compile(optimizer='Adam',\n              loss='sparse_categorical_crossentropy',\n              metrics=['accuracy'])","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:19:53.219358Z","iopub.execute_input":"2024-07-23T08:19:53.220268Z","iopub.status.idle":"2024-07-23T08:19:53.232309Z","shell.execute_reply.started":"2024-07-23T08:19:53.220223Z","shell.execute_reply":"2024-07-23T08:19:53.231015Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.fit(\n    X_train, y_train, batch_size=64,\n    epochs=10, validation_data=(X_valid, y_valid)\n)","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:20:28.482140Z","iopub.execute_input":"2024-07-23T08:20:28.482599Z","iopub.status.idle":"2024-07-23T08:20:44.814192Z","shell.execute_reply.started":"2024-07-23T08:20:28.482566Z","shell.execute_reply":"2024-07-23T08:20:44.812908Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred_test = model.predict(X_test)","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:21:03.156658Z","iopub.execute_input":"2024-07-23T08:21:03.157082Z","iopub.status.idle":"2024-07-23T08:21:04.944908Z","shell.execute_reply.started":"2024-07-23T08:21:03.157049Z","shell.execute_reply":"2024-07-23T08:21:04.943571Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub_df = pd.read_csv(\"../input/digit-recognizer-uec-clone/sample_submission.csv\")\nsub_df[\"Label\"] = pred_test.argmax(axis=1)","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:21:31.293008Z","iopub.execute_input":"2024-07-23T08:21:31.294210Z","iopub.status.idle":"2024-07-23T08:21:31.334352Z","shell.execute_reply.started":"2024-07-23T08:21:31.294168Z","shell.execute_reply":"2024-07-23T08:21:31.333032Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub_df.to_csv(\"simple_keras.csv\", index=False)","metadata":{"execution":{"iopub.status.busy":"2024-07-23T08:21:46.631402Z","iopub.execute_input":"2024-07-23T08:21:46.631934Z","iopub.status.idle":"2024-07-23T08:21:46.679541Z","shell.execute_reply.started":"2024-07-23T08:21:46.631900Z","shell.execute_reply":"2024-07-23T08:21:46.678121Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}