{"id":7755,"date":"2019-08-12T18:11:15","date_gmt":"2019-08-12T09:11:15","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=7755"},"modified":"2020-05-28T10:18:51","modified_gmt":"2020-05-28T01:18:51","slug":"pytorch%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ea%b0%84%eb%8b%a8%ed%95%9c-%ea%b8%b0%ea%b3%84%ed%95%99%ec%8a%b5","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=7755","title":{"rendered":"PyTorch\ub97c \uc774\uc6a9\ud55c \uac04\ub2e8\ud55c \uba38\uc2e0\ub7ec\ub2dd"},"content":{"rendered":"<p>\uba38\uc2e0\ub7ec\ub2dd\uc744 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc911 \ud30c\uc774\ud1a0\uce58\ub97c \uc774\uc6a9\ud55c \uae30\uacc4\ud559\uc2b5\uc744 \uc815\ub9ac\ud574 \ubd05\ub2c8\ub2e4. \ud559\uc2b5\uc758 \uc8fc\uc81c\ub294 \uc190\uae00\uc528\ub85c \uc368\uc9c4 \uc22b\uc790 \uc778\uc2dd\uc785\ub2c8\ub2e4. \uba3c\uc800 \ud559\uc2b5\uc744 \uc704\ud55c \ub370\uc774\ud130\uac00 \ud544\uc694\ud55c\ub370\uc694. MNIST \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. MNIST\ub294 \uc544\ub798\uc758 \uadf8\ub9bc\ucc98\ub7fc \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\ub85c 60,000\uac1c\uc758 \uc190\uae00\uc528 \uc774\ubbf8\uc9c0\uc640 \uac01 \uc774\ubbf8\uc9c0\uc5d0 \ud574\ub2f9\ud558\ub294 \uc22b\uc790\uac00 \ubb34\uc5c7\uc778\uc9c0\ub97c \ub098\ud0c0\ub0b4\ub294 60,000\uac1c\uc758 \ub77c\ubca8\uac12\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc774 \ud559\uc2b5 \ub370\uc774\ud130\ub97c \uc774\uc6a9\ud574 \ud559\uc2b5\ub41c \ubaa8\ub378\uc744 \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud55c \ud14c\uc2a4\ud2b8\ub85c \uc190\uae00\uc528 \uc774\ubbf8\uc9c0\uc640 \ub77c\ubca8 \ub370\uc774\ud130\uac00 \uac01\uac01 10,000\uac1c\uc529 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uc774\ubbf8\uc9c0 \ud55c\uc7a5\uc758 \ud06c\uae30\ub294 28&#215;28 \ud53d\uc140\uc785\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2019\/08\/MnistExamples.png\" alt=\"\" width=\"594\" height=\"361\" class=\"aligncenter size-full wp-image-7756\" \/><\/p>\n<p>\ucf54\ub4dc\ub294 PyTorch\uc640 MNIST\uc5d0\uc11c \uc22b\uc790 \uc774\ubbf8\uc9c0\ub97c \uac00\uc838\uc624\uae30 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 \uc544\ub798\ucc98\ub7fc import \ubb38\uc73c\ub85c \uc2dc\uc791\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nimport torch\r\nimport torchvision\r\n<\/pre>\n<p>\ub370\uc774\ud130\ub97c \ud1b5\ud55c \ud6c8\ub828\uc744 \uc704\ud574 \ud55c\ubc88\uc5d0 60,000\uac1c\uc529 \ud6c8\ub828\ud574\ub3c4 \ub418\uc9c0\ub9cc, \ud559\uc2b5\uc758 \ud6a8\uc728\uacfc \uba54\ubaa8\ub9ac \uc0ac\uc6a9\uc744 \uc904\uc774\uae30 \uc704\ud574 Mini-Batch \ubc29\uc2dd\uc744 \uc774\uc6a9\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 \ubbf8\ub2c8\ubc30\uce58\uc758 \ud06c\uae30\ub85c 1000\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 MNIST\ub85c\ubd80\ud130 \ud6c8\ub828 \ub370\uc774\ud130\uc640 \ud14c\uc2a4\ud2b8 \ud14c\uc774\ud130\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \ub2e4\uc6b4\ub85c\ub4dc\ub41c \ub370\uc774\ud130\ub85c\ubd80\ud130 \ubbf8\ub2c8\ubc30\uce58\ub9cc\ud07c \ub370\uc774\ud130\ub97c \ub85c\ub529\ud558\uae30 \uc704\ud574 \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nbatch_size = 1000\r\n\r\nmnist_train = torchvision.datasets.MNIST(root=\"MNIST_data\/\", train=True, transform=torchvision.transforms.ToTensor(), download=True)\r\nmnist_test = torchvision.datasets.MNIST(root=\"MNIST_data\/\", train=False, transform=torchvision.transforms.ToTensor(), download=True)\r\n\r\ndata_loader = torch.utils.data.DataLoader(mnist_train, batch_size=batch_size, shuffle=True, drop_last=True)\r\n<\/pre>\n<p>\uba38\uc2e0\ub7ec\ub2dd\uc740 CPU \ubcf4\ub2e4 \ud589\ub82c \uc5f0\uc0b0\uc5d0 \ucd5c\uc801\ud654\ub41c GPU\ub97c \ud1b5\ud574 \uc218\ud589\ud558\ub294 \uac83\uc774 \ud6a8\uc728\uc801\uc785\ub2c8\ub2e4. \uc989, Tensor\ub97c GPU\uc5d0 \uc62c\ub824 \uc5f0\uc0b0\uc744 \uc218\ud589\ud55c\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 \uc544\ub798\uc758 \ucf54\ub4dc\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\ndevice = torch.device(\"cuda:0\")\r\n<\/pre>\n<p>\uc774\uc81c \uc190\uae00\uc528 \uc774\ubbf8\uc9c0\ub97c \uc785\ub825\ud558\uace0, \uc774 \uc774\ubbf8\uc9c0\uac00 \uc758\ubbf8\ud558\ub294 \uac83\uc774 \ubb34\uc5c7\uc778\uc9c0\ub97c \ud559\uc2b5\uc2dc\ud0a4\uae30 \uc704\ud55c \ubaa8\ub378\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. \uc774\ubbf8\uc9c0 \ud55c\uc7a5\uc740 28&#215;28 \ud06c\uae30\uc774\ubbc0\ub85c \uc774\ub97c \ubc94\uc6a9\uc801\uc778 \uc785\ub825 \ub370\uc774\ud130\ub85c\uc368 \ubc1b\uae30 \uc704\ud574 \uac01 \ud654\uc18c\uac12\uc744 \uc785\ub825\uac12\uc73c\ub85c \ud569\ub2c8\ub2e4. \uc989, \uc785\ub825\uac12\uc740 28&#215;28\uc778 784\uac1c\uc774\uace0, \ucd9c\ub825\uac12\uc740 \ud574\ub2f9 \uc774\ubbf8\uc9c0\uac00 \uc5b4\ub5a4 \uc22b\uc790\uc778\uc9c0\uc5d0 \ub300\ud55c 0~9\uae4c\uc9c0\uc758 \ud655\ub960\uac12\uc774\ubbc0\ub85c \ucd1d 10 \uac1c\uc785\ub2c8\ub2e4. \uc774\ub97c \uc704\ud55c \uc2e0\uacbd\ub9dd \ubaa8\ub378\uc744 \uc544\ub798\ucc98\ub7fc \uc815\uc758\ud569\ub2c8\ub2e4. \uc544\ub798\uc758 \ucf54\ub4dc\uac00 \uc2e0\uacbd\ub9dd \ubaa8\ub378\uc5d0 \ub300\ud55c \uad6c\uc131 \ucf54\ub4dc\uc785\ub2c8\ub2e4. \ucc38\uace0\ub85c \uc5ec\uae30\uc11c \uc0ac\uc6a9\ud558\ub294 \uc2e0\uacbd\ub9dd\uc740 \uc785\ub825\uce35\uacfc \ucd9c\ub825\uce35\uc73c\ub85c\ub9cc \uad6c\uc131\ub418\ubbc0\ub85c \ub9e4\uc6b0 \ub2e8\uc21c\ud569\ub2c8\ub2e4. bias=True\ub77c\ub294 \uac83\uc740 \uac00\uc911\uce58 \uc678\uc5d0\ub3c4 \ud3b8\ud5a5\uac12\ub3c4 \uc0ac\uc6a9\ud55c\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nlinear = torch.nn.Linear(784, 10, bias=True).to(device)\r\n<\/pre>\n<p>\uac01 \ud6c8\ub828\uc740 \uc190\uc2e4\uac12\ub9cc\ud07c \uac00\uc911\uce58\uc640 \ud3b8\ud5a5\uac12\uc744 \ucd5c\uc801\uc758 \uac12\uc73c\ub85c \ubcf4\uc815\ud558\uac8c \ub429\ub2c8\ub2e4. \uc774\ub54c \uc190\uc2e4\uac12\uc73c\ub85c Cross Entroy Error\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\uc640 \ud568\uaed8 \ucd9c\ub825\uce35\uc5d0\uc11c\ub294 \uc0ac\uc6a9\ud558\ub294 \ud65c\uc131\ud654\ud568\uc218\ub85c\ub294 Softmax \ud568\uc218\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud30c\uc774\ud1a0\uce58\uc5d0\uc11c\ub294 \uc774\ub97c \uc704\ud574 torch.nn.CrossEntropyLoss\ub97c \uc81c\uacf5\ud558\ub294\ub370, \uc774 \ud074\ub798\uc2a4\ub294 \ub0b4\ubd80\uc801\uc73c\ub85c Softmax\uc640 Cross Entroy Error \ub458 \ub2e4 \uc801\uc6a9\ud574 \uc90d\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ud6c8\ub828\uc5d0 \ub300\ud55c \uc190\uc2e4\uac12\uc744 \ucd5c\uc18c\ud654\ud558\uae30 \uc704\ud574 \ucd5c\uc801\uc758 \uac00\uc911\uce58\uc640 \ud3b8\ud5a5\uac12\uc744 \ucc3e\uae30 \uc704\ud574 \uacbd\uc0ac\ud558\uac15\ubc95\uc744 \uc0ac\uc6a9\ud558\ub294\ub370, Hyper-Parameter\uc778 \ud559\uc2b5\uc728\uc744 0.1\ub85c \uc815\ud588\uc2b5\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud55c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nloss = torch.nn.CrossEntropyLoss().to(device)\r\nSDG = torch.optim.SGD(linear.parameters(), lr=0.1)\r\n<\/pre>\n<p>\uc544\ub798\ub294 1 Epoch(\ubbf8\ub2c8\ubc30\uce58\ub85c \uc804\uccb4 \ud6c8\ub828 \ub370\uc774\ud130 \ucc98\ub9ac \ub2e8\uc704)\uc5d0\uc11c \uba87\ubc88\uc758 \ubbf8\ub2c8\ubc30\uce58\uac00 \ubc18\ubcf5\ub418\ub294\uc9c0, \uadf8\ub9ac\uace0 \uba87\ubc88\uc758 Epoch \ub9cc\ud07c \ud6c8\ub828\ud560 \uac83\uc778\uc9c0\uc5d0 \ub300\ud55c \uac01\uac01\uc758 \ubcc0\uc218\uc5d0 \ub300\ud55c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\ntotal_batch = len(data_loader) # 60 = 60000 \/ 1000 (total \/ batch_size)\r\ntraining_epochs = 10\r\n<\/pre>\n<p>\uc544\ub798\ub294 \ud6c8\ub828\uc5d0 \ub300\ud55c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nfor epoch in range(training_epochs):\r\n    total_cost = 0\r\n\r\n    for X, Y in data_loader:\r\n        X = X.view(-1, 28 * 28).to(device)\r\n        Y = Y.to(device)\r\n        \r\n        hypothesis = linear(X)\r\n        cost = loss(hypothesis, Y)\r\n\r\n        SDG.zero_grad()\r\n        cost.backward()\r\n        SDG.step()\r\n\r\n        total_cost += cost \r\n\r\n    avg_cost = total_cost \/ total_batch\r\n    print(\"Epoch:\", \"%03d\" % (epoch+1), \"cost =\", \"{:.9f}\".format(avg_cost))\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c 5\ubc88\uc740 (1000, 1, 28, 28) \ud06c\uae30\uc758 \ud150\uc11c\ub97c (1000, 784) \ud06c\uae30\uc758 \ud150\uc11c\ub85c \ubcc0\uacbd\ud574 \uc90d\ub2c8\ub2e4. 6\ubc88 \ucf54\ub4dc\ub294 \uc774\ubbf8\uc9c0 \ub370\uc774\ud130\uc5d0 \ub300\ud55c \ub77c\ubca8\uac12\uc778\ub370, One-Hot \uc778\ucf54\ub529\uc774 \uc544\ub2cc 0~9\uae4c\uc9c0\uc758 \uac12\uc73c\ub85c \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud55c \uc758\ubbf8\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. 8\ubc88\uacfc 9\ubc88\uc740 \uac01\uac01 \uc785\ub825 \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud55c \ucd94\uc815\uac12\uc744 \uc5bb\uace0, \ucd94\uc815\uac12\uacfc \ub77c\ubca8\uac12\uc778 \ucc38\uac12 \uc0ac\uc774\uc758 \uc624\ucc28\uac12\uc744 \uacc4\uc0b0\ud569\ub2c8\ub2e4. 11\ubc88~13\ubc88\uc740 \uc624\ucc28\uc5ed\uc804\ud30c\uae30\ubc95\uc744 \uc774\uc6a9\ud558\uc5ec \uac00\uc911\uce58\uc640 \ud3b8\ud5a5\uac12\uc744 \ubcf4\uc815\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4. 18\ubc88\uc740 1 \uc5d0\ud3ed\ub9c8\ub2e4 \uc190\uc2e4\uac12\uc774 \uc5bc\ub9c8\ub098 \ub098\uc624\ub294\uc9c0\ub97c \ud655\uc778\ud558\uac8c \ub418\ub294\ub370, \uc633\ubc14\ub978 \ud559\uc2b5\uc774\ub77c\uba74 \uc774 \uc190\uc2e4\uac12\uc740 \ud070 \uadf8\ub9bc\uc5d0\uc11c \ubd24\uc744\ub54c \uc810\ucc28\uc801\uc73c\ub85c \uc904\uc5b4\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc544\ub798\ub294 \uc774\ub7ec\ud55c \uc190\uc2e4\uac12\uc744 \uc5d0\ud3ed\uc758 \ubc18\ubcf5\uc5d0 \ub300\ud574 \ud45c\ud604\ud55c \uadf8\ub798\ud504\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2019\/08\/cost_graph.png\" alt=\"\" width=\"80%\" class=\"aligncenter size-full wp-image-7802\" \/><\/p>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc544\ub798\uc758 \ucf54\ub4dc\ub294 \uc704\uc758 \ud6c8\ub828\uc744 \ud1b5\ud574 \uc5bb\uc5b4\uc9c4 \uac00\uc911\uce58\uac12\uacfc \ud3b8\ud5a5\uac12\uc744 \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\uc5d0 \uc801\uc6a9\ud574 \uc5bc\ub9c8\ub9cc\ud07c\uc758 \uc815\ud655\ub3c4\uac00 \ub098\uc624\ub294\uc9c0 \ud655\uc778\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\nwith torch.no_grad():\r\n    X_test = mnist_test.data.view(-1, 28 * 28).float().to(device)\r\n    Y_test = mnist_test.targets.to(device)\r\n    prediction = linear(X_test)\r\n    correct_prediction = torch.argmax(prediction, 1) == Y_test\r\n    accuracy = correct_prediction.float().mean()\r\n    print(\"Accuracy: \", accuracy.item())\r\n<\/pre>\n<p>\uc2e4\uc81c \uc774 \ucf54\ub4dc\ub97c \ud1b5\ud574 \ud559\uc2b5\ud574 \ubcf4\uba74 \ub300\ub7b5 90% \uc815\ub3c4\uc758 \uc815\ud655\ub3c4\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub192\uc740 \uc815\ud655\ub3c4\ub77c\uace0 \ud560\uc218\ub294 \uc5c6\uc9c0\ub9cc, \ub2e8\uc21c\uc774 \uc774\ubbf8\uc9c0\uc758 \ud654\uc18c\uac12\uc744 \ud2b9\uc9d5\uc73c\ub85c \uc77c\ub82c\ub85c \uad6c\uc131\ud55c, \uc989 \uc774\ubbf8\uc9c0\ub77c\ub294 2\ucc28\uc6d0\uc801\uc778 \uac1c\ub150\uc744 \uc804\ud600 \uace0\ub824\ud558\uc9c0 \uc54a\uace0 \uc5bb\uc740 \uc815\ud655\ub3c4\ub77c\ub294 \uc810\uc5d0\uc11c \uc0c1\ub2f9\uc774 \uc778\uc0c1\uc801\uc778\ub370\uc694. \ud558\uc9c0\ub9cc 90%\ub77c\ub294 \uc815\ud655\ub3c4\ub97c \uac1c\uc120\ud558\uae30 \uc704\ud574 \uc774\ubbf8\uc9c0\ub77c\ub294 2\ucc28\uc6d0\uc801\uc778 \uac1c\ub150\uae4c\uc9c0 \uace0\ub824\ud558\uace0 \ubc18\uc601\ud55c CNN\uc744 \uc774\uc6a9\ud558\uba74 \uc815\ud655\ub3c4\ub97c 99% \uc774\uc0c1\uc73c\ub85c \uc62c\ub9b4 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4. 99%\uc758 \uc815\ud655\ub3c4\ub294 \uc778\uac04\uc758 \ud3c9\uade0 \uc815\ud655\ub3c4\ub97c \ub118\uc5b4\uc120 \uac12\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uba38\uc2e0\ub7ec\ub2dd\uc744 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc911 \ud30c\uc774\ud1a0\uce58\ub97c \uc774\uc6a9\ud55c \uae30\uacc4\ud559\uc2b5\uc744 \uc815\ub9ac\ud574 \ubd05\ub2c8\ub2e4. \ud559\uc2b5\uc758 \uc8fc\uc81c\ub294 \uc190\uae00\uc528\ub85c \uc368\uc9c4 \uc22b\uc790 \uc778\uc2dd\uc785\ub2c8\ub2e4. \uba3c\uc800 \ud559\uc2b5\uc744 \uc704\ud55c \ub370\uc774\ud130\uac00 \ud544\uc694\ud55c\ub370\uc694. MNIST \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. MNIST\ub294 \uc544\ub798\uc758 \uadf8\ub9bc\ucc98\ub7fc \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\ub85c 60,000\uac1c\uc758 \uc190\uae00\uc528 \uc774\ubbf8\uc9c0\uc640 \uac01 \uc774\ubbf8\uc9c0\uc5d0 \ud574\ub2f9\ud558\ub294 \uc22b\uc790\uac00 \ubb34\uc5c7\uc778\uc9c0\ub97c \ub098\ud0c0\ub0b4\ub294 60,000\uac1c\uc758 \ub77c\ubca8\uac12\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc774 \ud559\uc2b5 \ub370\uc774\ud130\ub97c \uc774\uc6a9\ud574 \ud559\uc2b5\ub41c \ubaa8\ub378\uc744 \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud55c \ud14c\uc2a4\ud2b8\ub85c \uc190\uae00\uc528 \uc774\ubbf8\uc9c0\uc640 \ub77c\ubca8 \ub370\uc774\ud130\uac00 \uac01\uac01 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=7755\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;PyTorch\ub97c \uc774\uc6a9\ud55c \uac04\ub2e8\ud55c \uba38\uc2e0\ub7ec\ub2dd&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[132,1],"tags":[],"class_list":["post-7755","post","type-post","status-publish","format-standard","hentry","category-deep-machine-learning","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/7755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7755"}],"version-history":[{"count":17,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/7755\/revisions"}],"predecessor-version":[{"id":9388,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/7755\/revisions\/9388"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7755"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}