{"cells":[{"metadata":{"id":"eEgahA64qC30","executionInfo":{"status":"ok","timestamp":1593428985279,"user_tz":-540,"elapsed":60567,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"94b2c52c-56ef-4d8a-ee12-c0014b3c623c","trusted":false},"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport random\nimport pandas as pd\nimport numpy as np\n\ndevice = 'cuda' if torch.cuda.is_available() else 'cpu'\nif device == 'cuda':\n  torch.cuda.manual_seed_all(111)\n\ntrain = pd.read_csv('../input/2020-ai-exam-fashionmnist-1/mnist_train_label.csv', header=None)\ntrain","execution_count":null,"outputs":[]},{"metadata":{"id":"kcdjp3lYqq0w","executionInfo":{"status":"ok","timestamp":1593428985280,"user_tz":-540,"elapsed":60530,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"cf9a3d07-5e6a-4c29-c0f2-8a757dac3c9f","trusted":false},"cell_type":"code","source":"train[0].min()","execution_count":null,"outputs":[]},{"metadata":{"id":"q5E7t2GWrHC_","executionInfo":{"status":"ok","timestamp":1593428985281,"user_tz":-540,"elapsed":60493,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"eceae757-0203-4d5d-f7af-a90249f1f53d","trusted":false},"cell_type":"code","source":"from torch.utils.data import DataLoader, TensorDataset\n\nxtrain = train.loc[:, 1:785]\nytrain = train.loc[:, 0]\n\nprint(xtrain.shape, ytrain.shape)\n\nxtrain=np.array(xtrain)\nytrain=np.array(ytrain)\n\nxtrain=torch.FloatTensor(xtrain).to(device)\nytrain=torch.LongTensor(ytrain).to(device)\n\ndataset = TensorDataset(xtrain, ytrain)\ndl = DataLoader(dataset, batch_size=100, shuffle=True, drop_last=True)\n","execution_count":null,"outputs":[]},{"metadata":{"id":"NeIvlQDcr9Js","executionInfo":{"status":"ok","timestamp":1593429234209,"user_tz":-540,"elapsed":1475,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"23ad682a-b7c5-4278-8042-593ba311869b","trusted":false},"cell_type":"code","source":"random.seed(111)\ntorch.manual_seed(111)\n\nepochs=15\n\nmodel = nn.Linear(784, 10, bias=True).to(device)\noptimizer = torch.optim.SGD(model.parameters(), lr=1e-2, momentum=0.9)\n\nfor epoch in range(epochs+1):\n  H = model(xtrain)\n  cost = nn.functional.cross_entropy(H, ytrain)\n  \n  optimizer.zero_grad()\n  cost.backward()\n  optimizer.step()\n\n  if epoch % 1 == 0:\n    print('Epoch:{} Cost:{:.4f}'.format(epoch, cost.item()))\n\nprint('Finished')","execution_count":null,"outputs":[]},{"metadata":{"id":"iIwgpcyPtFps","executionInfo":{"status":"ok","timestamp":1593429235373,"user_tz":-540,"elapsed":2601,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"1db3aa07-3de3-41ed-bff5-031020487455","trusted":false},"cell_type":"code","source":"test = pd.read_csv('../input/2020-ai-exam-fashionmnist-1/mnist_test.csv', header=None)\ntest","execution_count":null,"outputs":[]},{"metadata":{"id":"s9SVv8yos3-N","executionInfo":{"status":"ok","timestamp":1593429236379,"user_tz":-540,"elapsed":3558,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"33dd05d6-9137-4446-9f38-0c5f69f5cf9f","trusted":false},"cell_type":"code","source":"with torch.no_grad():\n  xtest=test.loc[:,:]\n  xtest=np.array(xtest)\n  xtest=torch.FloatTensor(xtest).to(device)\n\n  H = model(xtest)\n  correct_prediction = torch.argmax(H, 1)\n\ncorrect_prediction = correct_prediction.cpu().numpy().reshape(-1,1)\n\nsubmit=pd.read_csv('../input/2020-ai-exam-fashionmnist-1/submission.csv')\n\nfor i in range(len(correct_prediction)):\n  submit['Category'][i]=correct_prediction[i].item()\n\nsubmit.to_csv('sub.csv',index=False, header=True)\nsubmit","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}