{"cells":[{"metadata":{"id":"eEgahA64qC30","executionInfo":{"status":"ok","timestamp":1593430356692,"user_tz":-540,"elapsed":5830,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"e04a8e08-2fb0-419a-8a92-dc77298723dc","trusted":false},"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport random\nimport pandas as pd\nimport numpy as np\nfrom sklearn import preprocessing\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-3/mnist_train_label.csv', header=None)\ntrain","execution_count":null,"outputs":[]},{"metadata":{"id":"q5E7t2GWrHC_","executionInfo":{"status":"ok","timestamp":1593431449771,"user_tz":-540,"elapsed":1757,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"d19a22ce-0c37-4bca-f5e3-1ad5497def63","trusted":false},"cell_type":"code","source":"from torch.utils.data import DataLoader, TensorDataset\n\nxtrain = train.loc[:, 1:784]\nytrain = train.loc[:, 0]\n\nprint(xtrain.shape, ytrain.shape)\n\nxtrain=np.array(xtrain)\nytrain=np.array(ytrain)\n\nScaler = preprocessing.MinMaxScaler()\nxtrain = Scaler.fit_transform(xtrain)\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":1593431491296,"user_tz":-540,"elapsed":37964,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"f857a66f-ba69-4cd5-c67c-03e2b0b27e79","trusted":false},"cell_type":"code","source":"random.seed(111)\ntorch.manual_seed(111)\n\nepochs=15\n\nlin1 = nn.Linear(784, 512, bias=True)\nlin2 = nn.Linear(512, 512,bias=True)\nlin3 = nn.Linear(512, 10, bias=True)\n#nn.init.kaiming_uniform(lin1.weight)\n#nn.init.kaiming_uniform(lin2.weight)\n#nn.init.kaiming_uniform(lin3.weight)\nrelu = nn.ReLU()\n\nmodel = nn.Sequential(lin1, relu,\n                      lin2, relu,\n                      lin3).to(device)\n\nloss = nn.CrossEntropyLoss().to(device)\noptimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\n\nfor epoch in range(epochs):\n  avg_cost=0\n\n  for x,y in dl:\n    x = x.to(device)\n    y = y.to(device)\n\n    optimizer.zero_grad()\n    H = model(x)\n    cost = loss(H, y)\n    cost.backward()\n    optimizer.step()\n\n    avg_cost += cost/len(dl)\n\n  print('Epoch:', '%04d'%(epoch+1) ,'Cost : {:.9f}'.format(avg_cost))\n\nprint('Finished')","execution_count":null,"outputs":[]},{"metadata":{"id":"39qIK7WQ59fF","executionInfo":{"status":"ok","timestamp":1593431683551,"user_tz":-540,"elapsed":1833,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"48c5427b-eeca-4120-d197-6f1ac629f254","trusted":false},"cell_type":"code","source":"test = pd.read_csv('../input/2020-ai-exam-fashionmnist-3/mnist_test.csv', header=None, usecols=range(1,785))\ntest = test.fillna(0)\ntest","execution_count":null,"outputs":[]},{"metadata":{"id":"s9SVv8yos3-N","executionInfo":{"status":"ok","timestamp":1593431690862,"user_tz":-540,"elapsed":1534,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"a60e7148-4596-4d70-cdd0-86df44392557","trusted":false},"cell_type":"code","source":"\nwith torch.no_grad():\n  xtest=test.loc[:,:]\n  xtest=np.array(xtest)\n  xtest=Scaler.transform(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-3/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}