{"id":36397,"date":"2024-11-01T09:48:10","date_gmt":"2024-11-01T09:48:10","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36397"},"modified":"2024-11-01T11:00:05","modified_gmt":"2024-11-01T11:00:05","slug":"deep-learning-with-gans-using-pytorch-first-lstm-network","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36397\/","title":{"rendered":"Deep Learning with GANs Using PyTorch, First LSTM Network"},"content":{"rendered":"<p><body><\/p>\n<p>Deep learning is one of the most prominent technologies in the field of artificial intelligence today. It is used in various application areas, and particularly, GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) demonstrate remarkable performance in data generation and time series data processing, respectively. In this article, we will explore GAN and LSTM in detail using the PyTorch framework.<\/p>\n<h2>1. Overview of GAN (Generative Adversarial Network)<\/h2>\n<p>GAN is a generative model proposed by Ian Goodfellow and his colleagues in 2014. GAN consists of two neural networks (Generator and Discriminator). The Generator generates fake data from random noise, and the Discriminator&#8217;s role is to distinguish between real and fake data. These two networks compete and learn from each other.<\/p>\n<p>The process is as follows:<\/p>\n<ul>\n<li>The Generator takes random noise as input and generates fake data.<\/li>\n<li>The Discriminator receives the generated data and real data and classifies them as real or fake.<\/li>\n<li>The Discriminator learns not to misclassify fake data as real, while the Generator learns to produce more realistic data.<\/li>\n<\/ul>\n<h2>2. Overview of LSTM (Long Short-Term Memory) Network<\/h2>\n<p>LSTM is a type of RNN (Recurrent Neural Network) that excels in handling time series data or sequential data. LSTM cells have memory cells that can efficiently remember past information and control the forgetting process. This is particularly useful when dealing with long sequence data.<\/p>\n<p>The basic components of LSTM are as follows:<\/p>\n<ul>\n<li>Input Gate: Determines how much new information to remember.<\/li>\n<li>Forget Gate: Determines how much existing information to forget.<\/li>\n<li>Output Gate: Determines how much information to output from the current memory cell.<\/li>\n<\/ul>\n<h2>3. Introduction to PyTorch<\/h2>\n<p>PyTorch is an open-source machine learning framework developed by Facebook that supports dynamic computation graphs, making it easy to construct and train neural networks. It is also widely used in various fields such as computer vision and natural language processing.<\/p>\n<h2>4. Implementing GAN with PyTorch<\/h2>\n<h3>4.1 Environment Setup<\/h3>\n<p>Install PyTorch and the necessary packages. You can install them using pip as follows.<\/p>\n<pre><code>pip install torch torchvision<\/code><\/pre>\n<h3>4.2 Preparing the Dataset<\/h3>\n<p>Let&#8217;s implement a GAN to generate handwritten digits using the MNIST dataset as an example.<\/p>\n<pre><code>\nimport torch\nfrom torchvision import datasets, transforms\nfrom torch.utils.data import DataLoader\n\n# Load MNIST Dataset\ntransform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])\nmnist = datasets.MNIST(root='.\/data', train=True, download=True, transform=transform)\ndataloader = DataLoader(mnist, batch_size=64, shuffle=True)\n    <\/code><\/pre>\n<h3>4.3 Defining Generator and Discriminator<\/h3>\n<p>The Generator and Discriminator are implemented as neural networks. Each model can be defined as follows.<\/p>\n<pre><code>\nimport torch.nn as nn\n\n# Generator Model\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(),\n            nn.Linear(256, 512),\n            nn.ReLU(),\n            nn.Linear(512, 1024),\n            nn.ReLU(),\n            nn.Linear(1024, 28*28),\n            nn.Tanh()\n        )\n\n    def forward(self, z):\n        return self.model(z).view(-1, 1, 28, 28)  # Reshape to image format\n\n# Discriminator Model\nclass Discriminator(nn.Module):\n    def __init__(self):\n        super(Discriminator, self).__init__()\n        self.model = nn.Sequential(\n            nn.Flatten(),\n            nn.Linear(28*28, 512),\n            nn.LeakyReLU(0.2),\n            nn.Linear(512, 256),\n            nn.LeakyReLU(0.2),\n            nn.Linear(256, 1),\n            nn.Sigmoid()\n        )\n\n    def forward(self, img):\n        return self.model(img)\n    <\/code><\/pre>\n<h3>4.4 Setting Loss Function and Optimizer<\/h3>\n<p>The loss function used is Binary Cross Entropy, and the optimizer is Adam.<\/p>\n<pre><code>\nimport torch.optim as optim\n\n# Initialize models\ngenerator = Generator()\ndiscriminator = Discriminator()\n\n# Set loss function and optimizer\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    <\/code><\/pre>\n<h3>4.5 GAN Training Loop<\/h3>\n<p>Now, we can perform the training of the GAN. The Generator generates fake data, and the Discriminator judges it.<\/p>\n<pre><code>\nnum_epochs = 50\nfor epoch in range(num_epochs):\n    for i, (imgs, _) in enumerate(dataloader):\n        # Create 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)\n        d_loss_real = criterion(outputs, real_labels)\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\n        d_loss = d_loss_real + d_loss_fake\n        d_loss.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\n        g_loss.backward()\n        optimizer_G.step()\n\n    print(f'Epoch [{epoch+1}\/{num_epochs}], d_loss: {d_loss.item():.4f}, g_loss: {g_loss.item():.4f}')\n    <\/code><\/pre>\n<h3>4.6 Visualizing Generated Images<\/h3>\n<p>After training, we visualize the images generated by the Generator.<\/p>\n<pre><code>\nimport matplotlib.pyplot as plt\n\n# Change Generator model to evaluation mode\ngenerator.eval()\nz = torch.randn(64, 100)\nfake_imgs = generator(z).detach().numpy()\n\n# Output images\nplt.figure(figsize=(8, 8))\nfor i in range(64):\n    plt.subplot(8, 8, i + 1)\n    plt.imshow(fake_imgs[i][0], cmap='gray')\n    plt.axis('off')\nplt.show()\n    <\/code><\/pre>\n<h2>5. Implementing LSTM Network<\/h2>\n<h3>5.1 Time Series Data Prediction Using LSTM<\/h3>\n<p>LSTM also shows excellent performance in predicting time series data. We will look at an example where we implement a simple LSTM model to predict the values of the sine function.<\/p>\n<h3>5.2 Preparing the Data<\/h3>\n<p>We generate sine function data and prepare it for the LSTM model.<\/p>\n<pre><code>\nimport numpy as np\n\n# Generate data\ntime = np.arange(0, 100, 0.1)\ndata = np.sin(time)\n\n# Preprocess data for LSTM input\ndef create_sequences(data, seq_length):\n    sequences = []\n    labels = []\n    for i in range(len(data) - seq_length):\n        sequences.append(data[i:i+seq_length])\n        labels.append(data[i+seq_length])\n    return np.array(sequences), np.array(labels)\n\nseq_length = 10\nX, y = create_sequences(data, seq_length)\nX = X.reshape((X.shape[0], X.shape[1], 1))\n    <\/code><\/pre>\n<h3>5.3 Defining the LSTM Model<\/h3>\n<p>Now, we define the LSTM model.<\/p>\n<pre><code>\nclass LSTMModel(nn.Module):\n    def __init__(self):\n        super(LSTMModel, self).__init__()\n        self.lstm = nn.LSTM(input_size=1, hidden_size=50, num_layers=2, batch_first=True)\n        self.fc = nn.Linear(50, 1)\n        \n    def forward(self, x):\n        out, (hn, cn) = self.lstm(x)\n        out = self.fc(hn[-1])\n        return out\n    <\/code><\/pre>\n<h3>5.4 Setting Loss Function and Optimizer<\/h3>\n<pre><code>\nmodel = LSTMModel()\ncriterion = nn.MSELoss()\noptimizer = optim.Adam(model.parameters(), lr=0.001)\n    <\/code><\/pre>\n<h3>5.5 LSTM Training Loop<\/h3>\n<p>We set up the training loop to train the model.<\/p>\n<pre><code>\nnum_epochs = 100\nfor epoch in range(num_epochs):\n    model.train()\n    optimizer.zero_grad()\n    output = model(torch.FloatTensor(X))\n    loss = criterion(output, torch.FloatTensor(y).unsqueeze(1))\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}')\n    <\/code><\/pre>\n<h3>5.6 Visualizing the Prediction Results<\/h3>\n<p>After training is complete, we visualize the prediction results.<\/p>\n<pre><code>\nimport matplotlib.pyplot as plt\n\n# Prediction\nmodel.eval()\npredictions = model(torch.FloatTensor(X)).detach().numpy()\n\n# Visualize prediction results\nplt.figure(figsize=(12, 6))\nplt.plot(data, label='Real Data')\nplt.plot(np.arange(seq_length, seq_length + len(predictions)), predictions, label='Predicted Data', color='red')\nplt.legend()\nplt.show()\n    <\/code><\/pre>\n<h2>6. Conclusion<\/h2>\n<p>In this post, we explored GAN and LSTM. GAN is used as a generative model for generating data such as images, while LSTM is used as a prediction model for time series data. Both technologies are very important in their respective fields and can be easily implemented through PyTorch. Furthermore, we encourage you to explore various application methods and apply them to your own projects.<\/p>\n<h2>7. References<\/h2>\n<p>Please refer to the materials below for a deeper understanding of the topics covered in this post.<\/p>\n<ul>\n<li><a href=\"https:\/\/pytorch.org\/docs\/stable\/index.html\">Official PyTorch Documentation<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/1406.2661\">GAN Paper<\/a><\/li>\n<li><a href=\"https:\/\/www.bioinf.jku.at\/publications\/2019\/Schmidhuber_VCH_2019.pdf\">LSTM Paper<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deep learning is one of the most prominent technologies in the field of artificial intelligence today. It is used in various application areas, and particularly, GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) demonstrate remarkable performance in data generation and time series data processing, respectively. In this article, we will explore GAN and LSTM &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36397\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Deep Learning with GANs Using PyTorch, First LSTM Network&#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-36397","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 GANs Using PyTorch, First LSTM Network - \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\/36397\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Learning with GANs Using PyTorch, First LSTM Network - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Deep learning is one of the most prominent technologies in the field of artificial intelligence today. It is used in various application areas, and particularly, GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) demonstrate remarkable performance in data generation and time series data processing, respectively. In this article, we will explore GAN and LSTM &hellip; \ub354 \ubcf4\uae30 &quot;Deep Learning with GANs Using PyTorch, First LSTM Network&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36397\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:48:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:00:05+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=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36397\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36397\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Deep Learning with GANs Using PyTorch, First LSTM Network\",\"datePublished\":\"2024-11-01T09:48:10+00:00\",\"dateModified\":\"2024-11-01T11:00:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36397\/\"},\"wordCount\":612,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"GAN deep learning course\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36397\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36397\/\",\"name\":\"Deep Learning with GANs Using PyTorch, First LSTM Network - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:48:10+00:00\",\"dateModified\":\"2024-11-01T11:00:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36397\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36397\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36397\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Learning with GANs Using PyTorch, First LSTM Network\"}]},{\"@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 GANs Using PyTorch, First LSTM Network - \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\/36397\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Learning with GANs Using PyTorch, First LSTM Network - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Deep learning is one of the most prominent technologies in the field of artificial intelligence today. It is used in various application areas, and particularly, GAN (Generative Adversarial Network) and LSTM (Long Short-Term Memory) demonstrate remarkable performance in data generation and time series data processing, respectively. In this article, we will explore GAN and LSTM &hellip; \ub354 \ubcf4\uae30 \"Deep Learning with GANs Using PyTorch, First LSTM Network\"","og_url":"https:\/\/atmokpo.com\/w\/36397\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:48:10+00:00","article_modified_time":"2024-11-01T11:00:05+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":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36397\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36397\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Deep Learning with GANs Using PyTorch, First LSTM Network","datePublished":"2024-11-01T09:48:10+00:00","dateModified":"2024-11-01T11:00:05+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36397\/"},"wordCount":612,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["GAN deep learning course"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36397\/","url":"https:\/\/atmokpo.com\/w\/36397\/","name":"Deep Learning with GANs Using PyTorch, First LSTM Network - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:48:10+00:00","dateModified":"2024-11-01T11:00:05+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36397\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36397\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36397\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Deep Learning with GANs Using PyTorch, First LSTM Network"}]},{"@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\/36397","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=36397"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36397\/revisions"}],"predecessor-version":[{"id":36398,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36397\/revisions\/36398"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}