{"id":911,"date":"2022-11-30T12:44:00","date_gmt":"2022-11-30T07:14:00","guid":{"rendered":"https:\/\/geekpython.in\/?p=911"},"modified":"2023-08-15T15:41:25","modified_gmt":"2023-08-15T10:11:25","slug":"data-augmentation-in-deep-learning","status":"publish","type":"post","link":"https:\/\/geekpython.in\/data-augmentation-in-deep-learning","title":{"rendered":"An Intuitive Guide On Data Augmentation In Deep Learning &#8211; Techniques With Examples"},"content":{"rendered":"\n<p>Data is the main spice in the recipe of machine learning and deep learning. It is said that a good amount of data is responsible for developing a better-performing AI model.<\/p>\n\n\n\n<p>Nowadays, many&nbsp;<strong>AI-based<\/strong>&nbsp;services and applications are driven by&nbsp;<strong>deep learning<\/strong>. These services and applications are based on deep-learning models and the accuracy of the deep-learning models highly depends on the quantity and quality of the training data. However, data scarcity is a significant challenge in building accurate deep-learning models.<\/p>\n\n\n\n<p>Companies fulfill the need for data by using the\u00a0<strong>data augmentation<\/strong>\u00a0technique that reduces the work of collecting and preparing training data beforehand supplying it to the model.<\/p>\n\n\n\n<p>In this article, you&#8217;ll be introduced to &#8211;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What is data augmentation?<\/strong><\/li>\n\n\n\n<li><strong>Why do we need data augmentation?<\/strong><\/li>\n\n\n\n<li><strong>How does data augmentation work?<\/strong><\/li>\n\n\n\n<li><strong>Advanced models for data augmentation<\/strong><\/li>\n\n\n\n<li><strong>Demonstration of data augmentation<\/strong><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"heading-what-is-data-augmentation\"><a href=\"https:\/\/geekpython.in\/data-augmentation-in-deep-learning#heading-what-is-data-augmentation\"><\/a>What is data augmentation?<\/h1>\n\n\n\n<p><strong>Data augmentation<\/strong>&nbsp;is a process of increasing the quantity of data artificially by generating new data points from the existing data. This includes adding minor alterations to the data or using machine learning models to generate new data points.<\/p>\n\n\n\n<p>If you are working with image data, then augmenting that data would be flipping the images horizontally and vertically, increasing or decreasing the brightness, skewing, rotating, shifting the position, and more.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"heading-why-do-we-need-data-augmentation\"><a href=\"https:\/\/geekpython.in\/data-augmentation-in-deep-learning#heading-why-do-we-need-data-augmentation\"><\/a>Why do we need data augmentation?<\/h1>\n\n\n\n<p>In production use cases, collecting the training data can be costly and highly time-consuming. However, the company uses data augmentation, an effective and low-cost method that cuts off the work of collection and preparation of new data.<\/p>\n\n\n\n<p>Data augmentation is useful for improving the performance of the machine learning model which will eventually affect the outcome in a good way by diversifying the dataset.<\/p>\n\n\n\n<p>The machine learning model&#8217;s accuracy completely depends on the dataset&#8217;s quality, quantity and representability. Collecting and cleaning the new data may increase the risk of the existing data being less accurate and representable. Data augmentation techniques help produce new variations from the current data that make the machine-learning model more robust and perform well for real-world inputs.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"heading-how-does-data-augmentation-work\"><a href=\"https:\/\/geekpython.in\/data-augmentation-in-deep-learning#heading-how-does-data-augmentation-work\"><\/a>How does data augmentation work?<\/h1>\n\n\n\n<p>Data augmentation is about making minor changes to the existing data to produce new variations. These are done by passing the dataset to transformation functions that perform transformation and then produce a new dataset.<\/p>\n\n\n\n<p>Here&#8217;s an illustration that will explain the workflow of the data augmentation process in which a sequence of transformation functions are applied by human experts.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"448\" src=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/Data-1024x448.png\" alt=\"Figure: Workflow of the heuristic data augmentation\" class=\"wp-image-919\" srcset=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/Data-1024x448.png 1024w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/Data-300x131.png 300w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/Data-768x336.png 768w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/Data-1536x672.png 1536w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/Data.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>A usual workflow of heuristic data augmentation has the following steps:<\/p>\n\n\n\n<p>a. The data is fed to the data augmentation pipeline containing the sequence of transformation functions.<\/p>\n\n\n\n<p>b. The data augmentation pipeline is defined by the sequential steps of different augmentations to produce different variations of each data point.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>TF1 &#8211; Flipping<\/strong><\/li>\n\n\n\n<li><strong>TF2 &#8211; Blur<\/strong><\/li>\n\n\n\n<li><strong>TF3 &#8211; Rotation<\/strong><\/li>\n\n\n\n<li><strong>TF4 &#8211; Skewing<\/strong><\/li>\n\n\n\n<li><strong>TF5 &#8211; Grayscale to RGB<\/strong><\/li>\n\n\n\n<li><strong>TFn &#8211; Brightness<\/strong><\/li>\n<\/ul>\n\n\n\n<p>c. The image is then fed to the data augmentation pipeline and processed through each step of the transformation function.<\/p>\n\n\n\n<p>d. After the image is processed, a human expert verifies the augmented results.<\/p>\n\n\n\n<p>e. After the verification process, the augmented results are now ready to use by the AI model for training.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Heuristic data augmentation is used to work with models that will classify images<\/strong>.<\/p>\n<\/blockquote>\n\n\n\n<p>Data augmentation is less prevalent in the&nbsp;<strong>NLP<\/strong>&nbsp;(Natural Language Processing) field than in image data. The main reason is the complexity of the natural language makes it difficult to automate the process of augmenting the text data.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"heading-models-for-data-augmentation\"><a href=\"https:\/\/geekpython.in\/data-augmentation-in-deep-learning#heading-models-for-data-augmentation\"><\/a>Models for data augmentation<\/h1>\n\n\n\n<p>Some popular open-source Python packages for data augmentation available are ImageDataGenerator from Keras, Skimage, and OpenCV.<\/p>\n\n\n\n<p>But there are also some advanced models for data augmentation available that gained popularity lately.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Adversarial machine learning<\/strong>: It injects deceptive inputs to deceive the classifiers in the machine-learning models.<\/li>\n\n\n\n<li><strong>Generative adversarial networks (GANs)<\/strong>: GANs algorithms are used to learn the pattern or regularities from the input data and automatically create new data containing features drawn from the original data.<\/li>\n\n\n\n<li><strong>Neural style transfer<\/strong>: is used to generate images with the same content as the original image but in our chosen image&#8217;s visual style or appearance.<\/li>\n<\/ul>\n\n\n\n<p><strong>For Natural Language Processing<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Easy Data Augmentation (EDA)<\/strong>: consists of four simple but powerful operations that are synonym replacement, random insertion, random swap, and random deletion.<\/li>\n\n\n\n<li><strong>Back translation<\/strong>: data is re-translated back to the original language from the target language means translation from Hindi to English.<\/li>\n\n\n\n<li><a target=\"_blank\" href=\"https:\/\/ai.stanford.edu\/blog\/contextual\/\" rel=\"noreferrer noopener\"><strong>Contextualized<\/strong><\/a>&nbsp;word embeddings<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"heading-demonstration-of-data-augmentation\"><a href=\"https:\/\/geekpython.in\/data-augmentation-in-deep-learning#heading-demonstration-of-data-augmentation\"><\/a>Demonstration of data augmentation<\/h1>\n\n\n\n<p>For demonstration purposes, you&#8217;re going to see the data augmentation techniques for the image using a deep-learning library called&nbsp;<strong>Keras<\/strong>&nbsp;that provides a utility called&nbsp;<strong>ImageDataGenerator<\/strong>.<\/p>\n\n\n\n<p>Let&#8217;s start coding the process of augmenting the image data and here is the preview of the sample image that will be used.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\" src=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/cat.png\" alt=\"Sample Image for Augmenting\" class=\"wp-image-924\" srcset=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/cat.png 400w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/cat-240x300.png 240w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Image Credit<\/strong>: Photo by&nbsp;<a target=\"_blank\" href=\"https:\/\/unsplash.com\/@juanman61?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" rel=\"noreferrer noopener\">Juan Manuel Sanchez<\/a>&nbsp;on&nbsp;<a target=\"_blank\" href=\"https:\/\/unsplash.com\/images\/animals\/cat?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" rel=\"noreferrer noopener\">Unsplash<\/a>.<\/p>\n<\/blockquote>\n\n\n\n<p>The augmentation techniques you&#8217;re going to see are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Random Shift (Width and Height)<\/li>\n\n\n\n<li>Random Flip (Horizontal and Vertical)<\/li>\n\n\n\n<li>Image Rotation<\/li>\n\n\n\n<li>Random Brightening<\/li>\n<\/ul>\n\n\n\n<p>Visit my&nbsp;<a target=\"_blank\" href=\"https:\/\/github.com\/Sachin-crypto\/Image-Augmentation-Using-Keras\" rel=\"noreferrer noopener\">GitHub<\/a>&nbsp;repository to learn additional data-augmenting techniques.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"heading-random-shift\"><a href=\"https:\/\/geekpython.in\/data-augmentation-in-deep-learning#heading-random-shift\"><\/a>Random Shift<\/h3>\n\n\n\n<p>In the following notebook, we are randomly shifting the image by width and height.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">import numpy as np\nimport matplotlib.pyplot as plt\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.utils import load_img, img_to_array\n\n# Preview of the image we will work on\nimg = load_img('\/content\/drive\/MyDrive\/Sample\/resized_cat.jpg')\n\n# Random Shift\npic = img_to_array(img)\npic_sample = np.expand_dims(pic, axis=0)\n\ndata = ImageDataGenerator(width_shift_range=[10, 50], height_shift_range=[30, 70])\naug_data = data.flow(pic_sample, batch_size=1)\n\nfig, axes = plt.subplots(1, 10, figsize=(30, 40))\n\nfor i in range(10):\n  # Accessing each sample\n  aug_img = next(aug_data)\n  # Converting to unsigned integer\n  aug_result = aug_img[0].astype('uint8')\n  # Showing augmented images\n  axes[i].imshow(aug_result)\n  axes[i].axis('off')<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"117\" src=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_shift-1024x117.png\" alt=\"\" class=\"wp-image-920\" srcset=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_shift-1024x117.png 1024w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_shift-300x34.png 300w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_shift-768x88.png 768w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_shift.png 1240w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>First, we imported the required libraries and loaded our image and then we converted the image into an array and expanded the dimension of the array.<\/p>\n\n\n\n<p>Next, we instantiated the&nbsp;<code>ImageDataGenerator<\/code>&nbsp;class and specified the operation&nbsp;<code>width_shift_range=[10, 50], height_shift_range=[30, 70]<\/code>&nbsp;and then passed the sample image to the&nbsp;<strong><em>ImageDataGenerator<\/em><\/strong>&nbsp;for generating the processed images.<\/p>\n\n\n\n<p>To see the augmented results, we iterated over the original image, converted it into an unsigned integer, and then plotted the augmented samples.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"heading-random-flip\"><a href=\"https:\/\/geekpython.in\/data-augmentation-in-deep-learning#heading-random-flip\"><\/a>Random Flip<\/h3>\n\n\n\n<p>We are doing the same process but this time we changed the augmenting technique and specified the operation&nbsp;<code>horizontal_flip=True, vertical_flip=True<\/code>&nbsp;that will randomly flip the images horizontally and vertically.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"expand-toggle:false lang:python decode:true \">import numpy as np\nimport matplotlib.pyplot as plt\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.utils import load_img, img_to_array\n\n# Preview of the image we will work on\nimg = load_img('\/content\/drive\/MyDrive\/Sample\/resized_cat.jpg')\n\n# Random flip\npic = img_to_array(img)\npic_sample = np.expand_dims(pic, axis=0)\n\ndata = ImageDataGenerator(horizontal_flip=True, vertical_flip=True)\naug_data = data.flow(pic_sample, batch_size=1)\n\nfig, axes = plt.subplots(1, 10, figsize=(30, 40))\n\nfor i in range(10):\n  # Accessing each sample\n  aug_img = next(aug_data)\n  # Converting to unsigned integer\n  aug_result = aug_img[0].astype('uint8')\n  # Showing augmented images\n  axes[i].imshow(aug_result)\n  axes[i].axis('off')<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"117\" src=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_flip-1024x117.png\" alt=\"\" class=\"wp-image-921\" srcset=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_flip-1024x117.png 1024w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_flip-300x34.png 300w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_flip-768x88.png 768w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_flip.png 1249w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"heading-rotation\">Rotation<\/h3>\n\n\n\n<p>To generate the rotated images, we specified&nbsp;<code>rotation_range=50<\/code>&nbsp;that will randomly generate the images within the specified range.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">import numpy as np\nimport matplotlib.pyplot as plt\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.utils import load_img, img_to_array\n\n# Preview of the image we will work on\nimg = load_img('\/content\/drive\/MyDrive\/Sample\/resized_cat.jpg')\n\n# Rotation\npic = img_to_array(img)\npic_sample = np.expand_dims(pic, axis=0)\n\ndata = ImageDataGenerator(rotation_range=50)\naug_data = data.flow(pic_sample, batch_size=1)\n\nfig, axes = plt.subplots(1, 5, figsize=(30, 40))\n\nfor i in range(5):\n  # Accessing each sample\n  aug_img = next(aug_data)\n  # Converting to unsigned integer\n  aug_result = aug_img[0].astype('uint8')\n  # Showing augmented images\n  axes[i].imshow(aug_result)\n  axes[i].axis('off')<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"230\" src=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/rotation-1024x230.png\" alt=\"\" class=\"wp-image-922\" srcset=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/rotation-1024x230.png 1024w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/rotation-300x68.png 300w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/rotation-768x173.png 768w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/rotation.png 1244w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"heading-random-brightness\">Random Brightness<\/h3>\n\n\n\n<p>Here, we are randomly increasing and decreasing the brightness of the image by providing&nbsp;<code>brightness_range=[0.5, 1.5]<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">import numpy as np\nimport matplotlib.pyplot as plt\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.utils import load_img, img_to_array\n\n# Preview of the image we will work on\nimg = load_img('\/content\/drive\/MyDrive\/Sample\/resized_cat.jpg')\n\n# Random Brightness\npic = img_to_array(img)\npic_sample = np.expand_dims(pic, axis=0)\n\ndata = ImageDataGenerator(brightness_range=[0.5, 1.5])\naug_data = data.flow(pic_sample, batch_size=1)\n\nfig, axes = plt.subplots(1, 5, figsize=(30, 40))\n\nfor i in range(5):\n  # Accessing each sample\n  aug_img = next(aug_data)\n  # Converting to unsigned integer\n  aug_result = aug_img[0].astype('uint8')\n  # Showing augmented images\n  axes[i].imshow(aug_result)\n  axes[i].axis('off')<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"229\" src=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_bright-1024x229.png\" alt=\"\" class=\"wp-image-923\" srcset=\"https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_bright-1024x229.png 1024w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_bright-300x67.png 300w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_bright-768x172.png 768w, https:\/\/geekpython.in\/wp-content\/uploads\/2023\/08\/random_bright.png 1247w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"heading-conclusion\">Conclusion<\/h1>\n\n\n\n<p>Data augmentation is useful when there is less amount of data or is often used for reducing the load of collecting and preparing new data. Many companies see it as a low-cost and effective method to train their AI models.<\/p>\n\n\n\n<p>Data augmentation is more popular with image data than in the NLP domain. The complexity of natural language makes it harder to automate the augmentation of text data.<\/p>\n\n\n\n<p>Let&#8217;s point out the topics you&#8217;ve learned in this article:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What is data augmentation?<\/strong><\/li>\n\n\n\n<li><strong>Why need data augmentation?<\/strong><\/li>\n\n\n\n<li><strong>How does it work?<\/strong><\/li>\n\n\n\n<li><strong>Models for data augmentation<\/strong><\/li>\n<\/ul>\n\n\n\n<p>With all that, you&#8217;ve seen the example of performing the different augmenting techniques on image data like<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Randomly shifting the image<\/strong><\/li>\n\n\n\n<li><strong>Increasing and decreasing the brightness<\/strong><\/li>\n\n\n\n<li><strong>Flipping the image horizontally and vertically<\/strong><\/li>\n\n\n\n<li><strong>Rotating the image<\/strong><\/li>\n<\/ul>\n\n\n\n<p>There are only four examples shown but if you want to see more augmenting techniques, visit&nbsp;<a target=\"_blank\" href=\"https:\/\/github.com\/Sachin-crypto\/Image-Augmentation-Using-Keras\" rel=\"noreferrer noopener\">GitHub<\/a>&nbsp;for source code.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\ud83c\udfc6<strong>Other articles you might like<\/strong><\/p>\n\n\n\n<p>\u2705<a target=\"_blank\" href=\"https:\/\/geekpython.in\/flask-app-for-image-recognition\" rel=\"noreferrer noopener\">How to implement a custom deep learning model into the Flask app for image recognition<\/a>.<\/p>\n\n\n\n<p>\u2705<a target=\"_blank\" href=\"https:\/\/geekpython.in\/argmax-function-in-numpy-and-tensorflow\" rel=\"noreferrer noopener\">Numpy and TensorFlow have a common function<\/a>.<\/p>\n\n\n\n<p>\u2705<a target=\"_blank\" href=\"https:\/\/geekpython.in\/merging-tailwindcss-into-flask-apps\" rel=\"noreferrer noopener\">Merge the TailwindCSS into Flask apps to make more interactive webpages<\/a>.<\/p>\n\n\n\n<p>\u2705<a target=\"_blank\" href=\"https:\/\/geekpython.in\/multiple-inputs-in-python\" rel=\"noreferrer noopener\">Take multiple inputs from the user in a single command<\/a>.<\/p>\n\n\n\n<p>\u2705<a target=\"_blank\" href=\"https:\/\/geekpython.in\/shutil-module-in-python\" rel=\"noreferrer noopener\">Perform high-level file operations using the shutil module<\/a>.<\/p>\n\n\n\n<p>\u2705<a target=\"_blank\" href=\"https:\/\/geekpython.in\/zip-function-in-python-usage-and-examples-with-code\" rel=\"noreferrer noopener\">Learn how to iterate multiple iterables parallelly<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>That&#8217;s all for now<\/strong><\/p>\n\n\n\n<p><strong>Keep Coding\u270c\u270c<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data is the main spice in the recipe of machine learning and deep learning. It is said that a good amount of data is responsible for developing a better-performing AI model. Nowadays, many&nbsp;AI-based&nbsp;services and applications are driven by&nbsp;deep learning. These services and applications are based on deep-learning models and the accuracy of the deep-learning models [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":926,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[2,4],"tags":[54,12,31],"class_list":["post-911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","category-dl","tag-keras","tag-python","tag-python3","entry","has-media"],"_links":{"self":[{"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/posts\/911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/comments?post=911"}],"version-history":[{"count":9,"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/posts\/911\/revisions"}],"predecessor-version":[{"id":1339,"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/posts\/911\/revisions\/1339"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/media\/926"}],"wp:attachment":[{"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/media?parent=911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/categories?post=911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geekpython.in\/wp-json\/wp\/v2\/tags?post=911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}