{"id":36329,"date":"2024-11-01T09:47:34","date_gmt":"2024-11-01T09:47:34","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36329"},"modified":"2024-11-01T11:00:22","modified_gmt":"2024-11-01T11:00:22","slug":"deep-learning-with-gan-using-pytorch-mdn-rnn-training","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36329\/","title":{"rendered":"Deep Learning with GAN using PyTorch, MDN-RNN Training"},"content":{"rendered":"<p><body><\/p>\n<h2>1. Introduction<\/h2>\n<p>With the advancement of deep learning technologies, innovative architectures such as Generative Adversarial Networks (GANs) and Mixture Density Networks (MDN) are being researched. GAN is a generative model that can create new images based on data, and MDN-RNN is a model optimized for handling time series data. This article will detail how to implement GAN and MDN-RNN using the PyTorch framework.<\/p>\n<h2>2. GAN (Generative Adversarial Networks)<\/h2>\n<p>GAN consists of two artificial neural networks: a generator and a discriminator. The generator creates data that is similar to real data, and the discriminator determines whether the data is real or generated. This structure is achieved through adversarial training, where the two networks improve by competing with each other. GAN is used in various fields and has shown outstanding results in image generation, style transfer, and more.<\/p>\n<h3>2.1 Basic Structure of GAN<\/h3>\n<p>GAN is composed of the following basic components:<\/p>\n<ul>\n<li><strong>Generator:<\/strong> Takes random noise as input to generate data.<\/li>\n<li><strong>Discriminator:<\/strong> Determines whether the input data is real or generated.<\/li>\n<\/ul>\n<h3>2.2 PyTorch Implementation of GAN<\/h3>\n<p>Below is an example of implementing the basic structure of GAN in PyTorch.<\/p>\n<h4>Code Example<\/h4>\n<pre><code>\nimport torch\nimport torch.nn as nn\nimport torch.optim as optim\n\n# Generator Network\nclass Generator(nn.Module):\n    def __init__(self, input_dim, output_dim):\n        super(Generator, self).__init__()\n        self.model = nn.Sequential(\n            nn.Linear(input_dim, 128),\n            nn.ReLU(),\n            nn.Linear(128, output_dim),\n            nn.Tanh()\n        )\n\n    def forward(self, x):\n        return self.model(x)\n\n# Discriminator Network\nclass Discriminator(nn.Module):\n    def __init__(self, input_dim):\n        super(Discriminator, self).__init__()\n        self.model = nn.Sequential(\n            nn.Linear(input_dim, 128),\n            nn.LeakyReLU(0.2),\n            nn.Linear(128, 1),\n            nn.Sigmoid()\n        )\n\n    def forward(self, x):\n        return self.model(x)\n\n# Hyperparameter settings\nlr = 0.0002\ninput_dim = 100  # Generator input size\noutput_dim = 784  # Example: MNIST's 28x28=784\nnum_epochs = 200\n\n# Model initialization\nG = Generator(input_dim, output_dim)\nD = Discriminator(output_dim)\n\n# Loss function and optimizer settings\ncriterion = nn.BCELoss()\noptimizer_G = optim.Adam(G.parameters(), lr=lr)\noptimizer_D = optim.Adam(D.parameters(), lr=lr)\n\n# Training loop\nfor epoch in range(num_epochs):\n    # Prepare real data and labels\n    real_data = torch.randn(128, output_dim)  # Example real data\n    real_labels = torch.ones(128, 1)\n\n    # Train Generator\n    optimizer_G.zero_grad()\n    noise = torch.randn(128, input_dim)\n    fake_data = G(noise)\n    fake_labels = torch.zeros(128, 1)\n    \n    output = D(fake_data)\n    loss_G = criterion(output, fake_labels)\n    loss_G.backward()\n    optimizer_G.step()\n\n    # Train Discriminator\n    optimizer_D.zero_grad()\n    \n    output_real = D(real_data)\n    output_fake = D(fake_data.detach())  # No gradient calculation\n    loss_D_real = criterion(output_real, real_labels)\n    loss_D_fake = criterion(output_fake, fake_labels)\n    \n    loss_D = loss_D_real + loss_D_fake\n    loss_D.backward()\n    optimizer_D.step()\n\n    if epoch % 10 == 0:\n        print(f'Epoch [{epoch}\/{num_epochs}], Loss D: {loss_D.item():.4f}, Loss G: {loss_G.item():.4f}')\n    <\/code><\/pre>\n<h2>3. MDN-RNN (Mixture Density Networks &#8211; Recurrent Neural Networks)<\/h2>\n<p>MDN-RNN is a technique that combines Mixture Density Networks (MDN) with RNN to model the predictive distribution at each time step. MDN is a network that uses multiple Gaussian distributions, enabling the generation of continuous probability distributions for given inputs. RNN is an effective structure for processing time series data.<\/p>\n<h3>3.1 Basic Principle of MDN-RNN<\/h3>\n<p>MDN-RNN learns the probability distribution of outputs based on the input sequence. It consists of the following elements:<\/p>\n<ul>\n<li><strong>RNN:<\/strong> Processes sequential data and updates the internal state.<\/li>\n<li><strong>MDN:<\/strong> Generates a mixture Gaussian distribution based on the output of the RNN.<\/li>\n<\/ul>\n<h3>3.2 PyTorch Implementation of MDN-RNN<\/h3>\n<p>Below is an example of implementing the basic structure of MDN-RNN in PyTorch.<\/p>\n<h4>Code Example<\/h4>\n<pre><code>\nimport torch\nimport torch.nn as nn\nimport torch.optim as optim\n\nclass MDN_RNN(nn.Module):\n    def __init__(self, input_dim, hidden_dim, output_dim, num_mixtures):\n        super(MDN_RNN, self).__init__()\n        self.rnn = nn.GRU(input_dim, hidden_dim, batch_first=True)\n        self.fc = nn.Linear(hidden_dim, num_mixtures * (output_dim + 2))  # Mean, variance, and weight for each distribution\n        self.num_mixtures = num_mixtures\n        self.output_dim = output_dim\n\n    def forward(self, x):\n        batch_size, seq_length, _ = x.size()\n        h_0 = torch.zeros(1, batch_size, hidden_dim).to(x.device)\n        rnn_out, _ = self.rnn(x, h_0)\n        \n        output = self.fc(rnn_out[:, -1, :])  # Output from the last time step\n        output = output.view(batch_size, self.num_mixtures, -1)\n        return output\n\n# Hyperparameter settings\ninput_dim = 1 \nhidden_dim = 64\noutput_dim = 1  \nnum_mixtures = 5  \nlr = 0.001\nnum_epochs = 100\n\nmodel = MDN_RNN(input_dim, hidden_dim, output_dim, num_mixtures)\noptimizer = optim.Adam(model.parameters(), lr=lr)\ncriterion = nn.MSELoss()  # Loss function settings\n\n# Training loop\nfor epoch in range(num_epochs):\n    for series in train_loader:  # train_loader consists of time series data\n        optimizer.zero_grad()\n        \n        # Input sequence data\n        input_seq = series[:, :-1, :].to(device)\n        target = series[:, -1, :].to(device)\n        \n        # Model prediction\n        output = model(input_seq)\n        loss = criterion(output, target)  # Loss calculation (simplistic example)\n        \n        loss.backward()\n        optimizer.step()\n    \n    print(f'Epoch [{epoch}\/{num_epochs}], Loss: {loss.item():.4f}')\n    <\/code><\/pre>\n<h2>4. Conclusion<\/h2>\n<p>The advancement of deep learning has a significant impact across numerous fields. GAN and MDN-RNN, due to their unique characteristics, have the potential to solve various problems. The process of implementing these models using PyTorch is complex, but the example code provided in this article aims to help you understand and utilize them easily.<\/p>\n<p>We encourage you to explore and research various applications utilizing GAN and MDN-RNN in the future. These models are expected to evolve further in fields such as art, finance, and natural language processing.<\/p>\n<h2>5. Additional Resources<\/h2>\n<p>If you want a deeper understanding, refer to the following resources:<\/p>\n<ul>\n<li><a href=\"https:\/\/arxiv.org\/abs\/1406.2661\">Generative Adversarial Nets (GAN)<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/1606.09599\">Mixture Density Networks<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction With the advancement of deep learning technologies, innovative architectures such as Generative Adversarial Networks (GANs) and Mixture Density Networks (MDN) are being researched. GAN is a generative model that can create new images based on data, and MDN-RNN is a model optimized for handling time series data. This article will detail how to &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36329\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Deep Learning with GAN using PyTorch, MDN-RNN Training&#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-36329","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>Deep Learning with GAN using PyTorch, MDN-RNN Training - \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\/36329\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Learning with GAN using PyTorch, MDN-RNN Training - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction With the advancement of deep learning technologies, innovative architectures such as Generative Adversarial Networks (GANs) and Mixture Density Networks (MDN) are being researched. GAN is a generative model that can create new images based on data, and MDN-RNN is a model optimized for handling time series data. This article will detail how to &hellip; \ub354 \ubcf4\uae30 &quot;Deep Learning with GAN using PyTorch, MDN-RNN Training&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36329\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:47:34+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\/36329\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36329\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Deep Learning with GAN using PyTorch, MDN-RNN Training\",\"datePublished\":\"2024-11-01T09:47:34+00:00\",\"dateModified\":\"2024-11-01T11:00:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36329\/\"},\"wordCount\":421,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"GAN deep learning course\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36329\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36329\/\",\"name\":\"Deep Learning with GAN using PyTorch, MDN-RNN Training - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:47:34+00:00\",\"dateModified\":\"2024-11-01T11:00:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36329\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36329\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36329\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Learning with GAN using PyTorch, MDN-RNN Training\"}]},{\"@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":"Deep Learning with GAN using PyTorch, MDN-RNN Training - \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\/36329\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Learning with GAN using PyTorch, MDN-RNN Training - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction With the advancement of deep learning technologies, innovative architectures such as Generative Adversarial Networks (GANs) and Mixture Density Networks (MDN) are being researched. GAN is a generative model that can create new images based on data, and MDN-RNN is a model optimized for handling time series data. This article will detail how to &hellip; \ub354 \ubcf4\uae30 \"Deep Learning with GAN using PyTorch, MDN-RNN Training\"","og_url":"https:\/\/atmokpo.com\/w\/36329\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:47:34+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\/36329\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36329\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Deep Learning with GAN using PyTorch, MDN-RNN Training","datePublished":"2024-11-01T09:47:34+00:00","dateModified":"2024-11-01T11:00:22+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36329\/"},"wordCount":421,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["GAN deep learning course"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36329\/","url":"https:\/\/atmokpo.com\/w\/36329\/","name":"Deep Learning with GAN using PyTorch, MDN-RNN Training - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:47:34+00:00","dateModified":"2024-11-01T11:00:22+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36329\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36329\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36329\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Deep Learning with GAN using PyTorch, MDN-RNN Training"}]},{"@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\/36329","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=36329"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36329\/revisions"}],"predecessor-version":[{"id":36330,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36329\/revisions\/36330"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}