{"cells":[{"metadata":{"id":"eEgahA64qC30","executionInfo":{"status":"ok","timestamp":1593430257764,"user_tz":-540,"elapsed":6352,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"bfa66a41-571b-421c-d987-c615651aaa34","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-2/mnist_train_label.csv', header=None)\ntrain","execution_count":null,"outputs":[]},{"metadata":{"id":"q5E7t2GWrHC_","executionInfo":{"status":"ok","timestamp":1593430258647,"user_tz":-540,"elapsed":4938,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"b0570c83-efe1-40e0-b908-9d76c13f2104","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\nScaler = preprocessing.MinMaxScaler()\nxtrain = Scaler.fit_transform(xtrain)\n\nxtrain=torch.FloatTensor(xtrain).to(device)\nytrain=torch.LongTensor(ytrain).to(device)\n\n\ndataset = TensorDataset(xtrain, ytrain)\ndl = DataLoader(dataset, batch_size=100, shuffle=True, drop_last=True)","execution_count":null,"outputs":[]},{"metadata":{"id":"NeIvlQDcr9Js","executionInfo":{"status":"ok","timestamp":1593430300718,"user_tz":-540,"elapsed":27159,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"c8253c8d-b723-46da-96e5-af7b85d22a49","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)\n\nloss = nn.CrossEntropyLoss().to(device)\noptimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.8)\n\nfor epoch in range(epochs + 1):\n  for batch_idx, samples in enumerate(dl): #인덱스, 데이터\n    x, y = samples\n\n    H = model(x)\n    cost = loss(H, y)\n\n    optimizer.zero_grad()\n    cost.backward()\n    optimizer.step()\n\n  if epoch%1 == 0:\n      print('Epoch {}  Cost {}'.format(epoch, cost.item()))\n\nprint('Finished')","execution_count":null,"outputs":[]},{"metadata":{"id":"s9SVv8yos3-N","executionInfo":{"status":"ok","timestamp":1593430330032,"user_tz":-540,"elapsed":3468,"user":{"displayName":"이혜인","photoUrl":"https://lh4.googleusercontent.com/-uI9uK9Capgk/AAAAAAAAAAI/AAAAAAAAAOg/ysaMHXumvhE/s64/photo.jpg","userId":"13384498604895278525"}},"outputId":"c0d40a5e-b0cc-4f05-95d0-e98bc821c989","trusted":false},"cell_type":"code","source":"test = pd.read_csv('../input/2020-ai-exam-fashionmnist-2/mnist_test.csv', header=None)\n\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-2/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}