{"id":10285,"date":"2021-01-24T08:24:40","date_gmt":"2021-01-24T16:24:40","guid":{"rendered":"https:\/\/www.springboard.com\/?p=10285"},"modified":"2022-08-22T04:15:36","modified_gmt":"2022-08-22T11:15:36","slug":"springboard-tutorial-top-machine-learning-frameworks","status":"publish","type":"post","link":"https:\/\/www.springboard.com\/blog\/data-science\/springboard-tutorial-top-machine-learning-frameworks\/","title":{"rendered":"Springboard Tutorial: An Overview of Top Machine Learning Frameworks"},"content":{"rendered":"\n<p><span style=\"font-weight: 400;\">According to Gartner, 85 percent of machine learning projects fail, leaving most organizations without a positive ROI.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">To avoid spending unnecessary time, money, and energy reinventing the wheel, many organizations have started employing machine learning frameworks. These frameworks simplify the process of algorithm development for engineers, making ML easier, more scalable, and more accessible. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Machine learning frameworks support basic tensor operations (math behind algorithms), automatic differentiation (to prevent calculation errors through backpropagation, a method of doing forward and then backward passes to compute the gradient), and systems techniques, like minibatching and Adam optimization. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The most popular machine learning frameworks have strong community support, usually with major company backing. Which framework you choose, depends on your goals: what problem you\u2019re looking to solve, how much experience you have, and how quickly you need results.<\/span><\/p>\n\n\n\n<p><em>Want to learn more about becoming a machine learning engineer? Check out Springboard&#8217;s comprehensive career guide here.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Four key machine learning frameworks<\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Here\u2019s an overview of four key frameworks:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"879\" height=\"635\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.50.25-AM.png\" alt=\"mle frameworks comparison\" class=\"wp-image-10289\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.50.25-AM.png 879w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.50.25-AM-400x289.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.50.25-AM-768x555.png 768w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.50.25-AM-380x275.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.50.25-AM-700x506.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.50.25-AM-380x275.png 420w\" sizes=\"(max-width: 879px) 100vw, 879px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><b>SciKit-Learn<\/b><\/h3>\n\n\n\n<p><a href=\"https:\/\/scikit-learn.org\/stable\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">SciKit<\/span><\/a><span style=\"font-weight: 400;\"> is a popular free machine learning library in Python that is built on NumPy, (an extremely important library for <a href=\"https:\/\/www.springboard.com\/blog\/data-science\/what-does-a-data-scientist-do\/\" data-type=\"post\" data-id=\"24427\">data scientists<\/a> and machine learning enthusiasts)<\/span> <span style=\"font-weight: 400;\">SciPy, and matplotlib. You can use it for classification, regression, clustering, dimensionality reduction, model selection, K-nearest neighbor, support-vector machines (SVMs), stochastic gradient descent models, and preprocessing (feature extraction and normalization). <\/span><\/p>\n\n\n\n<p><em>More reading: <a href=\"https:\/\/learn.springboard.com\/school-of-data\/white-paper\/how-a-machine-learning-algorithm-helped-make-hurricane-damage-assessments-safer-cheaper-and-more-effective\/\" target=\"_blank\" rel=\"noopener\">How a Machine Learning Algorithm Helped Make Hurricane Damage Assessments Safer, Cheaper, and More Effective<\/a><\/em><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">This <\/span><a href=\"https:\/\/www.dataquest.io\/blog\/sci-kit-learn-tutorial\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">tutorial<\/span><\/a><span style=\"font-weight: 400;\"> walks you through the process of importing the <\/span><a href=\"https:\/\/www.ibm.com\/communities\/analytics\/watson-analytics-blog\/sales-win-loss-sample-dataset\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Sales_Win_Loss data set<\/span><\/a><span style=\"font-weight: 400;\"> from IBM\u2019s Watson repository with the pandas module and using Scikit-learn to create a model to predict the effectiveness of various sales campaigns. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">This is an example of displaying data with the head() method. The tail() method is similar, but it returns the last few records instead. <\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"761\" height=\"528\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.38-AM.png\" alt=\"scikit learn springboard\" class=\"wp-image-10290\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.38-AM.png 761w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.38-AM-400x278.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.38-AM-380x264.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.38-AM-700x486.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.38-AM-380x264.png 420w\" sizes=\"(max-width: 761px) 100vw, 761px\" \/><\/figure>\n\n\n\n<p><span style=\"font-weight: 400;\">To investigate the different data types, use the dtypes() method.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"384\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.54-AM.png\" alt=\"scikit springboard\" class=\"wp-image-10291\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.54-AM.png 556w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.54-AM-400x276.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.54-AM-380x262.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.57.54-AM-380x262.png 420w\" sizes=\"(max-width: 556px) 100vw, 556px\" \/><\/figure>\n\n\n\n<p><span style=\"font-weight: 400;\">After you explore the data, you can then set up data visualization in libraries like Seaborn. <\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"353\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.58.20-AM.png\" alt=\"\" class=\"wp-image-10292\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.58.20-AM.png 746w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.58.20-AM-400x189.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.58.20-AM-380x180.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.58.20-AM-700x331.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-11.58.20-AM-380x180.png 420w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/><\/figure>\n\n\n\n<p><span style=\"font-weight: 400;\">Scikit is accessible and easy to learn for beginners, but not necessarily as well-suited for deep learning as some of the other frameworks.<\/span><\/p>\n\n\n\n<p><em>Looking for more information on SciKit-Learn? <a href=\"https:\/\/www.springboard.com\/blog\/data-science\/scikit-learn\/\" data-type=\"URL\" data-id=\"https:\/\/www.springboard.com\/blog\/data-science\/scikit-learn\/\">Check out our complete guide to SciKit-Learn with a logistic regression example<\/a>.<\/em><\/p>\n\n\n<div class=\"bg-leaf-50 p-4 my-3\"><h4 class=\"fw-bold text-center\">Get To Know Other\tData Science Students<\/h4><div class=\"row row-cols-1 row-cols-lg-3\"><div class=\"col\"><div class=\"card success-story-card h-100 d-flex justify-content-between mb-0\"><div class=\"flex-grow-1 text-center\"><a class=\"d-inline-block rounded-circle\" href=\"\/success\/cassie-gong\" style=\"width:125px;height:125px;overflow:hidden\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/res.cloudinary.com\/springboard-images\/image\/upload\/v1629203193\/Student%20Success\/Cassie_Gong_125x125.png\" alt=\"Mengqin (Cassie) Gong\" style=\"object-fit:contain;max-width:170px;height:125px\" \/><\/a><p class=\"fw-bold mb-0\">Mengqin (Cassie) Gong<\/p><p class=\"text-muted lh-1\">Data Scientist at Whatsapp<\/p><\/div><div class=\"w-100 d-block d-md-none mt-3\"><\/div><p class=\"mb-0 mx-auto text-center\"><a class=\"btn btn-primary mx-auto\" href=\"\/success\/cassie-gong\">Read Story<\/a><\/p><\/div><\/div><div class=\"col d-none d-md-block\"><div class=\"card success-story-card h-100 d-flex justify-content-between mb-0\"><div class=\"flex-grow-1 text-center\"><a class=\"d-inline-block rounded-circle\" href=\"\/success\/george-mendoza\" style=\"width:125px;height:125px;overflow:hidden\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/res.cloudinary.com\/springboard-images\/image\/upload\/v1635445773\/Student%20Success\/George_Mendoza_375x375.png\" alt=\"George Mendoza\" style=\"object-fit:contain;max-width:170px;height:125px\" \/><\/a><p class=\"fw-bold mb-0\">George Mendoza<\/p><p class=\"text-muted lh-1\">Lead Solutions Manager at Hypergiant<\/p><\/div><p class=\"mb-0 mx-auto text-center\"><a class=\"btn btn-primary mx-auto\" href=\"\/success\/george-mendoza\">Read Story<\/a><\/p><\/div><\/div><div class=\"col d-none d-md-block\"><div class=\"card success-story-card h-100 d-flex justify-content-between mb-0\"><div class=\"flex-grow-1 text-center\"><a class=\"d-inline-block rounded-circle\" href=\"\/success\/diana-xie\" style=\"width:125px;height:125px;overflow:hidden\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/res.cloudinary.com\/springboard-images\/image\/upload\/v1629203192\/Student%20Success\/Diana_Xie_125x125.png\" alt=\"Diana Xie\" style=\"object-fit:contain;max-width:170px;height:125px\" \/><\/a><p class=\"fw-bold mb-0\">Diana Xie<\/p><p class=\"text-muted lh-1\">Machine Learning Engineer at IQVIA<\/p><\/div><p class=\"mb-0 mx-auto text-center\"><a class=\"btn btn-primary mx-auto\" href=\"\/success\/diana-xie\">Read Story<\/a><\/p><\/div><\/div><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><b>TensorFlow<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Designed by Google, TensorFlow is an open-source library for numerical computation and machine learning, which can work with CPU and GPU. It allows you to handle regression, classification, and neural network problems.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Neural networks follow a typical <\/span><a href=\"https:\/\/towardsdatascience.com\/pytorch-vs-tensorflow-in-code-ada936fd5406\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">structure<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">You can build neural network models using the Keras programming interface. Easy to use with a simple API, Keras allows you to classify images and text. It can also scale to solve more complex problems, with the ability to adapt to multiple programming languages (Python, Javascript, C++, Java, Go). <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">This <\/span><a href=\"https:\/\/towardsdatascience.com\/pytorch-vs-tensorflow-in-code-ada936fd5406\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">example<\/span><\/a><span style=\"font-weight: 400;\"> analyzes sentiment from a dataset of 40,000 Tweets. After processing and vectorizing the Tweets, the first step involves subclassing the tf.keras. Model class, defining layers in the __init__() method, and creating a forward pass method using the call method.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">With input or output tensors, you can also create functional or sequential mod<\/span><span style=\"font-weight: 400;\">el APIs.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"811\" height=\"525\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.09-PM.png\" alt=\"tensorflow tutorial\" class=\"wp-image-10294\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.09-PM.png 811w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.09-PM-400x259.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.09-PM-768x497.png 768w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.09-PM-380x246.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.09-PM-700x453.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.09-PM-380x246.png 420w\" sizes=\"(max-width: 811px) 100vw, 811px\" \/><\/figure>\n\n\n\n<p><span style=\"font-weight: 400;\">Here is a basic snippet of TensorFlow machine learning code and a <\/span><a href=\"https:\/\/towardsdatascience.com\/a-simple-introduction-to-tensorflow-d992eb2e3dbb\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">walkthrough<\/span><\/a><span style=\"font-weight: 400;\"> of how to build a simple model from scratch:<\/span><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">import<\/span><\/i><i><span style=\"font-weight: 400;\"> tensorflow <\/span><\/i><i><span style=\"font-weight: 400;\">as<\/span><\/i><i><span style=\"font-weight: 400;\"> tf<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">mnist <\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\"> tf<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">keras<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">datasets<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">mnist<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">x_train<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> y_train<\/span><\/i><i><span style=\"font-weight: 400;\">),(<\/span><\/i><i><span style=\"font-weight: 400;\">x_test<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> y_test<\/span><\/i><i><span style=\"font-weight: 400;\">)<\/span><\/i> <i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\"> mnist<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">load_data<\/span><\/i><i><span style=\"font-weight: 400;\">()<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">x_train<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> x_test <\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\"> x_train <\/span><\/i><i><span style=\"font-weight: 400;\">\/<\/span><\/i> <i><span style=\"font-weight: 400;\">255.0<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> x_test <\/span><\/i><i><span style=\"font-weight: 400;\">\/<\/span><\/i> <i><span style=\"font-weight: 400;\">255.0<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">model <\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\"> tf<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">keras<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">models<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">Sequential<\/span><\/i><i><span style=\"font-weight: 400;\">([<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\"> tf<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">keras<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">layers<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">Flatten<\/span><\/i><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">input_shape<\/span><\/i><i><span style=\"font-weight: 400;\">=(<\/span><\/i><i><span style=\"font-weight: 400;\">28<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i> <i><span style=\"font-weight: 400;\">28<\/span><\/i><i><span style=\"font-weight: 400;\">)),<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\"> tf<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">keras<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">layers<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">Dense<\/span><\/i><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">128<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> activation<\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\">&#8216;relu&#8217;<\/span><\/i><i><span style=\"font-weight: 400;\">),<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\"> tf<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">keras<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">layers<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">Dropout<\/span><\/i><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">0.2<\/span><\/i><i><span style=\"font-weight: 400;\">),<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\"> tf<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">keras<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">layers<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">Dense<\/span><\/i><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">10<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> activation<\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\">&#8216;softmax&#8217;<\/span><\/i><i><span style=\"font-weight: 400;\">)<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">])<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">model<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">compile<\/span><\/i><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">optimizer<\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\">&#8216;adam&#8217;<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\"> loss<\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\">&#8216;sparse_categorical_crossentropy&#8217;<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\"> metrics<\/span><\/i><i><span style=\"font-weight: 400;\">=[<\/span><\/i><i><span style=\"font-weight: 400;\">&#8216;accuracy&#8217;<\/span><\/i><i><span style=\"font-weight: 400;\">])<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">model<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">fit<\/span><\/i><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">x_train<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> y_train<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> epochs<\/span><\/i><i><span style=\"font-weight: 400;\">=<\/span><\/i><i><span style=\"font-weight: 400;\">5<\/span><\/i><i><span style=\"font-weight: 400;\">)<\/span><\/i><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">model<\/span><\/i><i><span style=\"font-weight: 400;\">.<\/span><\/i><i><span style=\"font-weight: 400;\">evaluate<\/span><\/i><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">x_test<\/span><\/i><i><span style=\"font-weight: 400;\">,<\/span><\/i><i><span style=\"font-weight: 400;\"> y_test<\/span><\/i><span style=\"font-weight: 400;\">)<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">TensorFlow is ideal in many cases because you can find a repository of already implemented models on <\/span><a href=\"https:\/\/towardsdatascience.com\/pytorch-vs-tensorflow-spotting-the-difference-25c75777377b\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Github<\/span><\/a><span style=\"font-weight: 400;\">. It also performs deep learning through neural networks and provides visualizations through TensorBoard, generating everything from distributions and histograms to audio files.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">For coders with different levels of expertise, here are some additional <\/span><a href=\"https:\/\/www.tensorflow.org\/tutorials\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">tutorials<\/span><\/a><span style=\"font-weight: 400;\"> that run on Jupyter notebooks and in Google Colab.<\/span><\/p>\n\n\n\n<p><em>Looking for more information about TensorFlow? <a href=\"https:\/\/www.springboard.com\/blog\/data-science\/pytorch-vs-tensorflow\/\" data-type=\"URL\" data-id=\"https:\/\/www.springboard.com\/blog\/data-science\/pytorch-vs-tensorflow\/\">Check out our guide to PyThorch vs. TensorFlow<\/a>.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><b>PyTorch<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Used by Facebook, PyTorch is a framework designed for computer vision, reinforcement learning, and natural language processing and is frequently the tool of choice for rigorous <\/span><a href=\"https:\/\/thegradient.pub\/state-of-ml-frameworks-2019-pytorch-dominates-research-tensorflow-dominates-industry\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">research<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">On the PyTorch website, you can also find <\/span><a href=\"https:\/\/pytorch.org\/tutorials\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">tutorials<\/span><\/a><span style=\"font-weight: 400;\"> on constructing neural networks. These <\/span><a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2019\/01\/guide-pytorch-neural-networks-case-studies\/?utm_source=blog&amp;amp%3Butm_medium=comparison-deep-learning-framework\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">case studies<\/span><\/a><span style=\"font-weight: 400;\"> show how to classify handwritten digits, objects, sentiments, and images. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">This <\/span><a href=\"https:\/\/pytorch.org\/tutorials\/beginner\/pytorch_with_examples.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">tutorial<\/span><\/a><span style=\"font-weight: 400;\"> walks through the example of fitting y=sin\u2061(x) with a third-order polynomial and training a network of four parameters with gradient descent \u201cto fit random data by minimizing the Euclidean distance between the network output and the true output.\u201d<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">It builds off of NumPy\u2014in fact, a PyTorch Tensor is an n-dimensional array similar to the NumPy array, but Tensors can use GPUs to make the speed 50x faster.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"798\" height=\"936\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial.png\" alt=\"\" class=\"wp-image-10296\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial.png 798w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-400x469.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-768x901.png 768w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-380x446.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-700x821.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-380x446.png 420w\" sizes=\"(max-width: 798px) 100vw, 798px\" \/><\/figure>\n\n\n\n<p><span style=\"font-weight: 400;\">Several useful PyTorch packages and libraries provide a framework for accomplishing different tasks. In the example above, you need to manually implement forward and backward passes, but it is possible to automate with the autograd package.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The nn package serves a similar function to the <\/span><a href=\"https:\/\/github.com\/keras-team\/keras\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Keras<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/github.com\/google-research\/tf-slim\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">TensorFlow-Slim<\/span><\/a><span style=\"font-weight: 400;\">, and <\/span><a href=\"http:\/\/tflearn.org\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">TFLearn<\/span><\/a><span style=\"font-weight: 400;\"> packages, by creating Modules (like neural network layers), which receive input Tensors and produce output Tensors. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">You can update the weights of models manually by using learning parameters like torch.no_grad(), but the optim package and other optimizers, such as <\/span><span style=\"font-weight: 400;\">AdaGrad, RMSProp, and Adam, will make this work more scalable.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">PyTorch is more challenging to learn than TensorFlow, but it is easier to customize and faster to train. <\/span><\/p>\n\n\n\n<p><em>Looking for more information about PyTorch? <a href=\"https:\/\/www.springboard.com\/blog\/data-science\/pytorch-vs-tensorflow\/\" data-type=\"URL\" data-id=\"https:\/\/www.springboard.com\/blog\/data-science\/pytorch-vs-tensorflow\/\">Check out our guide to PyThorch vs. TensorFlow<\/a>.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><b>Spark<\/b><b> MLlib<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Founded in 2009 at UC Berkeley, <\/span><a href=\"https:\/\/spark.apache.org\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Spark<\/span><\/a><span style=\"font-weight: 400;\"> is a unified analytics engine and open-source cluster-computer framework that can write applications in Java, Scala, Python, R (a popular programming language in the domain of <a href=\"https:\/\/www.springboard.com\/blog\/data-science\/data-science-definition\/\" data-type=\"URL\" data-id=\"https:\/\/www.springboard.com\/blog\/data-science\/data-science-definition\/\">data science<\/a> to do statistical analysis), and SQL and run on Hadoop, Apache Mesos, Kubernetes or in the cloud. It can also run on a standalone cluster. The basic <\/span><a href=\"https:\/\/www.infoworld.com\/article\/3236869\/what-is-apache-spark-the-big-data-platform-that-crushed-hadoop.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">architecture<\/span><\/a><span style=\"font-weight: 400;\"> includes drivers converting code into tasks and executors. Executors run on the nodes containing the tasks and put the nodes to work. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Spark has a machine learning library called <\/span><a href=\"https:\/\/spark.apache.org\/docs\/1.1.0\/mllib-guide.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">MLlib<\/span><\/a><span style=\"font-weight: 400;\">, which performs functions like classification, regression, clustering, optimization, dimensionality reduction, collaborative filtering, and feature extraction and transformation. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">This <\/span><a href=\"https:\/\/towardsdatascience.com\/apache-spark-mllib-tutorial-ec6f1cb336a9\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">tutorial<\/span><\/a><span style=\"font-weight: 400;\"> builds off of a <\/span><a href=\"https:\/\/www.cs.toronto.edu\/~delve\/data\/boston\/bostonDetail.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Boston Housing<\/span><\/a><span style=\"font-weight: 400;\"> dataset. The goal is to use the 14 features, which consist of CRIM (per capita crime rate), RM (average number of rooms per dwelling), PTRATIO (pupil-teacher ratio by town), NOX (nitric oxide concentration), and others, to predict the value of MEDV (median housing price). It involves installing Python, Spark, the findspark library, Numpy, and Jupyter. <\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The first problem is one of regression, trying to use the features to predict the label of home value. <\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10297\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.44-PM.png\" alt=\"\" width=\"759\" height=\"215\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.44-PM.png 759w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.44-PM-400x113.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.44-PM-380x108.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.44-PM-700x198.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.44-PM-380x108.png 420w\" sizes=\"(max-width: 759px) 100vw, 759px\" \/><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">By using the assembler to create the features column, you can represent the values in a table.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"803\" height=\"475\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.56-PM.png\" alt=\"\" class=\"wp-image-10298\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.56-PM.png 803w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.56-PM-400x237.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.56-PM-768x454.png 768w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.56-PM-380x225.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.56-PM-700x414.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/Screen-Shot-2021-01-24-at-12.02.56-PM-380x225.png 420w\" sizes=\"(max-width: 803px) 100vw, 803px\" \/><\/figure>\n\n\n\n<p><span style=\"font-weight: 400;\">Afterward, you can split the data into training and testing examples to create a model and then evaluate its performance.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"738\" height=\"752\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-2.png\" alt=\"\" class=\"wp-image-10299\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-2.png 738w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-2-400x408.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-2-380x387.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-2-700x713.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-2-380x387.png 420w\" sizes=\"(max-width: 738px) 100vw, 738px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1256\" height=\"1112\" src=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3.png\" alt=\"\" class=\"wp-image-10300\" srcset=\"https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3.png 1256w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3-400x354.png 400w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3-1200x1062.png 1200w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3-768x680.png 768w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3-380x336.png 380w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3-700x620.png 700w, https:\/\/www.springboard.com\/blog\/wp-content\/uploads\/2021\/01\/pytorch-tutorial-3-380x336.png 420w\" sizes=\"(max-width: 1256px) 100vw, 1256px\" \/><\/figure>\n\n\n\n<p><span style=\"font-weight: 400;\">If you want more practice, this additional tutorial employs Spark to build a <\/span><a href=\"https:\/\/www.bmc.com\/blogs\/spark-decision-tree-classifier\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">decision-tree classifier<\/span><\/a><span style=\"font-weight: 400;\"> to predict automobile gas mileage. As you can see, <\/span><a href=\"https:\/\/www.netguru.com\/blog\/top-machine-learning-frameworks-compared\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">MLlib<\/span><\/a><span style=\"font-weight: 400;\"> offers fast and dynamic processing, but can consume a lot of expensive memory. <\/span><\/p>\n\n\n\n<p><em>Looking for more information about Spark? <a href=\"https:\/\/www.springboard.com\/blog\/data-science\/training-model-using-spark\/\" data-type=\"URL\" data-id=\"https:\/\/www.springboard.com\/blog\/data-science\/training-model-using-spark\/\">Check out our guide to training a very large model using Spark<\/a>.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><b>More options<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Besides these frameworks, there are others that you can explore as time permits, like:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/developer.nvidia.com\/rapids\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">RAPIDS<\/span><\/a><span style=\"font-weight: 400;\"> is a suite of NVIDIA software libraries built on CUDA-X-AI, where you can perform end-to-end data science and analytics on GPUs. RAPIDS facilitates data preparation and supports multi-node, multi-GPU deployments for faster processing of large datasets.<\/span><\/li><li><a href=\"http:\/\/torch.ch\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Torch<\/span><\/a><span style=\"font-weight: 400;\"> is a machine learning scientific computing framework that uses the LuaJIT scripting language and C\/CUDA implementation. It is very similar to PyTorch, as PyTorch is the Python implementation of Torch.<\/span><\/li><li><a href=\"https:\/\/caffe.berkeleyvision.org\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Caffe<\/span><\/a><span style=\"font-weight: 400;\"> is a Berkeley AI Research BSD-authorized C++ library with Python interface, suitable for deep learning. It supports easy image recognition, but its limited architecture lacks versatility with regard to use cases. <\/span><\/li><li><a href=\"https:\/\/pypi.org\/project\/Theano\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Theano<\/span><\/a><span style=\"font-weight: 400;\"> is a Python deep learning library developed at the University of Montreal, which specializes in deep neural network algorithms. It can execute mathematical calculations with multidimensional arrays using CPU and GPU, as well as support libraries like Keras, Lasagne, and Blocks; however, it is not as popular as TensorFlow and lacks some common data visualization functionalities and monitoring\/debugging tools. <\/span><\/li><\/ul>\n\n\n\n<p class=\"rm has-background\" style=\"background-color:#efeff6\"><strong>Since you\u2019re here\u2026<\/strong>Are you interested in this career track? Investigate with our free guide to <a href=\"https:\/\/www.springboard.com\/blog\/data-science\/what-does-a-data-scientist-do\/\" data-type=\"post\" data-id=\"24427\">what a data professional <em>actually<\/em> does<\/a>. When you\u2019re ready to build a CV that will make hiring managers melt, join our <a href=\"https:\/\/www.springboard.com\/courses\/data-science-career-track\/\" data-type=\"URL\" data-id=\"https:\/\/www.springboard.com\/courses\/data-science-career-track\/\" target=\"_blank\" rel=\"noreferrer noopener\">Data Science Bootcamp<\/a> which will help you land a job or your tuition back!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>According to Gartner, 85 percent of machine learning projects fail, leaving most organizations without a positive ROI. To avoid spending unnecessary time, money, and energy reinventing the wheel, many organizations have started employing machine learning frameworks. These frameworks simplify the process of algorithm development for engineers, making ML easier, more scalable, and more accessible. Machine [&hellip;]<\/p>\n","protected":false},"author":66,"featured_media":10284,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_eb_attr":"","_eb_data_table":"","footnotes":""},"categories":[67],"tags":[],"marketing_tags":[],"class_list":{"0":"post-10285","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-data-science"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/posts\/10285"}],"collection":[{"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/comments?post=10285"}],"version-history":[{"count":4,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/posts\/10285\/revisions"}],"predecessor-version":[{"id":29760,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/posts\/10285\/revisions\/29760"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/media\/10284"}],"wp:attachment":[{"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/media?parent=10285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/categories?post=10285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/tags?post=10285"},{"taxonomy":"marketing_tags","embeddable":true,"href":"https:\/\/www.springboard.com\/blog\/wp-json\/wp\/v2\/marketing_tags?post=10285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}