{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport pandas as pd\n\nclass Net(nn.Module):\n    def __init__(self):\n        super().__init__()\n        self.fc1 = nn.Linear(28 * 28, 64)\n        self.fc2 = nn.Linear(64, 64)\n        self.fc3 = nn.Linear(64, 64)\n        self.fc4 = nn.Linear(64, 10)\n\n    def forward(self, x):\n        x = F.relu(self.fc1(x))\n        x = F.relu(self.fc2(x))\n        x = F.relu(self.fc3(x))\n        x = self.fc4(x)\n        return F.log_softmax(x, dim=1)\n\n\ntrainds = pd.read_csv(\"/kaggle/input/digit-recognizer/train.csv\")\ntrain_x = torch.tensor(trainds[trainds .columns[1:]].values / 255., dtype=torch.float32)\ntrain_y = torch.tensor(trainds['label'].values, dtype=torch.long)\ntrain = torch.utils.data.TensorDataset(train_x, train_y)\ntrainset = torch.utils.data.DataLoader(train, batch_size=600, shuffle=True)\n\nnet = Net()\n\nloss_function = nn.CrossEntropyLoss()\noptim = torch.optim.Adam(net.parameters(), lr=0.001)\n\nfor epoch in range(10):\n    for data in trainset:\n        x, y = data\n        output = net(x)\n        loss = loss_function(output, y)\n        optim.zero_grad()\n        loss.backward()\n        optim.step()\n\n\ntestds = pd.read_csv(\"/kaggle/input/digit-recognizer/test.csv\")\ntest_x = torch.tensor(testds.values / 255., dtype=torch.float32)\n\noutput = net(test_x)\n\nfile = open(\"submission.csv\", \"w\")\nfile.write(\"ImageId,Label\\n\")\n\nfor i in range(len(output)):\n    file.write(f\"{i + 1}, {torch.argmax(output[i]).item()}\\n\")\n\nfile.close()\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-03-11T02:50:00.727665Z","iopub.execute_input":"2023-03-11T02:50:00.728755Z","iopub.status.idle":"2023-03-11T02:50:22.270905Z","shell.execute_reply.started":"2023-03-11T02:50:00.728693Z","shell.execute_reply":"2023-03-11T02:50:22.269532Z"},"trusted":true},"execution_count":null,"outputs":[]}]}