{"id":36327,"date":"2024-11-01T09:47:33","date_gmt":"2024-11-01T09:47:33","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36327"},"modified":"2024-11-01T11:00:22","modified_gmt":"2024-11-01T11:00:22","slug":"introduction-to-gan-deep-learning-and-lstm-networks-using-pytorch","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36327\/","title":{"rendered":"Introduction to GAN Deep Learning and LSTM Networks using PyTorch"},"content":{"rendered":"<p><body><\/p>\n<p>Deep learning is a field of artificial intelligence that enables machines to learn from large amounts of data and recognize patterns within that data. In this course, we will introduce two important deep learning techniques: GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) networks, and implement example code using PyTorch.<\/p>\n<h2>1. Generative Adversarial Network (GAN)<\/h2>\n<p>GAN consists of two neural networks, the Generator and the Discriminator. The goal of GAN is to train the generator to produce data that is similar to real data. The generator takes random inputs (noise) and generates data, while the discriminator determines whether the given data is real or fake.<\/p>\n<h3>1.1 Principle of GAN<\/h3>\n<p>The training process of GAN proceeds through the following steps:<\/p>\n<ul>\n<li>Step 1: The generator takes random noise as input and generates fake images.<\/li>\n<li>Step 2: The discriminator receives both real images and generated fake images and assesses their authenticity.<\/li>\n<li>Step 3: The generator improves the generated images based on feedback from the discriminator.<\/li>\n<li>Step 4: This process is repeated, and the generator begins to create increasingly realistic images.<\/li>\n<\/ul>\n<h3>1.2 PyTorch Implementation of GAN<\/h3>\n<p>Now, let&#8217;s implement a simple GAN using PyTorch. The following code is an example of a GAN that generates digit images using the MNIST dataset.<\/p>\n<pre><code>import torch\nimport torch.nn as nn\nimport torch.optim as optim\nfrom torchvision import datasets, transforms\nfrom torch.utils.data import DataLoader\n\n# Hyperparameter settings\nbatch_size = 64\nlearning_rate = 0.0002\nnum_epochs = 50\nlatent_size = 100\n\n# Load dataset\ntransform = transforms.Compose([\n    transforms.ToTensor(),\n    transforms.Normalize((0.5,), (0.5,))\n])\nmnist = datasets.MNIST(root='.\/data', train=True, download=True, transform=transform)\ndata_loader = DataLoader(mnist, batch_size=batch_size, shuffle=True)\n\n# Define generator\nclass Generator(nn.Module):\n    def __init__(self):\n        super(Generator, self).__init__()\n        self.model = nn.Sequential(\n            nn.Linear(latent_size, 128),\n            nn.ReLU(),\n            nn.Linear(128, 256),\n            nn.ReLU(),\n            nn.Linear(256, 512),\n            nn.ReLU(),\n            nn.Linear(512, 784),\n            nn.Tanh()  # Output values range from -1 to 1\n        )\n    \n    def forward(self, z):\n        return self.model(z).view(-1, 1, 28, 28)\n\n# Define discriminator\nclass Discriminator(nn.Module):\n    def __init__(self):\n        super(Discriminator, self).__init__()\n        self.model = nn.Sequential(\n            nn.Linear(784, 512),\n            nn.LeakyReLU(0.2),\n            nn.Linear(512, 256),\n            nn.LeakyReLU(0.2),\n            nn.Linear(256, 1),\n            nn.Sigmoid()  # Output values range from 0 to 1\n        )\n    \n    def forward(self, img):\n        return self.model(img.view(-1, 784))\n\n# Initialize model, loss function, optimizer\ngenerator = Generator()\ndiscriminator = Discriminator()\nloss_function = nn.BCELoss()\noptimizer_g = optim.Adam(generator.parameters(), lr=learning_rate)\noptimizer_d = optim.Adam(discriminator.parameters(), lr=learning_rate)\n\n# Train GAN\nfor epoch in range(num_epochs):\n    for i, (imgs, _) in enumerate(data_loader):\n        # Labels for real images\n        real_labels = torch.ones(imgs.size(0), 1)\n        # Labels for fake images\n        z = torch.randn(imgs.size(0), latent_size)\n        fake_images = generator(z)\n        fake_labels = torch.zeros(imgs.size(0), 1)\n\n        # Train discriminator\n        optimizer_d.zero_grad()\n        outputs_real = discriminator(imgs)\n        loss_real = loss_function(outputs_real, real_labels)\n        outputs_fake = discriminator(fake_images.detach())\n        loss_fake = loss_function(outputs_fake, fake_labels)\n        loss_d = loss_real + loss_fake\n        loss_d.backward()\n        optimizer_d.step()\n\n        # Train generator\n        optimizer_g.zero_grad()\n        outputs_fake = discriminator(fake_images)\n        loss_g = loss_function(outputs_fake, real_labels)\n        loss_g.backward()\n        optimizer_g.step()\n\n    print(f'Epoch [{epoch+1}\/{num_epochs}], Loss D: {loss_d.item():.4f}, Loss G: {loss_g.item():.4f}')<\/code>\n<\/pre>\n<p>The above code demonstrates how to implement GAN using PyTorch. The torchvision library is used to load the data, and both the Generator and Discriminator are defined as classes. Subsequently, the loss function and optimizer are initialized, and the training process is repeated.<\/p>\n<h2>2. Long Short-Term Memory (LSTM) Network<\/h2>\n<p>LSTM is a type of RNN (Recurrent Neural Network) that excels in processing sequence data. LSTM was designed to address the long-term dependency problem and includes key components such as input gates, forget gates, and output gates.<\/p>\n<h3>2.1 Principle of LSTM<\/h3>\n<p>LSTM has the following structure:<\/p>\n<ul>\n<li>Input gate: Determines how much new information to add to the cell state.<\/li>\n<li>Forget gate: Determines how much information to retain from the previous cell state.<\/li>\n<li>Output gate: Determines how much information to output from the cell state.<\/li>\n<\/ul>\n<p>Thanks to this configuration, LSTM can accurately process information without losing it, even in long sequences.<\/p>\n<h3>2.2 PyTorch Implementation of LSTM<\/h3>\n<p>Now, let\u2019s implement a simple LSTM example using PyTorch. We will create a model that predicts the next value in a given sequence.<\/p>\n<pre><code>import torch\nimport torch.nn as nn\nimport numpy as np\n\n# Hyperparameter settings\ninput_size = 1  # Input size\nhidden_size = 10  # Size of the LSTM hidden layer\nnum_layers = 1  # Number of LSTM layers\nnum_epochs = 100\nlearning_rate = 0.01\n\n# Define LSTM\nclass LSTM(nn.Module):\n    def __init__(self):\n        super(LSTM, self).__init__()\n        self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)\n        self.fc = nn.Linear(hidden_size, 1)  # Output size 1\n\n    def forward(self, x):\n        out, (h_n, c_n) = self.lstm(x)\n        out = self.fc(out[:, -1, :])  # Output value at the last time step\n        return out\n\n# Generate data\ndef create_data(seq_length=10):\n    x = np.arange(0, seq_length + 10, 0.1)\n    y = np.sin(x)\n    return x[:-10].reshape(-1, seq_length, 1), y[10:].reshape(-1, 1)\n\nx_train, y_train = create_data()\n\n# Convert data to tensors\nx_train_tensor = torch.Tensor(x_train)\ny_train_tensor = torch.Tensor(y_train)\n\n# Initialize model\nmodel = LSTM()\ncriterion = nn.MSELoss()\noptimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)\n\n# Train LSTM\nfor epoch in range(num_epochs):\n    model.train()\n    optimizer.zero_grad()\n    outputs = model(x_train_tensor)\n    loss = criterion(outputs, y_train_tensor)\n    loss.backward()\n    optimizer.step()\n\n    if (epoch+1) % 10 == 0:\n        print(f'Epoch [{epoch+1}\/{num_epochs}], Loss: {loss.item():.4f}')<\/code>\n<\/pre>\n<p>The above code implements an LSTM model. The data is generated using a sine function, and the LSTM model is configured to learn to predict the next value. The loss value is printed at each epoch to monitor the training process.<\/p>\n<h2>3. Conclusion<\/h2>\n<p>In this course, we explored the basic concepts of GAN and LSTM networks and how to implement them using PyTorch. GAN is primarily used for image generation, while LSTM is efficient for processing sequence data. Both techniques can be applied across various fields, depending on their characteristics, and play an important role in solving complex problems.<\/p>\n<p>We encourage you to delve deeper into these technologies through further experiments and research!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deep learning is a field of artificial intelligence that enables machines to learn from large amounts of data and recognize patterns within that data. In this course, we will introduce two important deep learning techniques: GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) networks, and implement example code using PyTorch. 1. Generative Adversarial Network &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36327\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Introduction to GAN Deep Learning and LSTM Networks using PyTorch&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[113],"tags":[],"class_list":["post-36327","post","type-post","status-publish","format-standard","hentry","category-gan-deep-learning-course"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introduction to GAN Deep Learning and LSTM Networks using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/36327\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to GAN Deep Learning and LSTM Networks using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Deep learning is a field of artificial intelligence that enables machines to learn from large amounts of data and recognize patterns within that data. In this course, we will introduce two important deep learning techniques: GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) networks, and implement example code using PyTorch. 1. Generative Adversarial Network &hellip; \ub354 \ubcf4\uae30 &quot;Introduction to GAN Deep Learning and LSTM Networks using PyTorch&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36327\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:47:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:00:22+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36327\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36327\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Introduction to GAN Deep Learning and LSTM Networks using PyTorch\",\"datePublished\":\"2024-11-01T09:47:33+00:00\",\"dateModified\":\"2024-11-01T11:00:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36327\/\"},\"wordCount\":499,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"GAN deep learning course\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36327\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36327\/\",\"name\":\"Introduction to GAN Deep Learning and LSTM Networks using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:47:33+00:00\",\"dateModified\":\"2024-11-01T11:00:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36327\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36327\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36327\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to GAN Deep Learning and LSTM Networks using PyTorch\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to GAN Deep Learning and LSTM Networks using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/36327\/","og_locale":"ko_KR","og_type":"article","og_title":"Introduction to GAN Deep Learning and LSTM Networks using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Deep learning is a field of artificial intelligence that enables machines to learn from large amounts of data and recognize patterns within that data. In this course, we will introduce two important deep learning techniques: GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) networks, and implement example code using PyTorch. 1. Generative Adversarial Network &hellip; \ub354 \ubcf4\uae30 \"Introduction to GAN Deep Learning and LSTM Networks using PyTorch\"","og_url":"https:\/\/atmokpo.com\/w\/36327\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:47:33+00:00","article_modified_time":"2024-11-01T11:00:22+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36327\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36327\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Introduction to GAN Deep Learning and LSTM Networks using PyTorch","datePublished":"2024-11-01T09:47:33+00:00","dateModified":"2024-11-01T11:00:22+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36327\/"},"wordCount":499,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["GAN deep learning course"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36327\/","url":"https:\/\/atmokpo.com\/w\/36327\/","name":"Introduction to GAN Deep Learning and LSTM Networks using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:47:33+00:00","dateModified":"2024-11-01T11:00:22+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36327\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36327\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36327\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Introduction to GAN Deep Learning and LSTM Networks using PyTorch"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=36327"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36327\/revisions"}],"predecessor-version":[{"id":36328,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36327\/revisions\/36328"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}