{"id":36343,"date":"2024-11-01T09:47:40","date_gmt":"2024-11-01T09:47:40","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36343"},"modified":"2024-11-01T11:00:18","modified_gmt":"2024-11-01T11:00:18","slug":"creating-gan-deep-learning-and-vae-using-pytorch","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36343\/","title":{"rendered":"Creating GAN Deep Learning and VAE Using PyTorch"},"content":{"rendered":"<p><body><\/p>\n<div class=\"section\">\n<h2>1. Introduction<\/h2>\n<p>The advancements in artificial intelligence have increased the importance of Generative Models. Generative models play a role in generating data that is structurally different from each other, with GAN (Generative Adversarial Networks) and VAE (Variational Autoencoder) being widely used. This article will detail how to implement GAN and VAE using PyTorch.<\/p>\n<\/div>\n<div class=\"section\">\n<h2>2. GAN (Generative Adversarial Networks)<\/h2>\n<p>GAN is a model proposed by Ian Goodfellow in 2014, where two neural networks (the generator and the discriminator) compete against each other during training. The generator creates fake data while the discriminator is responsible for distinguishing between real and fake data.<\/p>\n<h3>2.1 Structure of GAN<\/h3>\n<p>GAN consists of the following structure:<\/p>\n<ul>\n<li><strong>Generator<\/strong>: Takes random noise as input and generates high-quality fake data that resembles real data.<\/li>\n<li><strong>Discriminator<\/strong>: Reviews the input data to determine whether it is real or fake.<\/li>\n<\/ul>\n<h3>2.2 GAN Training Process<\/h3>\n<p>The GAN training process includes the following steps.<\/p>\n<ol>\n<li>The generator generates random noise to create fake data.<\/li>\n<li>The discriminator receives the generated fake data and real data, outputting probabilities for each class.<\/li>\n<li>The generator tries to minimize the loss to make the discriminator judge the fake data as real.<\/li>\n<li>The discriminator minimizes its loss to output a high probability for real data and a low probability for fake data.<\/li>\n<\/ol>\n<h3>2.3 GAN Implementation Code<\/h3>\n<p>Below is a Python code to implement a simple GAN:<\/p>\n<pre><code>\nimport torch\nimport torch.nn as nn\nimport torch.optim as optim\nfrom torchvision import datasets, transforms\n\n# Define Generator class\nclass Generator(nn.Module):\n    def __init__(self):\n        super(Generator, self).__init__()\n        self.model = nn.Sequential(\n            nn.Linear(100, 256),\n            nn.ReLU(inplace=True),\n            nn.Linear(256, 512),\n            nn.ReLU(inplace=True),\n            nn.Linear(512, 1024),\n            nn.ReLU(inplace=True),\n            nn.Linear(1024, 784),\n            nn.Tanh()\n        )\n\n    def forward(self, z):\n        return self.model(z)\n\n# Define Discriminator class\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, inplace=True),\n            nn.Linear(512, 256),\n            nn.LeakyReLU(0.2, inplace=True),\n            nn.Linear(256, 1),\n            nn.Sigmoid()\n        )\n\n    def forward(self, img):\n        return self.model(img)\n\n# Data loading\ntransform = transforms.Compose([\n    transforms.ToTensor(),\n    transforms.Normalize([0.5], [0.5])\n])\nmnist = datasets.MNIST('data', train=True, download=True, transform=transform)\ndataloader = torch.utils.data.DataLoader(mnist, batch_size=64, shuffle=True)\n\n# Initialize models\ngenerator = Generator()\ndiscriminator = Discriminator()\n\n# Set loss function and optimization algorithm\ncriterion = nn.BCELoss()\noptimizer_G = optim.Adam(generator.parameters(), lr=0.0002, betas=(0.5, 0.999))\noptimizer_D = optim.Adam(discriminator.parameters(), lr=0.0002, betas=(0.5, 0.999))\n\n# GAN training\nnum_epochs = 100\nfor epoch in range(num_epochs):\n    for i, (imgs, _) in enumerate(dataloader):\n        # Set labels for real and fake data\n        real_labels = torch.ones(imgs.size(0), 1)\n        fake_labels = torch.zeros(imgs.size(0), 1)\n\n        # Train discriminator\n        optimizer_D.zero_grad()\n        outputs = discriminator(imgs.view(imgs.size(0), -1))\n        d_loss_real = criterion(outputs, real_labels)\n        d_loss_real.backward()\n\n        z = torch.randn(imgs.size(0), 100)\n        fake_imgs = generator(z)\n        outputs = discriminator(fake_imgs.detach())\n        d_loss_fake = criterion(outputs, fake_labels)\n        d_loss_fake.backward()\n        optimizer_D.step()\n\n        # Train generator\n        optimizer_G.zero_grad()\n        outputs = discriminator(fake_imgs)\n        g_loss = criterion(outputs, real_labels)\n        g_loss.backward()\n        optimizer_G.step()\n\n    print(f'Epoch [{epoch+1}\/{num_epochs}], d_loss: {d_loss_real.item() + d_loss_fake.item()}, g_loss: {g_loss.item()}')\n        <\/code><\/pre>\n<\/div>\n<div class=\"section\">\n<h2>3. VAE (Variational Autoencoder)<\/h2>\n<p>VAE is a model proposed by D. P. Kingma and M. Welling in 2013, which generates data in a probabilistic manner. VAE is composed of an encoder and a decoder, where the encoder compresses the data into a latent space, and the decoder reconstructs the data from this latent space.<\/p>\n<h3>3.1 Structure of VAE<\/h3>\n<p>The main components of VAE are as follows:<\/p>\n<ul>\n<li><strong>Encoder<\/strong>: Transforms input data into a latent vector, which is learned to follow a normal distribution.<\/li>\n<li><strong>Decoder<\/strong>: Takes the latent vector as input and generates output similar to the original data.<\/li>\n<\/ul>\n<h3>3.2 VAE Training Process<\/h3>\n<p>The training process for VAE is as follows.<\/p>\n<ol>\n<li>Pass the data through the encoder to obtain the mean and variance.<\/li>\n<li>Use the reparameterization trick to sample.<\/li>\n<li>Pass the sampled latent vector through the decoder to reconstruct the data.<\/li>\n<li>Calculate the loss between the reconstructed data and the original data.<\/li>\n<\/ol>\n<h3>3.3 VAE Implementation Code<\/h3>\n<p>Below is a Python code to implement a simple VAE:<\/p>\n<pre><code>\nclass VAE(nn.Module):\n    def __init__(self):\n        super(VAE, self).__init__()\n        self.encoder = nn.Sequential(\n            nn.Linear(784, 400),\n            nn.ReLU()\n        )\n        self.fc_mu = nn.Linear(400, 20)\n        self.fc_logvar = nn.Linear(400, 20)\n        self.decoder = nn.Sequential(\n            nn.Linear(20, 400),\n            nn.ReLU(),\n            nn.Linear(400, 784),\n            nn.Sigmoid()\n        )\n\n    def reparametrize(self, mu, logvar):\n        std = torch.exp(0.5 * logvar)\n        eps = torch.randn_like(std)\n        return mu + eps * std\n\n    def forward(self, x):\n        h1 = self.encoder(x.view(-1, 784))\n        mu = self.fc_mu(h1)\n        logvar = self.fc_logvar(h1)\n        z = self.reparametrize(mu, logvar)\n        return self.decoder(z), mu, logvar\n\n# VAE training\nvae = VAE()\noptimizer = optim.Adam(vae.parameters(), lr=0.001)\ncriterion = nn.BCELoss(reduction='sum')\n\nnum_epochs = 10\nfor epoch in range(num_epochs):\n    for imgs, _ in dataloader:\n        optimizer.zero_grad()\n        recon_batch, mu, logvar = vae(imgs)\n        recon_loss = criterion(recon_batch, imgs.view(-1, 784))\n        # Kullback-Leibler divergence\n        kld = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp())\n        loss = recon_loss + kld\n        loss.backward()\n        optimizer.step()\n    print(f'Epoch [{epoch+1}\/{num_epochs}], Loss: {loss.item()}')\n        <\/code><\/pre>\n<\/div>\n<div class=\"section\">\n<h2>4. Conclusion<\/h2>\n<p>GAN and VAE each have unique advantages and can be used in various generative tasks. This article has explained how to implement GAN and VAE using PyTorch, providing an opportunity to understand the principles behind each model and implement them in code. Generative models like GAN and VAE are utilized in numerous fields, such as image generation, style transfer, and data augmentation. These models have the potential to advance further and play a significant role in the field of artificial intelligence.<\/p>\n<\/div>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction The advancements in artificial intelligence have increased the importance of Generative Models. Generative models play a role in generating data that is structurally different from each other, with GAN (Generative Adversarial Networks) and VAE (Variational Autoencoder) being widely used. This article will detail how to implement GAN and VAE using PyTorch. 2. GAN &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36343\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Creating GAN Deep Learning and VAE 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-36343","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>Creating GAN Deep Learning and VAE 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\/36343\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating GAN Deep Learning and VAE Using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction The advancements in artificial intelligence have increased the importance of Generative Models. Generative models play a role in generating data that is structurally different from each other, with GAN (Generative Adversarial Networks) and VAE (Variational Autoencoder) being widely used. This article will detail how to implement GAN and VAE using PyTorch. 2. GAN &hellip; \ub354 \ubcf4\uae30 &quot;Creating GAN Deep Learning and VAE Using PyTorch&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36343\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:47:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:00:18+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\/36343\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36343\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Creating GAN Deep Learning and VAE Using PyTorch\",\"datePublished\":\"2024-11-01T09:47:40+00:00\",\"dateModified\":\"2024-11-01T11:00:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36343\/\"},\"wordCount\":468,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"GAN deep learning course\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36343\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36343\/\",\"name\":\"Creating GAN Deep Learning and VAE Using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:47:40+00:00\",\"dateModified\":\"2024-11-01T11:00:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36343\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36343\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36343\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating GAN Deep Learning and VAE 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":"Creating GAN Deep Learning and VAE 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\/36343\/","og_locale":"ko_KR","og_type":"article","og_title":"Creating GAN Deep Learning and VAE Using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction The advancements in artificial intelligence have increased the importance of Generative Models. Generative models play a role in generating data that is structurally different from each other, with GAN (Generative Adversarial Networks) and VAE (Variational Autoencoder) being widely used. This article will detail how to implement GAN and VAE using PyTorch. 2. GAN &hellip; \ub354 \ubcf4\uae30 \"Creating GAN Deep Learning and VAE Using PyTorch\"","og_url":"https:\/\/atmokpo.com\/w\/36343\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:47:40+00:00","article_modified_time":"2024-11-01T11:00:18+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\/36343\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36343\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Creating GAN Deep Learning and VAE Using PyTorch","datePublished":"2024-11-01T09:47:40+00:00","dateModified":"2024-11-01T11:00:18+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36343\/"},"wordCount":468,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["GAN deep learning course"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36343\/","url":"https:\/\/atmokpo.com\/w\/36343\/","name":"Creating GAN Deep Learning and VAE Using PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:47:40+00:00","dateModified":"2024-11-01T11:00:18+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36343\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36343\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36343\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Creating GAN Deep Learning and VAE 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\/36343","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=36343"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36343\/revisions"}],"predecessor-version":[{"id":36344,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36343\/revisions\/36344"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}