[{"id":2438,"title":"How to Deal with Files in Google Colab: What You Need to Know","description":"How to supercharge your Google Colab experience by reading external files or data in Google Colab and writing from Google Colab to those external data sources.","tags":["article","google-colab","colab","file-system"],"details":"In this post we address practical issues when working with Google Colab notebooks. We focus on the data management topics, and how to work with some clouds providers and Kaggle.\r\n\r\n#### Data management\r\n\r\n* Directory and File operations in Google Colab\r\n* How to Upload files to, and Download files from Google Colab\r\n* Accessing Local File System to Google Colab\r\n* Accessing Google Drive from Google Colab\r\n* Accessing Google Sheets from Google Colab\r\n* Accessing MySQL databases from Google Colab\r\n\r\n\r\n\r\n#### Working with cloud and Kaggle\r\n\r\n* Accessing Google Cloud Storage (GCS) from Google Colab\r\n* Accessing AWS S3 from Google Colab\r\n* Accessing Kaggle datasets from Google Colab","links":[{"article_link":"https://neptune.ai/blog/google-colab-dealing-with-files?utm_source=madewithml&utm_medium=post&utm_campaign=blog-google-colab-dealing-with-files","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://neptune.ai/blog/google-colab-dealing-with-files?utm_source=madewithml&utm_medium=post&utm_campaign=blog-google-colab-dealing-with-files"}]},{"id":2437,"title":"Rasoee","description":"A powerful web and mobile application that identifies food dishes from a given input image, and provides an ingredient list along with relevant recipes.","tags":["api","article","code","dataset","paper","research","django","pytorch","food","computer-vision","web-app","cooking","mobile","demo","android","efficient-net","kotlin"],"details":"# Highlighted Features:\r\nRasoee takes an input image of a food dish and\r\n\r\n* Identifies the dish in the image\r\n* Provides the user with an ingredient list of the identified dish\r\n* Provides the user with relevant recipes of the identified dish\r\n\r\nRasoee also takes in a text input of a cuisine + description and \r\n\r\n* Recommends a dish based on the user's input\r\n\r\n# How it Works:\r\nRasoee can be divided into 4 main sections:\r\n\r\n# 1. Rasoee - Image Detection Model\r\n* The model was based primarily on the Efficient-Net B2 architecture\r\n* It was built using PyTorch on Tesla P100 GPUs\r\n* Efficient-Net B2 was specifically chosen as it gave us a good accuracy on our dataset [91.31%] and it was of a suitable size to run on edge devices like a smartphone\r\n* We trained the model using SGD with momentum and used a steady learning rate decay\r\n* Training Notebook available [here](https://github.com/DevChuriwala/Rasoee/blob/master/EfficientNetB2%20Training.ipynb)\r\n\r\n# 2. Rasoee - Dataset\r\n* The dataset consists of 308 different dishes from 6+ cuisines\r\n* There are 500 images in each class with slightly noisy data and some outliers too\r\n* All the images were processed to the same size [600 x 600] \r\n* Fixed split into train, test, and validation in a 8:1:1 ratio\r\n* The data was scraped using the Bing image API \r\n* Dataset available [here](https://www.kaggle.com/synysterjeet/food-classification)\r\n\r\n# 3. Rasoee - Android App\r\n* The Rasoee App uses the PyTorch Mobile API to execute ML models on the edge to reduce latency and preserve privacy\r\n* It uses the Model-view-viewmodel (MVVM) architecture, which separates the UI from the data\r\n* It uses a web-based API to find appropriate recipes and display up to 10 of them in the app\r\n* Being an edge-based model, it can identify the dish without being connected to the internet\r\n* App available [here](https://github.com/ameyalaad/Rasoee/releases/download/v1.0/rasoee.apk)\r\n\r\n# 4. Rasoee - Web App\r\n* The Rasoee Web App was made using Django and SQL\r\n* We used the Recipe Puppy API to retrieve the ingredients list and relevant recipes\r\n* The Web App uses Pytorch to load and deploy the model \r\n* Website - [Rasoee](http://rasoee.herokuapp.com/)\r\n\r\n\r\n# Rasoee's Development - About Us:\r\nWe are a group of friends studying together, and we all happen to be foodies. So this is a project quite close to our heart, or maybe stomach.\r\n\r\nSo, all of us had varying levels of familiarity with Machine Learning and PyTorch as well as knowledge in other fields, and so we divided the tasks among ourselves accordingly. One guy made the website, one guy made the app, the others looked for datasets and models that we could train to make this work. We wanted to be ambitious enough to make out own dataset despite there being Food-101 available online, so we went ahead with that and scraped to the best of our abilities to make a workable dataset. The cleaning of the dataset was quite a grueling task, followed by the question of which model to use. We tested a few small scale models as we wanted this to be deployable on mobile devices, and in the end got a good enough accuracy with one to go ahead. This was followed by the usual nitpicking in the looks of the website and the application along with the addition of auxiliary features like provision of recipe and list of ingredients.\r\n\r\nFinally we made something, that we are proud of, and hope it prevents many food lovers out there from racking their brains during identifying dishes, and use more of their time eating!\r\n\r\nCheers!","links":[{"article_link":"https://github.com/ameyalaad/Rasoee/releases/download/v1.0/rasoee.apk","code_link":"https://github.com/DevChuriwala/Rasoee","research_link":"https://github.com/DevChuriwala/Rasoee/blob/master/README.md","media_link":"https://youtu.be/wgwRnuQ0R7g","dataset_link":"https://www.kaggle.com/synysterjeet/food-classification","demo_link":"http://rasoee.herokuapp.com/","other_link":""}]},{"id":2436,"title":"Machine Learning Methods Explained (+ Examples)","description":"Most common techniques used in data science projects; get to know them through easy-to-understand examples and put them into practice in your own ML projects!","tags":["article","deep-learning","machine-learning","dimensionality-reduction","reinforcement-learning","unsupervised-learning","artificial-intelligence","neptune-ai","neptune"],"details":"We present, methods most commonly used in machine learning projects (with examples), categorized into three types of learning:\r\n\r\n#### Supervised Learning\r\n* Regression\r\n* Classification\r\n* Ensemble Learning\r\n\r\n![mapping](https://lh3.googleusercontent.com/dVBGq2Ku83IoI6oaP0CH4DdRqgPjHLY1Dmq3theq2vXvyc7yfRP_u9rNy0ICSwlIzxHJVshPQxHBuPSju8Qu2ZMIdcn_TJL_t8v4x2q0_EUPHHi14fhtoPW4GbdheZQw9MbhioEX)\r\n\r\n---\r\n\r\n#### Unsupervised Learning\r\n* Clustering, \r\n* Dimensionality Reduction\r\n\r\n![clusters](https://lh4.googleusercontent.com/jLL4OMGeCSTtNscgQ-fiANLOiR888h0foZ2YPfmG_ZD2G7xQuev-dcXhA949HxiKlM7JcDrfacND9mG75Z49IjKGPqURt7aAEqEMxQl3BLB2hmXtcqJWMllcLKEGqGs8VgQM6hCB)\r\n\r\n---\r\n\r\n#### Reinforcement Learning\r\n![mario](https://i2.wp.com/neptune.ai/wp-content/uploads/mario-mission.png?resize=232%2C227&ssl=1)\r\n","links":[{"article_link":"https://neptune.ai/blog/machine-learning-methods?utm_source=madewithml&utm_medium=post&utm_campaign=blog-machine-learning-methods","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://neptune.ai/blog/machine-learning-methods?utm_source=madewithml&utm_medium=post&utm_campaign=blog-machine-learning-methods"}]},{"id":2435,"title":"Top \u201cApplied Data Science\u201d Papers from ECML-PKDD 2020","description":"Explore the innovative world of Machine Learning with these inspiring Applied Data Science papers from this year\u2019s ECML-PKDD 2020 Conference!","tags":["article","deep-learning","machine-learning","advertising","computer-hardware","healthcare","sports","transportation","anomaly-detection","data-science"],"details":"### ECML-PKDD 2020\r\n\r\nECML-PKDD is one of the premier conferences on Machine Learning in Europe. It showcases a large number of new ideas and inspiring developments in the ML field.\r\n\r\nWe bring you top research papers, which are divided into the following categories:\r\n\r\n* Sports \r\n* Hardware and manufacturing \r\n* Transportation \r\n* Anomaly detection \r\n* Advertisement \r\n* Web mining \r\n* Computational social science \r\n* E-commerce and finance \r\n* Social good\r\n\r\n![img](https://i2.wp.com/neptune.ai/wp-content/uploads/ECML-top-applied-papers.jpg?w=1920&ssl=1)","links":[{"article_link":"https://neptune.ai/blog/ecml-pkdd-2020-applied-data-science?utm_source=madewithml&utm_medium=post&utm_campaign=blog-ecml-pkdd-2020-applied-data-science","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://neptune.ai/blog/ecml-pkdd-2020-applied-data-science?utm_source=madewithml&utm_medium=post&utm_campaign=blog-ecml-pkdd-2020-applied-data-science"}]},{"id":2434,"title":"OpenMMLab Computer Vision","description":"MMCV is a python library for CV research and supports many research projects such as object detection, segmentation, pose estimation, action classification.\r\n\r\n","tags":["article","code","pytorch","library","3d","computer-vision","image-classification","image-generation","object-detection","pose-estimation","super-resolution","3d-object-detection","pretraining","segmentation","inpainting","action-recognition","model-zoo","matting"],"details":"MMCV is a foundational python library for computer vision research and supports many research projects as below:\r\n\r\n- [MMDetection](https://github.com/open-mmlab/mmdetection): Detection toolbox and benchmark\r\n- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): General 3D object detection toolbox and benchmark\r\n- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): Semantic segmentation toolbox and benchmark\r\n- [MMEditing](https://github.com/open-mmlab/mmediting): Image and video editing toolbox\r\n- [MMPose](https://github.com/open-mmlab/mmpose): Pose estimation toolbox and benchmark\r\n- [MMAction2](https://github.com/open-mmlab/mmaction2): Action understanding toolbox and benchmark\r\n- [MMClassification](https://github.com/open-mmlab/mmclassification): Image classification toolbox and benchmark\r\n\r\nIt provides the following functionalities.\r\n\r\n- Universal IO APIs\r\n- Image/Video processing\r\n- Image and annotation visualization\r\n- Useful utilities (progress bar, timer, ...)\r\n- PyTorch runner with hooking mechanism\r\n- Various CNN architectures\r\n- High-quality implementation of common CUDA ops","links":[{"article_link":"https://mmcv.readthedocs.io/en/latest/","code_link":"https://github.com/open-mmlab/mmcv","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://openmmlab.com/"}]},{"id":2433,"title":"Understanding the receptive field of deep convolutional networks","description":"An intuitive guide on why it is important to inspect the receptive field, as well as how the receptive field affect the design choices of deep convolutional net","tags":["article","tutorial","convolutional-neural-networks","deep-learning","machine-learning"],"details":"In this article, we will discuss multiple perspectives that involve the receptive field of a deep convolutional architecture. We will address the influence of the receptive field starting for the human visual system. As you will see, a lot of terminology of deep learning comes from neuroscience. As a short motivation, convolutions are awesome but it is not enough just to understand how it works. The idea of the receptive field will help you dive into the architecture that you are using or developing. If you are looking for an in-depth analysis to understand how you can calculate the receptive field of your model as well as the most effective ways to increase it, this article was made for you. In the end, fundamentals are to be mastered!","links":[{"article_link":"https://theaisummer.com/receptive-field/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://theaisummer.com/skip-connections/"}]},{"id":2432,"title":"Topic Modeling with BERT","description":"Leveraging \ud83e\udd17 Transformers and a class-based TF-IDF to create dense clusters allowing for easily interpretable topics. ","tags":["article","code","tutorial","huggingface","attention","bert","transformers","library","natural-language-processing","topic-modeling"],"details":"BERTopic is a topic modeling technique that leverages BERT embeddings and c-TF-IDF to create dense clusters allowing for easily interpretable topics whilst keeping important words in the topic descriptions.\r\n\r\nThe initial purpose of this project was to generalize Top2Vec such that it could be used with state-of-art pre-trained transformer models. However, this proved difficult due to the different natures of Doc2Vec and transformer models. Instead, I decided to come up with a different algorithm that could use BERT and \ud83e\udd17 transformers embeddings. The results is BERTopic, an algorithm for generating topics using state-of-the-art embeddings.\r\n\r\n![](https://miro.medium.com/max/1400/1*W94GjvT6vBzDGY50qPHZDA.png)","links":[{"article_link":"https://towardsdatascience.com/topic-modeling-with-bert-779f7db187e6","code_link":"https://github.com/MaartenGr/BERTopic","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2431,"title":"A Survey of the State of Explainable AI for NLP","description":"Overview of the operations and explainability techniques currently available for generating explanations for NLP model predictions.","tags":["paper","research","interpretability","natural-language-processing","explainability","survey","xai","arxiv:2010.00711"],"details":"Recent years have seen important advances in the quality of state-of-the-art models, but this has come at the expense of models becoming less interpretable. This survey presents an overview of the current state of Explainable AI (XAI), considered within the domain of Natural Language Processing (NLP). We discuss the main categorization of explanations, as well as the various ways explanations can be arrived at and visualized. We detail the operations and explainability techniques currently available for generating explanations for NLP model predictions, to serve as a resource for model developers in the community. Finally, we point out the current gaps and encourage directions for future work in this important research area.","links":[{"article_link":"","code_link":"","research_link":"https://arxiv.org/abs/2010.00711","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2430,"title":"Transection: Transformers for English to Chinese Translation \u57fa\u4e8et","description":"Tutorials on how to fine-tune a BART based transformer for English to Chinese translation.","tags":["code","tutorial","transformers","library","machine-translation","natural-language-processing","demo"],"details":"Transection: Transformers for English to Chinese Translation (\u57fa\u4e8etransformers\u4ece\u82f1\u6587\u5230\u4e2d\u6587\u7684\u7ffb\u8bd1\u5668).\r\n\r\n**Next steps**:\r\n\r\n* Train a sequence-to-sequence BART-base on the dataset from scratch rather than fine-tune from its checkpoint.\r\n* Fine-tune starting from MarianMT checkpoints.\r\n* Expand the dataset from various domains (i.e, makes it more general overall).\r\n* Train on smaller sequence to sequence transformers?","links":[{"article_link":"","code_link":"https://github.com/wangcongcong123/transection","research_link":"","media_link":"","dataset_link":"","demo_link":"https://github.com/wangcongcong123/transection/blob/main/demo.py","other_link":""}]},{"id":2429,"title":"Meta-learning for Few-shot Natural Language Processing: A Survey","description":"Clear definitions, progress summary and some common datasets of applying meta-learning to few-shot NLP.","tags":["paper","research","few-shot-learning","meta-learning","natural-language-processing","survey","arxiv:2007.09604"],"details":"Few-shot natural language processing (NLP) refers to NLP tasks that are accompanied with merely a handful of labeled examples. This is a real-world challenge that an AI system must learn to handle. Usually we rely on collecting more auxiliary information or developing a more efficient learning algorithm. However, the general gradient-based optimization in high capacity models, if training from scratch, requires many parameter-updating steps over a large number of labeled examples to perform well (Snell et al., 2017). If the target task itself cannot provide more information, how about collecting more tasks equipped with rich annotations to help the model learning? The goal of meta-learning is to train a model on a variety of tasks with rich annotations, such that it can solve a new task using only a few labeled samples. The key idea is to train the model's initial parameters such that the model has maximal performance on a new task after the parameters have been updated through zero or a couple of gradient steps. There are already some surveys for meta-learning, such as (Vilalta and Drissi, 2002; Vanschoren, 2018; Hospedales et al., 2020). Nevertheless, this paper focuses on NLP domain, especially few-shot applications. We try to provide clearer definitions, progress summary and some common datasets of applying meta-learning to few-shot NLP.","links":[{"article_link":"","code_link":"","research_link":"https://arxiv.org/abs/2007.09604","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2428,"title":"Efficient Transformers: A Survey","description":"Characterizes a large and thoughtful selection of recent efficiency-flavored \"X-former\" models.","tags":["paper","research","transformers","natural-language-processing","survey","arxiv:2009.06732"],"details":"Transformer model architectures have garnered immense interest lately due to their effectiveness across a range of domains like language, vision and reinforcement learning. In the field of natural language processing for example, Transformers have become an indispensable staple in the modern deep learning stack. Recently, a dizzying number of \"X-former\" models have been proposed - Reformer, Linformer, Performer, Longformer, to name a few - which improve upon the original Transformer architecture, many of which make improvements around computational and memory efficiency. With the aim of helping the avid researcher navigate this flurry, this paper characterizes a large and thoughtful selection of recent efficiency-flavored \"X-former\" models, providing an organized and comprehensive overview of existing work and models across multiple domains.\r\n\r\n![](https://pbs.twimg.com/media/EibO6nAUMAIGnPR?format=jpg)","links":[{"article_link":"","code_link":"","research_link":"https://arxiv.org/abs/2009.06732","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2427,"title":"Knowledge Transfer in Self Supervised Learning","description":"A general framework to transfer knowledge from deep self-supervised models to shallow task-specific models.","tags":["article","tutorial","knowledge-distillation","model-compression","self-supervised-learning"],"details":"Self Supervised Learning is an interesting research area where the goal is to learn rich representations from unlabeled data without any human annotation. This can be achieved by creatively formulating a problem such that you use parts of the data itself as labels and try to predict that. Such formulations are called pretext tasks.\r\n\r\nBy pre-training on the pretext task, the hope is that the model will learn useful representations. Then, we can finetune the model to downstream tasks such as image classification, object detection, and semantic segmentation with only a small set of labeled training data.\r\n\r\nThis blog post summarizes the findings in the paper \" \u201cBoosting Self-Supervised Learning via Knowledge Transfer\u201d.","links":[{"article_link":"https://amitness.com/knowledge-transfer/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2426,"title":"Free (0$) deep learning hardware?","description":"You don't have money but want to start learning deep learning? Take a look at this video for some tips!","tags":["tutorial","deep-learning","hardware","gpu","cloud","deep-learning-pc"],"details":"From Google Colab and Kaggle's P100s GPU all the way to whether you should build your personal deep learning rig.","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://youtu.be/rcIrIhNAe_c","dataset_link":"","demo_link":"","other_link":""}]},{"id":2425,"title":"From Python to Julia & Learning by Doing","description":"A Case Study with an Opinion Dynamics Model Simulation.","tags":["article","tutorial","julia","simulation"],"details":"Rather than a full-on tutorial of how Julia works, what you will mostly find in this post is a documentation\u2014frankly, commentation\u2014mostly for myself of why and how I wrote the code I did, from the perspective of someone coming from Python.","links":[{"article_link":"https://unchitta.com/blog/2020/10/deffuant-weisbuch-julia/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2424,"title":"Principles and Practice of Explainable Machine Learning","description":"A survey to help industry practitioners understand the field of explainable machine learning better and apply the right tools.","tags":["paper","research","interpretability","explainability","survey","arxiv:2009.11698"],"details":"Here, we have undertaken a survey to help industry practitioners (but also data scientists more broadly) understand the field of explainable machine learning better and apply the right tools. Our latter sections build a narrative around a putative data scientist, and discuss how she might go about explaining her models by asking the right questions.\r\n\r\n![](https://dildehdrg5ol8.cloudfront.net/images/2424-8932c0032afd955aa1194a655bdc6c58.png)","links":[{"article_link":"","code_link":"","research_link":"https://arxiv.org/abs/2009.11698","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2423,"title":"Imaginaire","description":"NVIDIA PyTorch GAN library with distributed and mixed precision support.","tags":["code","video","pytorch","generative-adversarial-networks","library","computer-vision","image-to-image-translation","nvidia","mixed-precision","imaginaire","model-zoo"],"details":"Imaginaire is a pytorch library that contains optimized implementation of several image and video synthesis methods developed at NVIDIA.\r\n\r\n![](https://camo.githubusercontent.com/faebd1e3636c45badb31da70e3e7224ac8ac230d/687474703a2f2f696d672e796f75747562652e636f6d2f76692f6a675458354f6e417359512f302e6a7067)\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/NVlabs/imaginaire","research_link":"","media_link":"https://www.youtube.com/watch?v=jgTX5OnAsYQ&feature=youtu.be","dataset_link":"","demo_link":"","other_link":"http://imaginaire.cc/"}]},{"id":2422,"title":"Pattern-Exploiting Training (PET)","description":"This repository contains the code for \"Exploiting Cloze Questions for Few-Shot Text Classification and Natural Language Inference\"","tags":["code","paper","research","few-shot-learning","natural-language-processing","text-classification","cloze-questions","arxiv:2001.07676"],"details":"This repository contains the code for [Exploiting Cloze Questions for Few-Shot Text Classification and Natural Language Inference](https://arxiv.org/abs/2001.07676) and [It's Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners](https://arxiv.org/abs/2009.07118). The papers introduce pattern-exploiting training (PET), a semi-supervised training procedure that reformulates input examples as cloze-style phrases. In low-resource settings, PET and iPET significantly outperform regular supervised training, various semi-supervised baselines and even GPT-3 despite requiring 99.9% less parameters. The iterative variant of PET (iPET) trains multiple generations of models and can even be used without any training data.\r\n\r\n* \ud83d\udd27 Setup\r\n* \ud83d\udcac CLI Usage\r\n* \ud83d\udcbb API Usage\r\n* \ud83d\udc36 Train your own PET\r\n* \ud83d\udcd5 Citation\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/timoschick/pet","research_link":"https://arxiv.org/abs/2001.07676","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2421,"title":"Q-Aid","description":"A comprehensive healthcare conversational agent powered by Visual QA and segmentation models.","tags":["api","article","code","dataset","paper","research","aws","fastapi","pytorch","react","health","computer-vision","medical-imaging","natural-language-processing","question-answering","segmentation","conversational-ai","visual-question-answering","mobile","xai"],"details":"#### Features\r\n\r\n- \ud83d\udd25 Collection of healthcare AI models under [core](https://github.com/medtorch/Q-Aid-Core/tree/master/core), created using PyTorch.\r\n- \ud83d\udd11 Served using [FastAPI](https://fastapi.tiangolo.com/).\r\n- \ud83c\udf00 Full deployment scripts for AWS.\r\n- \u26a1\ufe0f Compatible React-Native app under [app](https://github.com/medtorch/Q-Aid-App) folder.\r\n\r\n#### Additional resources\r\n\r\n* Read more about the models [here](https://github.com/medtorch/Q-Aid-Models).\r\n* Read more about the app [here](https://github.com/medtorch/Q-Aid-App).\r\n* Read more about the server setup [here](https://github.com/medtorch/Q-Aid-Core/blob/master/core/README.md).\r\n* Seet the [AWS README](aws_backend/README.md).\r\n\r\n#### What it does\r\nQ&AId solves this problem by:\r\n\r\n* providing the user answers to questions on clinical data,\r\n* providing the hospital with a transcript of what the patient needs, reducing the waiting time, and unloading the hospital triage.\r\n\r\n![](https://github.com/medtorch/Q-Aid-Motivation/raw/master/misc/demo.gif)\r\n\r\n![](https://raw.githubusercontent.com/medtorch/Q-Aid-Motivation/master/misc/flow.png)\r\n\r\n#### How we built it\r\nThere are three sections of the app that are worth mentioning:\r\n\r\n**Q-Aid-App**\r\n\r\n* Created using React-Native.\r\n* Authentication and database support by AWS Amplify.\r\n* Awesome chat created using GiftedChat.\r\n* Backed by the PyTorch core algorithms and models.\r\n\r\n**Q-Aid-Core**\r\n\r\n* Server built with FastAPI\r\n* DockerHub deployment as a docker image.\r\n* script that partially builds the following diagram:\r\n\r\n![](https://github.com/medtorch/Q-Aid-Core/raw/master/aws_backend/architecture.png)","links":[{"article_link":"https://github.com/medtorch/Q-Aid-Motivation","code_link":"https://github.com/medtorch/Q-Aid-Core","research_link":"","media_link":"","dataset_link":"https://github.com/medtorch/Q-Aid-Models","demo_link":"","other_link":"https://github.com/medtorch/Q-Aid-App"}]},{"id":2420,"title":"DVC Basics","description":"This tutorial is for total beginners to get started using DVC and Git to version data, models, and more. ","tags":["tutorial","video","git","dvc","versioning"],"details":"This tutorial is for total beginners to get started using DVC and Git to version data, models, and more. If you're completely new to DVC and want a gentle walkthrough of the basic features, this is for you!","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://www.youtube.com/playlist?list=PL7WG7YrwYcnDb0qdPl9-KEStsL-3oaEjg","dataset_link":"","demo_link":"","other_link":""}]},{"id":2419,"title":"GANs in Computer Vision Free Ebook / Article-series","description":"This free ebook/article-series follows the chronological order of 20 peer-reviewed highly-cited papers as they presented in a series of 6 articles.","tags":["article","code","paper","research","tutorial","generative-adversarial-networks","computer-vision","image-generation","demo"],"details":"This free ebook/article-series follows the chronological order of 20 peer-reviewed highly-cited papers as they presented in a series of 6 articles.","links":[{"article_link":"https://theaisummer.com/gan-computer-vision/","code_link":"https://github.com/The-AI-Summer/GANs-in-Computer-Vision","research_link":"https://theaisummer.com/gan-computer-vision-object-generation/","media_link":"","dataset_link":"","demo_link":"https://theaisummer.com/gan-computer-vision-video-synthesis/","other_link":"https://theaisummer.com/gan-computer-vision-semantic-synthesis/"}]},{"id":2418,"title":"Top Research Papers from the ECML-PKDD 2020 Conference","description":"ECML-PKDD -> selectionof the best reaesch papers","tags":["article","research","deep-learning","machine-learning","reinforcement-learning","data-science"],"details":"### ECML-PKDD 2020\r\n\r\n**The European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases** [ECML-PKDD] is one of the most recognized academic conferences on Machine Learning in Europe.\r\n\r\nECML-PKDD brings a large number of new ideas and inspiring developments in the ML field.\r\n\r\nWe bring you top research papers, which are divided into the following categories:\r\n\r\n* Reinforcement learning \r\n* Clustering \r\n* Architecture of neural networks \r\n* Transfer and multi-task learning \r\n* Federated learning and clustering \r\n* Network modeling \r\n* Graph neural networks \r\n* NLP \r\n* Time series and recurrent neural networks \r\n* Dimensionality reduction and auto-encoders \r\n* Large-scale optimization and differential privacy \r\n* Adversarial learning \r\n* Theory for deep learning \r\n* Computer vision / image processing \r\n* Optimization for deep learning","links":[{"article_link":"https://neptune.ai/blog/ecml-pkdd-2020-research?utm_source=madewithml&utm_medium=post&utm_campaign=blog-ecml-pkdd-2020-research","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://neptune.ai/blog/ecml-pkdd-2020-research?utm_source=madewithml&utm_medium=post&utm_campaign=blog-ecml-pkdd-2020-research"}]},{"id":2417,"title":"Parallelizing Prophet Cross-Validation with Dask","description":"Applied Example w/ Code","tags":["article","code","dataset","notebook","tutorial","python","forecasting","time-series","time-series-forecasting","prophet","hyperparameter-optimization","dask","cross-validation","nyc-taxi"],"details":"- Forecast Average Ride Distance by Day for New York City Yellow Cabs\r\n- Cross-Validate that Model in Parallel with Dask\r\n- Use Parallelized CV to Accelerate Prophet Hyperparameter Optimization","links":[{"article_link":"https://medium.com/dropout-analytics/cross-validating-prophet-at-scale-72b1a21b6433?source=friends_link&sk=e7b1201491dd528dfa3ad3b9a324518c","code_link":"https://github.com/gumdropsteve/intro_to_prophet/blob/master/prophet_with_dask.ipynb","research_link":"","media_link":"","dataset_link":"https://github.com/gumdropsteve/datasets/blob/master/yellow_cab_ymd_averages.csv","demo_link":"","other_link":""}]},{"id":2416,"title":"RecSys 2020 - Takeaways and Notable Papers","description":"Some observations and notes on papers I enjoyed from this year's RecSys 2020.","tags":["article","recommendation-systems","recsys","recsys-2020"],"details":"[RecSys 2020](https://recsys.acm.org/recsys20/) ran from 22nd - 26th September. It was a great opportunity to peek into some of the latest thinking about recommender systems from academia and industry. Here are some observations and notes on papers I enjoyed.\r\n\r\n**Some takeaways**:\r\n\r\n* Emphasis on ethics & bias\r\n* Offline evaluation is tricky\r\n* Dot product > learned similarities\r\n* Many examples of real-world recsys","links":[{"article_link":"https://eugeneyan.com/writing/recsys2020/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2415,"title":"Explainable ML Monitoring","description":"The video covers an overview of some of the risks of AI, the need for explainable monitoring, and what exactly we mean when we talk about it.","tags":["video","interpretability","monitoring"],"details":"This video introduces Explainable ML Monitoring, which extends traditional monitoring to provide deep model insights with actionable steps. With monitoring, users can understand the problem drivers, root cause issues, and analyze the model to prevent a repeat, saving considerable time and increasing trust in AI in production. ","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://www.youtube.com/watch?v=1VGZdpipKpA","dataset_link":"","demo_link":"","other_link":"https://fiddler.ai"}]},{"id":2414,"title":"GenForce Lib for Generative Modeling","description":"GenForce: an efficient PyTorch library for deep generative modeling (StyleGANv1v2, PGGAN, etc).","tags":["code","pytorch","library","generative-modeling","genforce"],"details":"An efficient PyTorch library for deep generative modeling. May the Generative Force (GenForce) be with You.\r\n\r\n### Highlights\r\n\r\n- **Distributed** training framework.\r\n- **Fast** training speed.\r\n- **Modular** design for prototyping new models.\r\n- **Highly** reproducing the training of StyleGAN compared to [the official TensorFlow version](https://github.com/NVlabs/stylegan).\r\n- **Model zoo** containing a rich set of pretrained GAN models, with [Colab live demo](https://colab.research.google.com/drive/1ytdR30L7uXLaG_4Iph331o70wZWA-bkd?usp=sharing) to play.\r\n\r\nWe will also support following functions *in the very near future*. Please **STAY TUNED**.\r\n\r\n- Training of PGGAN and StyleGAN2 (and likely BigGAN too).\r\n- Benchmark on model training.\r\n- Training of GAN encoder from [In-Domain GAN Inversion](https://genforce.github.io/idinvert).\r\n- Other recent work from our [GenForce](http://genforce.github.io/).\r\n\r\n\r\n![](https://github.com/genforce/genforce/raw/master/teaser.gif)","links":[{"article_link":"","code_link":"https://github.com/genforce/genforce","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://genforce.github.io/"}]},{"id":2413,"title":"Keeping Data Pipelines healthy w/ Great Expectations GH Actions","description":"We show you how you can use GitHub Actions together with the open source project Great Expectations to automatically test, document, and profile data pipelines.","tags":["article","video","unit-tests","testing","data-pipelines","github-actions","great-expectations","data-quality"],"details":"In this post, we show you how you can use GitHub Actions together with the open source project [Great Expectations](https://greatexpectations.io/) to automatically test, document, and profile your data pipelines as part of your traditional CI workflows. Checking data in this way can help data teams save time and promote analytic integrity of their data. We\u2019ll also show how to generate dashboards that give you insight into data problems as part of your CI process. Below is a demonstration of this at work, triggered by a change to a SQL query in a pull request that causes a data integrity issue:","links":[{"article_link":"https://github.blog/2020-10-01-keeping-your-data-pipelines-healthy-with-the-great-expectations-github-action/","code_link":"","research_link":"","media_link":"https://www.youtube.com/watch?v=V2TgkoExzvA","dataset_link":"","demo_link":"","other_link":""}]},{"id":2412,"title":"Introduction to 3D Medical Imaging: Preprocessing & Augmentations","description":"Learn how to apply 3D transformations for medical image preprocessing and augmentation, to setup your awesome deep learning pipeline.","tags":["article","code","notebook","tutorial","deep-learning","machine-learning","health","computer-vision","data-augmentation","medical-imaging","preprocessing","demo"],"details":"**Contents**\r\n\r\n1. 2D planes visualization\r\n1. Medical image resizing (down/up-sampling)\r\n2. Medical image rescaling (zoom- in/out)\r\n3. 3D Medical image rotation\r\n4. 3D medical image flip\r\n5. Medical image shifting (displacement)\r\n6. Random 3D crop\r\n7. Clip intensity values (outliers)\r\n8. Intensity normalization in medical images\r\n8. Elastic deformation\r\n","links":[{"article_link":"https://theaisummer.com/medical-image-processing/","code_link":"https://colab.research.google.com/drive/1fyU_YaZUO3B5qVzBJwGoYZ6XVvVLog30","research_link":"","media_link":"","dataset_link":"","demo_link":"https://theaisummer.com/medical-image-deep-learning/","other_link":"https://theaisummer.com/medical-image-coordinates/"}]},{"id":2411,"title":"How to Make Sense of the Reinforcement Learning Agents?","description":"What and Why I Log During Training and Debug?","tags":["article","tutorial","deep-learning","machine-learning","reinforcement-learning","neptune-ai","neptune"],"details":"We discuss **what** and **why** to log during reinforcement learning experimentation. We focus on two questions:\r\n\r\n* **How to make sense of the reinforcement learning agents?**\r\n* **What and why to log during training and debug?**\r\n\r\n![humanoid](https://i1.wp.com/neptune.ai/wp-content/uploads/RL-humanoid-falling.gif?resize=390%2C392&ssl=1)\r\n\r\nWe dive deep into few categories to explain why to log particular metric:\r\n\r\n#### how is the agent doing?\r\n* Episode return\r\n* Episode length\r\n* Solve rate\r\n\r\n#### progress of training\r\n* Total environment steps\r\n* Training steps\r\n* Wall time\r\n* Steps per second\r\n\r\n#### what is the agent thinking/doing?\r\n* State/Action value function\r\n* Policy entropy\r\n\r\n#### how the training goes?\r\n* KL divergence\r\n* Network weights/gradients/activations histograms\r\n* Policy/Value/Quality/\u2026 heads losses\r\n\r\n#### Aggregated statistics\r\n* Average and standard deviation\r\n* Minimum/Maximum value\r\n* Median\r\n\r\n![aggregations](https://i1.wp.com/neptune.ai/wp-content/uploads/RL-training-results-6.png?w=512&ssl=1)\r\n","links":[{"article_link":"https://neptune.ai/blog/how-to-make-sense-of-the-reinforcement-learning-agents-what-and-why-i-log-during-training-and-debug?utm_source=madewithml&utm_medium=post&utm_campaign=blog-how-to-make-sense-of-the-reinforcement-learning-agents-what-and-why-i-log-during-training-and-debug","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://neptune.ai/blog/how-to-make-sense-of-the-reinforcement-learning-agents-what-and-why-i-log-during-training-and-debug?utm_source=madewithml&utm_medium=post&utm_campaign=blog-how-to-make-sense-of-the-reinforcement-learning-agents-what-and-why-i-log-during-training-and-debug"}]},{"id":2410,"title":"Serving PyTorch models in production with the Amazon SageMaker","description":"TorchServe is now natively supported in Amazon SageMaker as the default model server for PyTorch inference. ","tags":["article","tutorial","aws","pytorch","production","sagemaker","torchserve","serving"],"details":"You can use TorchServe natively with Amazon SageMaker through the following steps:\r\n\r\n* Create a model in Amazon SageMaker. \r\n* Create an endpoint configuration for an HTTPS endpoint. \r\n* Create an HTTPS endpoint. ","links":[{"article_link":"https://aws.amazon.com/blogs/machine-learning/serving-pytorch-models-in-production-with-the-amazon-sagemaker-native-torchserve-integration/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2409,"title":"Deploying Python FastAPI on Azure App Service","description":"A detailed walk through on how to deploy FastAPI on Azure App Service. This includes detailed article and a video demonstration","tags":["article","code","research","tutorial","video","azure","fastapi","python","architecture","devops","demo","ci-cd"],"details":"* Architectural Overview of Deploying FastAPI on Azure App Service\r\n* Create & Configure Azure Database for PostgreSQL server\r\n\t* Create PostgreSQL server on Azure\r\n\t* Configure Azure database for PostgreSQL server\r\n\t* Connect to Azure PostgreSQL Database server from pgAdmin\r\n* Create & Configure Azure App Service (Linux)\r\n\t* Create Azure App Service\r\n\t* Configure Azure App Service\r\n* Configure to Deploy FastAPI on Azure App Service from GitHub\r\n* [Video Tutorial](https://bit.ly/2HA6SUj)","links":[{"article_link":"https://www.tutlinks.com/deploy-fastapi-on-azure/","code_link":"https://github.com/windson/fastapi/tree/fastapi-postgresql-azure-deploy","research_link":"","media_link":"https://www.youtube.com/watch?v=oLdEI3zUcFg","dataset_link":"","demo_link":"","other_link":"www.tutlinks.com"}]},{"id":2408,"title":"Revelations of Gradients and Hessians.","description":"This blog post explores some of the insights gained from looking at gradients and Hessian matrices of the objective functions/loss functions. ","tags":["article","deep-learning"],"details":"1. This blog post aims at explaining Chapter 4 of the Deep learning textbook by Ian Goodfellow et.al in detail, and contains proofs for some theorems which were stated in the chapter.\r\n2. Contains plots which help in understanding the material through visual aid.","links":[{"article_link":"https://abhimanyu08.github.io/blog/deep-learning/mathematics/2020/07/20/final.html","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2406,"title":"Audio signal analysis and Feature extraction","description":"Extract features from audio signal as a part of Speech recognition task","tags":["code","research","tutorial","library","audio","feature-engineering","speech","speech-recognition","melspectrum","mfcc"],"details":"**Audio signal analysis and Feature extraction**\r\n\r\nMain aim of the project is to understand audio signals and extract features from the signals. Audio signals are periodic signal, hence, we can break the signal at constant time-steps and extract features. These features at constant time steps are given as input to Deep learning models for Speech Recognition task. \r\n\r\n\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/savitha91/AudioSignal_FeatureExtraction","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2405,"title":"Scientific Computing in Python: Introduction to NumPy& Matplotlib","description":"Blog article with the embedded \u201cnarrated content\u201d for NumPy and Matplotlib notes.","tags":["article","code","tutorial","matplotlib","numpy"],"details":"* **4.1: NumPy Basics**\r\n\t* NumPy \u2013 Working with Numerical Arrays\r\n\t* Introduction to NumPy\r\n\t* Motivation: NumPy is fast!\r\n\t* N-dimensional Arrays\r\n* **4.2: NumPy Array Construction and Indexing**\r\n\t* Array Construction Routines\r\n\t* Array Indexing\r\n* **4.3: NumPy Array Math and Universal Functions**\r\n\t* Array Math and Universal Functions\r\n* **4.4: NumPy Broadcasting**\r\n\t* Broadcasting\r\n* **4.5: NumPy Advanced Indexing \u2013 Memory Views and Copies**\r\n\t* Advanced Indexing \u2013 Memory Views and Copies\r\n\t* Fancy Indexing\r\n\t* Boolean Masks for Indexing\r\n* **4.6: Random Number Generators**\r\n\t* Random Number Generators\r\n* **4.7: Reshaping NumPy Arrays**\r\n\t* Reshaping Arrays\r\n* **4.8: NumPy Comparison Operators and Masks**\r\n\t* Comparison Operators and Masks\r\n* **4.9: Linear Algebra with NumPy**\r\n\t* Linear Algebra with NumPy Arrays\r\n\t* SciPy\r\n* **4.10: Matplotlib**\r\n\t* What is Matplotlib?\r\n\t* Plotting Functions and Lines\r\n\t* Scatter Plots\r\n\t* Bar Plots\r\n\t* Histograms\r\n\t* Subplots\r\n\t* Colors and Markers\r\n\t* Saving Plots\r\n\t* Resources\r\n\r\n![](https://sebastianraschka.com/images/blog/2020/numpy-intro/matmatmul.png)","links":[{"article_link":"https://sebastianraschka.com/blog/2020/numpy-intro.html","code_link":"https://github.com/rasbt/numpy-intro-blogarticle-2020","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2404,"title":"12 Factors of Reproducible Machine Learning in Production","description":"We took our experience to deduce 12 factors (as a nod to the 12 factor app) that build the backbone of successful ML in production.","tags":["article","code","machine-learning","production","reproducability"],"details":"We\u2019ve faced all of these issues, and more, and now took our experience to deduce 12 factors (as a nod to the [12 factor app](https://12factor.net/)) that build the backbone of successful ML in production.\r\n\r\n* Versioning\r\n\t* You need to version your code, and you need to version your data.\r\n* Explicit feature dependencies\r\n\t* Make your feature dependencies explicit in your code.\r\n* Descriptive training and preprocessing\r\n\t* Write readable code and separate code from configuration.\r\n* Reproducibility of trainings\r\n\t* Use pipelines and automation.\r\n* Testing\r\n\t* Test your code, test your models.\r\n* Drift / Continuous training\r\n\t* If you data can change run a continuous training pipeline.\r\n* Tracking of results\r\n\t* Track results via automation.\r\n* Experimentation vs Production models\r\n\t* Notebooks are not production-ready, so experiment in pipelines early on.\r\n* Training-Serving-Skew\r\n\t* Correctly embed preprocessing to serving, and make sure you understand up- and downstream of your data.\r\n* Comparability\r\n\t* Build your pipelines so you can easily compare training results across pipelines.\r\n* Monitoring\r\n\t* Again: you build it, you run it. Monitoring models in production is a part of data science in production.\r\n* Deployability of Models\r\n\t* Every training pipeline needs to produce a deployable artefact, not \u201cjust\u201d a model.\r\n\r\n![](https://maiot.io/assets/core/arch-vert-lg.svg)","links":[{"article_link":"https://blog.maiot.io/12-factors-of-ml-in-production/","code_link":"https://docs.maiot.io/","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://maiot.io/"}]},{"id":2403,"title":"Easy Data Augmentation (EDA)","description":"Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks","tags":["article","code","library","data-augmentation","natural-language-processing","eda","text-augmentation"],"details":"We present EDA: easy data augmentation techniques for boosting performance on text classification tasks. EDA consists of four simple but powerful operations: synonym replacement, random insertion, random swap, and random deletion. On five text classification tasks, we show that EDA improves performance for both convolutional and recurrent neural networks. EDA demonstrates particularly strong results for smaller datasets; on average, across five datasets, training with EDA while using only 50% of the available training set achieved the same accuracy as normal training with all available data. We also performed extensive ablation studies and suggest parameters for practical use.\r\n\r\n![](https://miro.medium.com/max/778/1*y88F2-lpLQNxw_ubWoGctQ.png)","links":[{"article_link":"https://towardsdatascience.com/these-are-the-easiest-data-augmentation-techniques-in-natural-language-processing-you-can-think-of-88e393fd610","code_link":"https://github.com/jasonwei20/eda_nlp","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2402,"title":"Adapting Text Augmentation to Industry Problems","description":"In this post I will talk about the recent advances in exploiting language models for data generation and also show how, where we can implement them in Industry.","tags":["article","data-augmentation","language-modeling","natural-language-processing","pet","cbert","text-augmentaiton"],"details":"For this post, I would like to consider two Industrial tasks where we can use augmentation:\r\n\r\n> Categorizing complaints/survey-responses into specific categories. (Classification task)\r\n\r\nLet\u2019s say that you are a Computer Tech-Giant like HP/Microsoft and want to process your incoming messages into clear buckets like Hardware, Customer Care, Software, General Support, Tech Support, Refund etc.\r\n\r\n> Redacting sensitive information from the data. (Sequence Labeling task)\r\n\r\nLet\u2019s consider that you are an independent survey firm who\u2019s documenting the statistics of COVID-19. In this survey, to respect the privacy of individuals involved and to avoid targetted harassment by the public, few statements must be stripped of the key details.\r\n\r\n![](https://gitlost-murali.github.io/blogs/assets/images/dichotomy-pet-annot.png)","links":[{"article_link":"https://gitlost-murali.github.io/blogs/nlp/augmentation/exploiting-contextual-models-for-data","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2400,"title":"MLJ.jl","description":"A Julia machine learning framework.","tags":["code","julia","machine-learning","library"],"details":"MLJ (Machine Learning in Julia) is a toolbox written in Julia providing a common interface and meta-algorithms for selecting, tuning, evaluating, composing and comparing machine learning models written in Julia and other languages. MLJ is released under the MIT licensed and sponsored by the [Alan Turing Institute](https://www.turing.ac.uk/).\r\n\r\n![](https://github.com/alan-turing-institute/MLJ.jl/raw/master/material/MLJ_stack.svg)","links":[{"article_link":"","code_link":"https://github.com/alan-turing-institute/MLJ.jl","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://alan-turing-institute.github.io/MLJ.jl/dev/"}]},{"id":2399,"title":"Image Dehazing using GMAN net","description":"Single image dehazing using the GMAN network and its implementation in Tensorflow(version 2+).","tags":["article","code","dataset","research","tensorflow","deep-learning","dehazing"],"details":"Generic Model-Agnostic Convolutional Neural Network(GMAN) is a convolutional neural network proposed for haze removal and clear image restoration. It is an end-to-end deep learning system that employs the encoder-decoder network for denoising image. I've used Kaggle notebook for the purpose of implementation and training. Dataset used for training and validation is SOTS outdoor [available here](https://www.kaggle.com/wwwwwee/dehaze).","links":[{"article_link":"https://medium.com/@sanchitvj/gman-net-for-image-dehazing-65a2b3f679a5?source=---------2----------------------------","code_link":"https://github.com/sanchitvj/Image-Dehazing-using-GMAN-net","research_link":"","media_link":"","dataset_link":"https://www.kaggle.com/wwwwwee/dehaze","demo_link":"","other_link":""}]},{"id":2398,"title":"Deep Dive into TensorBoard: Tutorial With Examples","description":"There is a common business saying that you can\u2019t improve what you don\u2019t measure. This is true in machine learning as well. There are various tools for measuring","tags":["article","tutorial","tensorflow","tensorboard"],"details":"Here are some things we\u2019ll cover in this text:\r\n\r\n* Visualizing images in TensorBoard\r\n* Checking model weights and biases on TensorBoard\r\n* visualizing the model\u2019s architecture\r\n* sending a visual of the confusion matrix to TensorBoard\r\n* profiling your application so as to see its performance, and\r\n* using TensorBoard with Keras, PyTorch, and XGBoost","links":[{"article_link":"https://neptune.ai/blog/tensorboard-tutorial","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2397,"title":"Optimizing MobileDet for Mobile Deployments","description":"Learn about the criticalities of effectively optimizing MobileDet object detectors for mobile deployments.","tags":["article","code","notebook","paper","research","tutorial","tensorflow","computer-vision","object-detection","tensorflow-lite","edge-ai","arxiv:2004.14525"],"details":"This year researchers from the University of Wisconsin-Madison and Google published their work on MobileDet. MobileDet presents an architectural philosophy for designing object detectors specifically targeted toward running on mobile accelerators like DSP, EdgeTPU, and so on. MobileDet yields significant improvement over architectures MobileNetV2+SSDLite and MobileNetV3+SSDLite on the COCO object detection task with the same accelerated inference time. Long story cut short, if you are planning to use object detection models in mobile applications MobileDets may be an extremely good choice.\r\n\r\nOne fantastic thing about modern-day research is most of the time, the code and essential artifacts (like the trained models) are available publicly. MobileDet is no exception; the authors released their code and pre-trained models in TensorFlow Object Detection (TFOD) API. The model files come in three different variants:\r\n\r\n* Optimized for mobile CPU\r\n* Optimized for EdgeTPU\r\n* Optimized for DSP\r\n\r\nEach of these variants includes the pre-trained checkpoints, a TensorFlow Lite (TFLite) compatible model graph, a TFLite model file, a configuration file, and a graph proto. The models were pre-trained on the COCO dataset.\r\n\r\nIn this post, I am going to be revisiting the TFLite conversion from the pre-trained model checkpoints along with some of the non-trivial things that come up during the process. It is basically an extension of Khanh LeViet and my findings we shared over [this GitHub thread](https://github.com/ml-gde/e2e-tflite-tutorials/issues/21).","links":[{"article_link":"https://sayak.dev/mobiledet-optimization/","code_link":"https://colab.research.google.com/github/sayakpaul/Adventures-in-TensorFlow-Lite/blob/master/MobileDet_Conversion_TFLite.ipynb","research_link":"https://arxiv.org/abs/2004.14525","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2396,"title":"EfficientDet meets Pytorch Lightning","description":"Beginner friendly guide to object detection using EfficientDet.","tags":["article","tutorial","computer-vision","object-detection","efficientdet","pytroch","pytroch-lightning"],"details":"Welcome to this beginner friendly guide to object detection using EfficientDet. Similarly to what I have done in the NLP guide (check it [here](https://www.kaggle.com/yassinealouini/roberta-meets-tpus) if you haven't yet already), there will be a mix of theory, practice, and an application to the global wheat competition dataset.\r\n\r\nThis will be a very long notebook, so use the following table of content if necessary. Grab something to drink and enjoy!\r\n\r\n**Introduction**\r\n\r\n* Modern Computer Vision\r\n* Different Detection Tasks\r\n* Object Detection 101\r\n* Object Detection Models Zoology\r\n* EfficientDet Explained\r\n* EfficientNet as a Backbone\r\n* BiFPN as a Multi-Scale Fusion\r\n* Two Heads\r\n* Compound Scalings\r\n* Application: Global Wheat Detection\r\n\r\n**Understanding the Task**\r\n\r\n* Evaluation Metric\r\n* Data processing\r\n* The Model\r\n* The Dataset\r\n* Pytorch Complete Training Pipeline\r\n* Evaluation\r\n* Inference\r\n\r\n**Advanced Concepts**\r\n\r\n* Mosaic Augmentation\r\n* TTA\r\n* WBF","links":[{"article_link":"https://www.kaggle.com/yassinealouini/efficientdet-meets-pytroch-lightning","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2395,"title":"Python caching in GitHub Actions","description":"How to speed up slow Python builds in GitHub Actions with effective caching.","tags":["article","tutorial","mlops","github-actions","caching"],"details":"Now, I\u2019d like to say the switch over to GitHub Actions was all smooth sailing from the beginning, but that\u2019s not quite true. AllenNLP is a large project with some even larger dependencies, like PyTorch, which can lead to really slow builds when the Python environment needs to be set up from scratch.\r\n\r\nNaturally, the solution to this is dependency caching, but we quickly discovered that the recommended way of caching pip dependencies for Python was still too slow for us.","links":[{"article_link":"https://medium.com/ai2-blog/python-caching-in-github-actions-e9452698e98d","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2394,"title":"Why Data Quality is Key to Successful ML Ops","description":"A look at ML Ops and highlight how and why data quality is key to ML Ops workflows.","tags":["article","production","unit-tests","testing","mlops","great-expectations"],"details":"In this post, we are going to look at ML Ops, a recent development in ML that bridges the gap between ML and traditional software engineering, and highlight how data quality is key to ML Ops workflows in order to accelerate data teams and maintain trust in your data.\r\n\r\n![](https://greatexpectations.io/static/ab90fe5e5725a6cfe8b3aebccca58575/f570d/ml_workflow_validation.png)","links":[{"article_link":"https://greatexpectations.io/blog/ml-ops-data-quality/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2393,"title":"A Friendly Introduction to PCA","description":"After years of almost, but not quite fully understanding PCA, here is my attempt to explain it fully, hopefully leaving some of the magic intact.","tags":["article","dimensionality-reduction","unsupervised-learning","principal-component-analysis"],"details":"We will work from the outside in: we will view PCA first as a way of finding a smaller representation of a dataset. This is a typical machine learning problem: find a compressed representation of the data such that the reconstructions are as close to the original as possible. This is a simple view of PCA, an we\u2019ll be able to compute it with nothing more than gradient descent with a few extra tricks for satisfying constraints.\r\n\r\n","links":[{"article_link":"http://peterbloem.nl/blog/pca","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2392,"title":"Deep Learning with TensorFlow","description":"Learn Deep Learning with TensorFlow","tags":["video","keras","tensorflow"],"details":"","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://www.youtube.com/watch?v=VhXitR_dfNo","dataset_link":"","demo_link":"","other_link":""}]},{"id":2391,"title":"Text Classification Using Long Short Term Memory & GloVe Embeddin","description":"Classify Text using Pre-trained Embeddings and Bidirectional LSTMs\r\n","tags":["article","tensorflow"],"details":"","links":[{"article_link":"https://heartbeat.fritz.ai/text-classification-using-long-short-term-memory-glove-embeddings-6894abb730e1","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2390,"title":"mini-pokedex end to end tutorial - Gotta classify 'em all!","description":"Build a Pokemon image classifier to classify the awesome starters Pikachu, Charmander, Squirtle, and Bulbasaur.","tags":["article","code","tutorial","azure","docker","fastai","computer-vision","image-classification","pokemons"],"details":"This is a practical tutorial of building and deploying deep learning model.\r\n\r\nThe goal of this article is to set up a deep learning workspace on azure, build and deploy end to end deep learning projects on azure. We will start by building a custom image data set, train the model using fastai and then deploy the model in production. \r\n\r\nRead the article here [End to End Deep Learning Tutorial using Azure](https://towardsdatascience.com/end-to-end-deep-learning-tutorial-using-azure-f7bb524f7277)","links":[{"article_link":"https://medium.com/@akshay090/end-to-end-deep-learning-tutorial-using-azure-f7bb524f7277","code_link":"https://github.com/Akshay090/pokedex-deploy","research_link":"","media_link":"https://player.vimeo.com/video/448258671","dataset_link":"","demo_link":"","other_link":""}]},{"id":2389,"title":"bingoset - CLI tool to create image dataset.","description":"CLI Toolkit to quickly create an image dataset using Bing Image Search API.","tags":["code","library","computer-vision","image-classification","datasets","cli","bing-api","dataset-creation","bingoset"],"details":"Easy to use CLI tool to create image dataset using bing image search API.\r\n\r\nIt effectively handles edge cases for images when they are corrupted or have invalid source.\r\n\r\nUsage\r\n\r\n> bingoset q pikachu\r\n\r\nThis will download 250 (default) images of pikachu into a directory called dataset (default)\r\n","links":[{"article_link":"","code_link":"https://github.com/Akshay090/bingoset","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2388,"title":"SemTorch","description":"Different deep learning architectures definitions that can be applied to image segmentation.","tags":["code","fastai","pytorch","library","computer-vision","object-detection","semantic-segmentation","segmentation","instance-segmentation","salient-object-detection"],"details":"Different deep learning architectures definitions that can be applied to image segmentation. All the architectures are implemented in PyTorch and can been trained easily with FastAI 2.\r\n\r\nThese architectures are classified as:\r\n\r\n* **Semantic Segmentation**: each pixel of an image is linked to a class label. ![](https://raw.githubusercontent.com/WaterKnight1998/SemTorch/develop/readme_images/semantic_segmentation.png)\r\n* **Instance Segmentation**: is similar to semantic segmentation, but goes a bit deeper, it identifies , for each pixel, the object instance it belongs to. ![](https://raw.githubusercontent.com/WaterKnight1998/SemTorch/develop/readme_images/instance_segmentation.png)\r\n* **Salient Object Detection** (Binary clases only): detection of the most noticeable/important object in an image. ![](https://raw.githubusercontent.com/WaterKnight1998/SemTorch/develop/readme_images/salient_object_detection.png)","links":[{"article_link":"","code_link":"https://github.com/WaterKnight1998/SemTorch","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2387,"title":"GitHub Actions for Machine Learning","description":"This presentation discusses the use of GitHub Actions to automate certain steps of a toy ML project. ","tags":["code","github","tutorial","scikit-learn","wandb","mlops","github-actions"],"details":"In this deck I discuss the importance of incorporating CI/CD in ML engineering. We took a small demo that uses `scikit-learn` and **GitHub Actions** to automate certain parts of an ML Project and lets a bot comment on a PR with the latest experimental results.\r\n\r\nThis repository demonstrates how to integrate GitHub Actions to:\r\n\r\n**Upon a new commit** \r\n\r\n* Automatically authenticate wandb (Weights and Biases) using a custom GitHub secret.\r\n* Automatically train a small Random Forest Regressor model on the wine quality dataset.\r\n* Automatically log the training and other important model metrics to wandb.\r\n* Cache Python dependencies so that old dependencies do not get installed each time a run is triggered.\r\n* Generate a metrics.csv file after a run is successfully completed.\r\n\r\n**Upon a new pull request**\r\n\r\n* Fetch the latest wandb run URL and comment that on the PR.\r\n\r\n![](https://dildehdrg5ol8.cloudfront.net/images/2394-ee3a1eeceedeaaf705204bed3cd07c46.png)","links":[{"article_link":"","code_link":"https://github.com/sayakpaul/wine/","research_link":"","media_link":"http://bit.ly/ga-ml","dataset_link":"","demo_link":"","other_link":""}]},{"id":2386,"title":"Silero Models: pre-trained enterprise-grade STT models","description":"Silero Speech-To-Text models provide enterprise grade STT in a compact form-factor for several commonly spoken languages.","tags":["article","code","dataset","notebook","paper","research","onnx","pytorch","tensorflow","library","speech","speech-recognition","speech-to-text","demo"],"details":"Speech-to-text has traditionally had high barriers of entry due to a number or reasons:\r\n\r\n* Hard-to-collect data;\r\n* Costly annotation and high data requirements;\r\n* High compute requirements and adoption of obsolete hard to use technologies;\r\n\r\nHere are some of the typical problems that existing ASR solutions and approaches had before our release:\r\n\r\n* STT Research typically focused on huge compute budgets;\r\n* Pre-trained models and recipes did not generalize well, were difficult to use even as-is, relied on obsolete tech;\r\n* Until now STT community lacked easy to use high quality production grade STT models;\r\n\r\nFirst we tried to alleviate some of these problems for the community by publishing the largest Russian spoken corpus in the world. Now we try to solve these problems as follows:\r\n\r\n* We publish a set of pre-trained high-quality models for popular languages;\r\n* Our models are designed to be as robust to different domains as you can see in our benchmarks;\r\n* Our models are pre-trained on vast and diverse datasets;\r\n* Our models are fast and can be run on commodity hardware;\r\n* Our models are easy to use;\r\n\r\n**Future plans**:\r\n\r\n* Publish quantized models;\r\n* Compress our Enterprise Edition models up to ~20 Megabytes without loss of fidelity;\r\n* We also are planning to release Community Edition model for other popular languages;","links":[{"article_link":"https://medium.com/@aveysov/modern-google-level-stt-models-released-c6491019e30c?sk=0d51c5301da830c31dcd9d2de7171c17","code_link":"https://github.com/snakers4/silero-models","research_link":"https://thegradient.pub/towards-an-imagenet-moment-for-speech-to-text/","media_link":"","dataset_link":"https://github.com/snakers4/open_stt","demo_link":"https://colab.research.google.com/github/snakers4/silero-models/blob/master/examples.ipynb","other_link":"https://thegradient.pub/a-speech-to-text-practitioners-criticisms-of-industry-and-academia/"}]},{"id":2385,"title":"Beginner\u2019s Guide to Linear Regression with cuML","description":"Break down of simple & multiple linear regression and how to easily implement both in Python with RAPIDS AI\u2019s cuML","tags":["article","code","dataset","notebook","tutorial","python","linear-regression","machine-learning","regression","data-science","cuml","rapids"],"details":"![](https://miro.medium.com/max/1400/1*Zl_Z3bdXrJJWoycsJQhikg.png)","links":[{"article_link":"https://medium.com/future-vision/beginners-guide-to-linear-regression-in-python-with-cuml-30e2709c761?source=friends_link&sk=1da35920b9e2ffea59d5cb3c998bfeae","code_link":"https://raw.githubusercontent.com/Dropout-Analytics/cuml_linear_regression/master/linear_regression.ipynb","research_link":"","media_link":"","dataset_link":"https://raw.githubusercontent.com/scikit-learn/scikit-learn/master/sklearn/datasets/data/boston_house_prices.csv","demo_link":"","other_link":""}]},{"id":2384,"title":"Intro to Facebook Prophet","description":"Everything you need to know when starting out with Facebook\u2019s time series forecasting tool","tags":["article","code","dataset","tutorial","python","time-series","time-series-forecasting","prophet"],"details":"**Summary / TLDR**\r\n\r\n* how Prophet calculates these forecasts \u2014 `trend`, `seasonality`, `holidays`\r\n* installing Prophet with pip \u2014 `pip install fbprophet`\r\n* molding data to `.fit()` the model \u2014 ds, y\r\n* calling a model, fitting data, and making a simple forecast\r\n* understanding weekly, yearly, & overall trend \u2014 `.plot_components()`\r\n* examining accuracy with `cross_validation` & `performance_metrics`","links":[{"article_link":"https://medium.com/future-vision/intro-to-prophet-9d5b1cbd674e?source=friends_link&sk=5709431ddc156b076b3cc1c22be3dcbf","code_link":"https://github.com/gumdropsteve/intro_to_prophet","research_link":"","media_link":"","dataset_link":"https://raw.githubusercontent.com/gumdropsteve/intro_to_prophet/master/data/WMT.csv","demo_link":"","other_link":""}]},{"id":2383,"title":"Beginner\u2019s Guide to BlazingSQL","description":"Everything you need to know when starting out","tags":["article","code","dataset","notebook","tutorial","python","sql","gpu","rapids","blazingsql"],"details":"**Outline**\r\n\r\n* What is BlazingSQL?\r\n* How does BlazingSQL work?\r\n* Practice with BlazingSQL\r\n* 3.1 Installation & Imports\r\n* 3.2 Creating Tables\r\n* 3.3 Querying Tables\r\n* 3.4 Handing off Results","links":[{"article_link":"https://medium.com/dropout-analytics/beginners-guide-to-blazingsql-9ab6c2a9c6ad?source=friends_link","code_link":"https://raw.githubusercontent.com/gumdropsteve/silent-disco/master/beginners_guide_to_bsql.ipynb","research_link":"","media_link":"","dataset_link":"https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page","demo_link":"","other_link":""}]},{"id":2382,"title":"Distributed SQL with Dask","description":"Scale your Python data science across multiple GPUs with BlazingSQL (w/ code + data)","tags":["article","code","dataset","notebook","tutorial","python","sql","gpu","dask","rapids","blazingsql"],"details":"Distributed SQL query execution is key in scaling the power of the RAPIDS community to the enterprise-level data challenges of today\u2019s market.\r\n\r\nBlazingSQL makes it easy by utilizing Dask and Dask-cuDF (dask_cudf), which means you can effortlessly conduct multiple GPUs through an intuitive Python API.","links":[{"article_link":"https://blog.blazingdb.com/distributed-sql-with-dask-2979262acc8a?source=friends_link&sk=077319064cd7d9e18df8c0292eb5d33d","code_link":"https://raw.githubusercontent.com/BlazingDB/Welcome_to_BlazingSQL_Notebooks/branch-0.15/blog_posts/distributed_sql_with_dask.ipynb","research_link":"","media_link":"","dataset_link":"https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page","demo_link":"","other_link":""}]},{"id":2381,"title":"PySR","description":"Simple and fast symbolic regression in Python/Julia via regularized evolution and simulated annealing.","tags":["code","paper","research","julia","python","regression","library","genetic-algorithm","arxiv:2006.11287","symbolic-regression","pysr"],"details":"Symbolic regression built on Julia, and interfaced by Python. Uses regularized evolution, simulated annealing, and gradient-free optimization.\r\n\r\nSymbolic regression is a very interpretable machine learning algorithm for low-dimensional problems: these tools search equation space to find algebraic relations that approximate a dataset.\r\n\r\nOne can also extend these approaches to higher-dimensional spaces by using a neural network as proxy, as explained in https://arxiv.org/abs/2006.11287, where we apply it to N-body problems. Here, one essentially uses symbolic regression to convert a neural net to an analytic equation. Thus, these tools simultaneously present an explicit and powerful way to interpret deep models.","links":[{"article_link":"","code_link":"https://github.com/MilesCranmer/pysr","research_link":"https://arxiv.org/abs/2006.11287","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2380,"title":"Interact with PyTorch layers using Jupyter Widgets","description":"Build your understanding of PyTorch's ConvTranspose1d layer using interactive visualisations\r\n\r\n","tags":["article","code","notebook","convolutional-neural-networks","interactive","padding","stride"],"details":"Sometimes we want to see inputs and outputs of PyTorch layers to build an intuition of what they do. If I've read the docs and put a few tensors through the layer while checking the inputs and outputs shapes, generally that's enough.\r\n\r\nBut sometimes there's weird parameters that I can't get my head around or I just want to see it working, so building interactive widgets helps me grow my understanding.\r\n\r\nSo in this post I'll show you how I built an interactive widget to explore PyTorch's `ConvTranspose1d`, while explaining a bit about the layer itself. We'll use Anacondas's [HoloViz](https://holoviz.org/) tools (Holoviews, Panel and Bokeh) for the plotting and interactivity.\r\n\r\nThe end goal is to have a interactive plot for interacting with `ConvTranspose1d` parameters and seeing the output like this tweet.","links":[{"article_link":"https://www.scottcondron.com/jupyter/visualisation/ai/deep%20learning/2020/09/25/interact-with-pytorch-layers-with-jupyter-widgets.html","code_link":"https://github.com/scottire/fastpages/blob/master/_notebooks/2020-09-25-interact-with-pytorch-layers-with-jupyter-widgets.ipynb","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2379,"title":"ML projects ideas! (I've got all these implemented on my GitHub)","description":"machine-learning/deep learning project ideas (mostly computer vision)","tags":["machine-learning","machine-learning-project-ideas"],"details":"","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://youtu.be/ynx48f7LhCc","dataset_link":"","demo_link":"","other_link":""}]},{"id":2376,"title":"colab-cli - sync jupyter notebooks with colab notebooks.","description":"Experience better workflow with google colab, local jupyter notebooks and git.You can now easily manage working with jupyter notebooks and google colab from cli","tags":["article","code","notebook","git","python","deep-learning","machine-learning","library","cli"],"details":"**Features**\r\n\r\n* \ud83e\udd20 Upload local jupyter notebook to gdrive from cli\r\n* \ud83d\ude06 Quick access to jupyter notebooks in gdrive from your cli\r\n* \ud83d\ude80 Keeps jupyter notebooks organized in gdrive by creating local file structure in gdrive\r\n* \ud83e\udd2f Sync local work on notebooks with gdrive\r\n* \ud83e\udd42 Git friendly, pull changes from gdrive and commit to git\r\n\r\nRead more [here](https://github.com/Akshay090/colab-cli)","links":[{"article_link":"https://akshay-ashok.now.sh/projects/colab-cli","code_link":"https://github.com/Akshay090/colab-cli","research_link":"","media_link":"https://asciinema.org/a/314749","dataset_link":"","demo_link":"","other_link":""}]},{"id":2375,"title":"How to do more with less data ?\u2014 Active learning","description":"An Article and demonstration on how to use only a fraction of data to achieve the same accuracy as on the full data using an intuitive active learning method.","tags":["article","code","notebook","tutorial","machine-learning","active-learning","annotation","semi-supervised-learning"],"details":"Objectives:\r\n\r\nAn Article and demonstration on how to use only a fraction of data to achieve the same accuracy as on the full data using an intuitive active learning method called \"Uncertainty sampling with entropy\".\r\n\r\nDemo:\r\n\r\nFor the demonstration, I have used Active learning to utilize only 23% of the actual training dataset ( ATIS intent classification dataset) to achieve the same result as training on 100% of the dataset.\r\n","links":[{"article_link":"https://towardsdatascience.com/how-to-do-more-with-less-data-active-learning-240ffe1f7cb9","code_link":"https://colab.research.google.com/drive/1BsTuFK8HcXS5WWlOCS1QHgvHRf2FK6aD","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2374,"title":"Extract Links from a Web Page using Python","description":"In this article we will discuss how to extract links from a URL using Python.","tags":["article","tutorial","python","program-development","web-services"],"details":"In this article we will discuss how to extract links from a URL using Python.\r\n\r\n**Table of Contents**\r\n\r\n* Introduction\r\n* Get HTML content from URL\r\n* Finding and extracting links from HTML\r\n* Complete Object-Oriented Programming Example\r\n* Conclusion","links":[{"article_link":"https://pyshark.com/extract-links-from-a-web-page-using-python/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2373,"title":"GraphNorm","description":"A Principled Approach to Accelerating Graph Neural Network Training.","tags":["code","paper","research","graph-neural-networks","graphnorm","arxiv:2009.03294"],"details":"GraphNorm is a principled normalization method that accelerates the GNNs training on graph classification tasks, where the key idea is to normalize all nodes for each individual graph with a learnable shift. Theoretically, we show that GraphNorm serves as a preconditioner that smooths the distribution of the graph aggregation's spectrum, and the learnable shift is used to improve the expressiveness of the networks. Empirically, we conduct experiments on several popular benckmark datasets, including the recently released Open Graph Benchmark. Results on datasets with different scale consistently show that GNNs with GraphNorm converge much faster and achieve better generalization performance.\r\n\r\n![](https://github.com/lsj2408/GraphNorm/raw/master/README.assets/Fig-Overview.png)","links":[{"article_link":"","code_link":"https://github.com/lsj2408/GraphNorm","research_link":"https://arxiv.org/abs/2009.03294","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2372,"title":" A spaced repetition app for keeping your reinforcement learning","description":"We aim to keep your reinforcement learning knowledge fresh by periodically reminding you of concepts making you a master of RL knowledge!!","tags":["article","reinforcement-learning"],"details":"Reinforcement Learning theory is expansive and has many moving parts. It is hard to remember equations and understand important RL concepts. We introduce a spaced repetition learning system to help you memorize reinforcement learning concepts. It basically reminds you of things that it suspects you have forgotten. The more you review cards the lesser you will see them. Spaced repetition systems has been shown to help users retain knowledge for years! We are excited to bring this concept to RL Learning.","links":[{"article_link":"https://masterrl.herokuapp.com/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://masterrl.herokuapp.com/"}]},{"id":2371,"title":"From Research to Production with Deep Semi-Supervised Learning","description":"Semi-Supervised Learning (SSL) has blossomed in the deep learning research community\u200a\u2014\u200awe share lessons learned over 15 months of taking SSL into production.","tags":["article","research","tutorial","deep-learning","machine-learning","production","semi-supervised-learning"],"details":"The success of most deep learning algorithms today is largely the result of decades of research, the growing availability of GPUs, and data. But not just any kind of data \u2014 the kind that is abundant, clean, and ***labeled***.\r\n\r\nDatasets like ImageNet, CIFAR10, SVHN, and others, have allowed researchers and practitioners to make remarkable progress on computer vision tasks and were immensely useful for our own experimentation. Yet the elephant in the room for many applications that seek to benefit from this progress, such as medicine, is precisely the fact that the data must be *abundant, clean, and labeled.*\r\n\r\n**Semi-supervised learning (SSL)**, a subfield that combines both supervised and unsupervised learning, has grown in popularity in the deep learning research community over the past few years. It\u2019s very possible that, at least in the short-term, SSL approaches could be the bridge between label-heavy supervised learning and a future of data-efficient modeling.\r\n\r\nIn this post, we talk about when you should consider using SSL approaches in your production environments and the lessons we\u2019ve learned using them to improve our object detection models at [Uizard](https://uizard.io). Of course, we\u2019ll do our best to share the big picture but keep some details of the wizardry to ourselves.\r\n\r\n***Our hope is that by displaying how and when SSL worked and didn\u2019t work for us and by sharing tips learned on our journey from research to production, we can inspire you to take a chance on SSL for your work and unlock the potential of your unlabeled data.***\r\n\r\nIn short, here are a few lessons we emphasize:\r\n\r\n* **Simplicity is king**. The most successful approaches in SSL that translated from research to production were those that were the simplest to reproduce. Specifically, we\u2019ll elaborate on how \u201cSelf-Training with Noisy Student\u201d ([Xie et al., 2019](https://arxiv.org/pdf/1911.04252.pdf)) worked for us.\r\n\r\n* **Pseudo-label refinement with heuristics can be extremely effective.** Pseudo-labeling is a popular component of SSL approaches \u2014 we find that using simple heuristics to refine our pseudo-labels in the unlabeled data improves performance across different sizes of unlabeled datasets.\r\n\r\n* **Progress in semi-supervised image classification is difficult to translate to object detection.** Much of the progress in SSL that we followed measured performance on image classification with promises of similar improvements on object detection, but we found it difficult to adapt them appropriately in practice. As a result, more work and research is needed in the semi-supervised object detection space.","links":[{"article_link":"https://medium.com/@nairvarun18/from-research-to-production-with-deep-semi-supervised-learning-7caaedc39093?source=friends_link&sk=5df3a09a0961c88b122684f5f71f4ec8","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2370,"title":"The Maker Philosophy with ML APIs","description":"Practising being a maker with Google Cloud Platform\u2019s ML APIs.","tags":["article","code","tutorial","gcp","apis","vision-api"],"details":"In this post, I discuss how I used several Google Cloud Platform (GCP) APIs to turn two ideas into small prototypes. It includes my thought process, the problems I ran into while developing the prototypes, and my approach toward tackling them. All the code discussed in the post is available in [this repository](https://github.com/sayakpaul/GCP-ML-API-Demos).","links":[{"article_link":"https://sayak.dev/mlapis-maker/","code_link":"https://github.com/sayakpaul/GCP-ML-API-Demos","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2369,"title":"GP-GAN: Towards Realistic High-Resolution Image Blending","description":"Blending composite images using a generative model and a Gaussian-Poisson equation with a Laplacian Pyramid","tags":["code","paper","research","pytorch","convolutional-neural-networks","deep-learning","generative-adversarial-networks","computer-vision","demo","laplacian-pyramid","image-blending","arxiv:1703.07195"],"details":"**Please click the thumbnail to view it clearly**.\r\n\r\n### Gaussian-Poisson-GANs-For-Image-Blending\r\n\r\nThis project implements an algorithm for blending composite images(copy-paste images/foreign objects in a scene) using a Wasserstein Generative Adversarial Network(GAN) and the Gaussian-Poisson equation.\r\n\r\n#### An overview of the algorithm\r\n\r\n* The GAN is trained to give a very low-resolution blend(eg. 64 x 64), given the composite image.\r\n* The low-resolution image is used as a color constaint in the Gaussian-Poisson equation proposed in [1]. An optimization problem is solved to estimate the low-frequency signals(i.e. using a Gaussian blur) of the GAN's output and to estimate the high-frequency signals(i.e. image gradient) of the composite(copy-paste) image using a Laplacian pyramid.\r\n\r\n* **[PyTorch code](https://github.com/aiarjun/Gaussian-Poisson-GANs-For-Image-Blending)** & **[Slides](https://drive.google.com/file/d/1SBwlqkelJqXrfwxZ5_uFK6QVXZYSJBxp/view)** by me ([aiarjun](https://github.com/aiarjun)).\r\n* **[Demo](http://wuhuikai.me/DeepJS/)** and **[Research](https://arxiv.org/abs/1703.07195)** are by the original authors of the algorithm. ","links":[{"article_link":"","code_link":"https://github.com/aiarjun/Gaussian-Poisson-GANs-For-Image-Blending","research_link":"https://arxiv.org/abs/1703.07195","media_link":"https://drive.google.com/file/d/1SBwlqkelJqXrfwxZ5_uFK6QVXZYSJBxp/view","dataset_link":"","demo_link":"http://wuhuikai.me/DeepJS/","other_link":""}]},{"id":2368,"title":"TableQA","description":"AI tool for querying natural language on tabular data like csvs and other dataframes.","tags":["code","notebook","tutorial","databases","sql","natural-language-processing","question-answering","conversational-ai","demo","tabular"],"details":"**Features**:\r\n\r\n* Supports detection from multiple csvs\r\n* Support FuzzyString implementation. i.e, incomplete csv values in query can be automatically detected and filled in the query.\r\n* Open-Domain, No training required.\r\n* Add manual schema for customized experience\r\n* Auto-generate schemas in case schema not provided\r\n\r\n**Next Steps**:\r\n\r\n* Host a web app for consumers.\r\n* Support more dataframes and databases. \r\n* Support for more complex queries.\r\n* Support for automatic data visualisations\r\n\r\nBuilt with the help of QA models of [HuggingFace transformers](https://huggingface.co/transformers/examples.html).\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/abhijithneilabraham/tableQA","research_link":"","media_link":"","dataset_link":"","demo_link":"https://colab.research.google.com/drive/1Bgd3L-839NVZiP3QqWfpkYIufQIm4Rar","other_link":""}]},{"id":2367,"title":"Interactive Analysis of Sentence Embeddings","description":"Learn how to interactively explore sentence embedding and labels in Tensorflow Embedding Projector.","tags":["article","tutorial","tensorflow","tensorflow-js","contextualized-embeddings","embeddings","natural-language-processing","visualization"],"details":"[Embedding Projector](https://projector.tensorflow.org/) is a free web application for visualizing high-dimensional data. It has built-in demos for visualizing word embeddings in NLP and image embeddings for MNIST in Computer Vision.\r\n\r\nI recently experimented with a way to load sentence embeddings along with the class labels into this tool and explore them interactively. In this blog post, I will explain the end-to-end process with an example dataset.","links":[{"article_link":"https://amitness.com/interactive-sentence-embeddings/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2366,"title":"Help-Me-Read: Text Summarization using Flask and HuggingFace.","description":"Text summarization, translation and Questions Answers generation using HuggingFace and deployed using Flask, Streamlit. Detailed guide on github. ","tags":["code","docker","huggingface","natural-language-processing","streamlit"],"details":"Help me read is created to help user read long text posts by making use of machine learning to summarize text and generate relevant question answers. The app can be deployed using Flask, streamlit and also one can use colab link from my github. I have added installation documentation and a dockerfile for simple usage. I have a bit less experience in NLP, so if you have any suggestion on improvements/optimization please let me know. ","links":[{"article_link":"","code_link":"https://github.com/Anku5hk/Help-Me-Read","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2365,"title":"How to build a production-ready Deep Learning Training loop","description":"Building a custom training loop in Tensorflow and Python with checkpoints and Tensorboards visualizations","tags":["article","code","tutorial","deep-learning","machine-learning","computer-software","training","computer-vision","production","segmentation","demo"],"details":"","links":[{"article_link":"https://theaisummer.com/tensorflow-training-loop/","code_link":"https://github.com/The-AI-Summer/Deep-Learning-In-Production","research_link":"","media_link":"","dataset_link":"","demo_link":"https://theaisummer.com/data-preprocessing/","other_link":"https://theaisummer.com/best-practices-deep-learning-code/"}]},{"id":2364,"title":"Annotated Research Papers","description":"Finding papers hard to read? Read the annotated version with me","tags":["code","paper","research"],"details":"## Why annotated papers?\r\n\r\nDo you love reading research papers? Or do you find reading papers intimidating? Or are you looking for annotated research papers that are much easier to understand?\r\n\r\nIf you are in any of the categories listed above, then you have arrived at the right place. I spend a lot of time reading papers. It is a crucial part of my ML work. If you want to do research or you want to be a better ML engineer, then you should read papers. This habit of reading papers will help you to remain updated with the field. \r\n \r\n**Note:** I am a pen-paper guy. Nothing beats that pen-paper reading experience, but in the ongoing scenarios (pandemic, lockdown, etc.), I am not able to print the papers. Taking this as an opportunity to share my thought process, I will be sharing the annotated research papers in this repo. \r\n**The order of the papers won't strictly be according to the timeline on arXiv. Sometimes I put a paper on hold and read it after a while.**\r\n\r\n**PS:** I cannot annotate all the papers I read, but if I liked one, then that will be uploaded here. Also, there will be blog posts for a few research papers that are really important.\r\n\r\n![](https://github.com/AakashKumarNain/annotated_research_papers/raw/master/img/papers.gif)","links":[{"article_link":"","code_link":"https://github.com/AakashKumarNain/annotated_research_papers","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2363,"title":"TensorFlow Recommenders","description":"An open-source TensorFlow package that makes building, evaluating, and serving sophisticated recommender models easy.","tags":["article","code","tensorflow","library","recommendation-systems"],"details":"Built with TensorFlow 2.x, TFRS makes it possible to:\r\n\r\n* Build and evaluate flexible candidate nomination models;\r\n* Freely incorporate item, user, and context information into recommendation models;\r\n* Train multi-task models that jointly optimize multiple recommendation objectives;\r\n\r\n![](https://1.bp.blogspot.com/-ww8cKT3nIb8/X2pdWAWWNmI/AAAAAAAADl8/pkeFRxizkXYbDGbOcaAnZkorjEuqtrabgCLcBGAsYHQ/s0/TF%2BRecommenders%2B06.gif)\r\n\r\nEfficiently serve the resulting models using TensorFlow Serving.\r\nTFRS is based on TensorFlow 2.x and Keras, making it instantly familiar and user-friendly. It is modular by design (so that you can easily customize individual layers and metrics), but still forms a cohesive whole (so that the individual components work well together). Throughout the design of TFRS, we've emphasized flexibility and ease-of-use: default settings should be sensible; common tasks should be intuitive and straightforward to implement; more complex or custom recommendation tasks should be possible.","links":[{"article_link":"https://blog.tensorflow.org/2020/09/introducing-tensorflow-recommenders.html","code_link":"https://github.com/tensorflow/recommenders","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://www.tensorflow.org/recommenders"}]},{"id":2362,"title":"Deploy Flask app in Heroku","description":"Base project, with mandatory files and folders for deploying Flask apps in Heroku","tags":["code","tutorial","flask","machine-learning","ci-cd"],"details":"Flask is a light-weight API. Heroku is a PAAS , which helps developers to build, run, and operate applications entirely in the cloud. This project consists of mandatory files and folders required for deploying Flask apps in Heroku. Users can clone the project and start building their application and deploy in Heroku (Deployment commands available in the README).","links":[{"article_link":"","code_link":"https://github.com/savitha91/Flask_HerokuDeploy","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2361,"title":"Deploy streamlit app in Heroku","description":"Base project, with mandatory files and folders for deploying streamlit apps in Heroku","tags":["code","machine-learning","streamlit","heroku","ci-cd"],"details":"This project consists of mandatory files and folders required for deploying streamlit apps in Heroku. Users can clone the project and start building their application and deploy in Heroku (Deployment commands available in the README). \r\n","links":[{"article_link":"","code_link":"https://github.com/savitha91/Streamlit_HerokuDeploy","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2360,"title":"3D Face: Fast, Accurate and Stable Reconstruction","description":"This work extends the previous work 3DDFA, named 3DDFA_V2, titled Towards Fast, Accurate and Stable 3D Dense Face Alignment, accepted by ECCV 2020. ","tags":["code","notebook","paper","research","pytorch","library","computer-vision","3d-face","face-aligment","arxiv:2009.09960"],"details":"## Introduction\r\n![stars](https://img.shields.io/github/stars/cleardusk/3DDFA_V2.svg?style=flat) [![](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1OKciI0ETCpWdRjP-VOGpBulDJojYfgWv)\r\n\r\n

\r\n \"demo\"\r\n

\r\n\r\nThis work extends [3DDFA](https://github.com/cleardusk/3DDFA), named **[3DDFA_V2](https://github.com/cleardusk/3DDFA_V2)**, titled [Towards Fast, Accurate and Stable 3D Dense Face Alignment](https://arxiv.org/abs/2009.09960), accepted by [ECCV 2020](https://eccv2020.eu/). \r\nCompared to [3DDFA](https://github.com/cleardusk/3DDFA), 3DDFA\\_V2 achieves better performance and stability. Besides, 3DDFA\\_V2 incorporates the fast face detector [FaceBoxes](https://github.com/zisianw/FaceBoxes.PyTorch) instead of Dlib. A simple 3D render written by c++ and cython is also included. If you are interested in this repo, just try it on this **[google colab](https://colab.research.google.com/drive/1OKciI0ETCpWdRjP-VOGpBulDJojYfgWv)**!\r\n\r\n## Getting started\r\n\r\nThe usage is very simple. \r\n\r\n1. Clone this repo\r\n\r\n```\r\ngit clone https://github.com/cleardusk/3DDFA_V2.git\r\ncd 3DDFA_V2\r\n```\r\n\r\n2. Build the cython version of NMS, and Sim3DR\r\n\r\n```\r\nsh ./build.sh\r\n```\r\n\r\n3. Run demos\r\n\r\n```\r\npython3 demo.py -f examples/inputs/emma.jpg # -o [2d_sparse, 2d_dense, 3d, depth, pncc, pose, uv_tex, ply, obj]\r\npython3 demo_video.py -f examples/inputs/videos/214.avi\r\npython3 demo_video_smooth.py -f examples/inputs/videos/214.avi\r\npython3 demo_webcam_smooth.py\r\n```\r\n\r\nFor example, running `python3 demo.py -f examples/inputs/emma.jpg -o 3d` will give the result below:\r\n\r\n

\r\n \"demo\"\r\n

\r\n\r\nMore demos:\r\n

\r\n \"demo\"\r\n

\r\n\r\nMore features to see [here](https://github.com/cleardusk/3DDFA_V2#features-up-to-now).\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/cleardusk/3DDFA_V2","research_link":"https://arxiv.org/abs/2009.09960","media_link":"https://guojianzhu.com/assets/videos/3162-supp.mp4","dataset_link":"","demo_link":"","other_link":"https://colab.research.google.com/drive/1OKciI0ETCpWdRjP-VOGpBulDJojYfgWv"}]},{"id":2359,"title":"Supermarket System","description":"A web application for supermarket to manage all details.","tags":["code","css","html","javascript","sql","web-design"],"details":"","links":[{"article_link":"","code_link":"https://github.com/NishanthSV/Supermarket-System","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2358,"title":"Student Dropout Prediction","description":"It is a machine learning based web app to predict whether a student get dropout from college based on his academic and financial details.","tags":["code","machine-learning","random-forests","decision-tree"],"details":"","links":[{"article_link":"","code_link":"https://github.com/NishanthSV/DropoutPrediction","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2357,"title":"Sudoku Solver","description":"Solving Sudoku by extracting the puzzle from photo using Computer Vision and OCR and solving it.","tags":["code","machine-learning","computer-vision","optical-character-recognition"],"details":"The input sudoku photo is converted to grayscale, blurred, and the contours are found and before dividing the image into 81 squares using OpenCV. \r\n\r\nLater pytesseract is used to detect the numbers from each of these squares and stored in a matrix which is solved using backtracking to give the result.","links":[{"article_link":"","code_link":"https://github.com/SurajSubramanian/SudokuSolver","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2356,"title":"Part 2: Deep Representations, a way towards neural style transfer","description":"A top-down approach to conceiving neural style transfer","tags":["article","code","tutorial","keras","computer-vision","wandb","neural-style-transfer","tensorflow2","wand"],"details":"This is the second part of the Neural Style Transfer blog post. Here we have tried bringing in the intuition of gram matrix, with which we can segregate the `style` and the `content` of the images. The blog post looks at\r\n- Style Representation\r\n- Neural Style Transfer\r\n- The game of mutual loss","links":[{"article_link":"https://wandb.ai/authors/nerual_style_transfer/reports/Part-2-Deep-Representations-a-way-towards-neural-style-transfer--VmlldzoyMjYyNzk","code_link":"https://github.com/ariG23498/NeuralStyleTransfer","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2355,"title":"\ud83d\udea7 Simple considerations for simple people building fancy NNs ","description":"I will try to highlight a few steps of my mental process when it comes to building and debugging neural networks. ","tags":["article","training","debugging","checklist","recipe"],"details":"I will try to highlight a few steps of my mental process when it comes to building and debugging neural networks. \r\n\r\n1. \ud83d\ude48 Start by putting machine learning aside\r\n2. \ud83d\udcda Continue as if you just started machine learning\r\n3. \ud83e\uddb8\u200d\u2640\ufe0f Don\u2019t be afraid to look under the hood of these 5-liners templates\r\n4. \ud83d\udc40 Tune but don\u2019t tune blindly","links":[{"article_link":"https://medium.com/huggingface/simple-considerations-for-simple-people-building-fancy-neural-networks-7abc3c0f0bd7","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2354,"title":"Data Scientist Portfolio ","description":"Template to Create a charming Data Science Portfolio.","tags":["article","code","github","data-science","portfolio","online"],"details":"A portfolio designed your way highlighting key achievements and projects is very import aspect in Data Science Carrier. A good portfolio gives a 100x more impact than a resume.","links":[{"article_link":"https://99sbr.github.io","code_link":"https://github.com/99sbr/99sbr.github.io","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2353,"title":"TF Geometric","description":"Efficient and Friendly Graph Neural Network Library for TensorFlow 1.x and 2.x.","tags":["code","tensorflow","graph-convolutional-networks","library","graph-neural-networks","demo"],"details":"Efficient and Friendly Graph Neural Network Library for TensorFlow 1.x and 2.x. Inspired by [rusty1s/pytorch_geometric](https://github.com/rusty1s/pytorch_geometric), we build a GNN library for TensorFlow.\r\n\r\n### Demos\r\n\r\nWe recommend you to get started with some demo.\r\n\r\n#### Node Classification\r\n\r\n+ [Graph Convolutional Network (GCN)](demo/demo_gcn.py)\r\n+ [Multi-head Graph Attention Network (GAT)](demo/demo_gat.py)\r\n+ [GraphSAGE](demo/demo_graph_sage.py)\r\n+ [GIN](demo/demo_gin.py)\r\n+ [ChebyNet](demo/demo_chebynet.py)\r\n+ [SGC](demo/demo_sgc.py)\r\n+ [TAGCN](demo/demo_tagcn.py)\r\n\r\n\r\n#### Graph Classification\r\n\r\n+ [MeanPooling](demo/demo_mean_pool.py)\r\n+ [SAGPooling](demo/demo_sag_pool_h.py)\r\n\r\n\r\n#### Link Prediction\r\n\r\n+ [Graph Auto-Encoder (GAE)](demo/demo_gae.py)\r\n","links":[{"article_link":"","code_link":"https://github.com/CrawlScript/tf_geometric","research_link":"","media_link":"","dataset_link":"","demo_link":"https://github.com/CrawlScript/tf_geometric/tree/master/demo","other_link":"https://tf-geometric.readthedocs.io/en/latest/"}]},{"id":2352,"title":"Numpy Tricks and A Strong Baseline for Vector Index","description":"Tricks used to improve the index and query speed by 1.6x and 2.8x while keeping the memory footprint constant.","tags":["article","code","search","numpy","vector-index","memmap"],"details":"**Table of Contents**\r\n\r\n* The Scalability Problem\r\n* numpy.memmap Instead of numpy.frombuffer\r\n* Batching with Care\r\n* Lifecycle of memmap\r\n\t* Zero-copy slicing\r\n\t* Memory-efficient Euclidean and Cosine\r\n* Removing gzip compression\r\n* Summary\r\n\r\nOn the vector indexing and querying part, Jina has implemented a baseline vector indexer called `NumpyIndexer`, a vector indexer that is purely based on numpy. The implementation pretty straightforward: it writes vectors directly to the disk and queries nearest neighbors via dot product. It is simple, requires no extra dependencies, and the performance was reasonable on small data. As the default vector indexer, we have been using it since day one when showcasing quick demos, toy examples, and tutorials.\r\n\r\nRecently, this [community issue](https://github.com/jina-ai/jina/issues/929) has raised my attention. I realize there is a space of improvement, even for this baseline indexer. In the end, I manage to improve the index and query speed by 1.6x and 2.8x while keeping the memory footprint constant (i.e., invariant to the size of the index data). This blog post summarizes the tricks I used.","links":[{"article_link":"https://hanxiao.io/2020/09/21/Numpy-Tricks-and-A-Strong-Baseline-for-Vector-Index/","code_link":"https://gist.github.com/hanxiao/43cad33b60cadd34f45236993689e5d9","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2351,"title":"Simple Transformers: Transformers Made Easy","description":"Simple Transformers removes complexity and lets you get down to what matters \u2013 model training and experimenting with the Transformer model architectures.","tags":["article","code","notebook","tutorial","huggingface","transformers","natural-language-processing","text-classification","wandb","simple-transformers"],"details":"Simple Transformers, removes complexity and lets you get down to what matters - model training and experimenting with the Transformer model architectures. It helps you bypass all the complicated setups, boilerplate code, and all the other general unpleasantness by,\r\n\r\n* initializing a model in one line\r\n* training in the next\r\n* and evaluating in the third line.\r\n\r\n**Comparisons**:\r\n\r\n* [IMDB Classification using Hugging Face Transformers](https://colab.research.google.com/drive/1_VFmRNFZIWFstAJUCwN_X-OylH5Hers1)\r\n* [IMDB Classification using SimpleTransformers](https://colab.research.google.com/drive/1mcS-q1bwGxULd4bFDMB-Pc5IchTpOSBG)\r\n","links":[{"article_link":"https://wandb.ai/wandb/gallery/reports/SimpleTransformers-Transformers-Made-Easy--VmlldzoyNDQzNTg?accessToken=aakdmyety6dd614otlk7r0vt6dunjd2t82rqo6wig57aea4rqjac7b67i0oyd2kj","code_link":"https://colab.research.google.com/drive/1mcS-q1bwGxULd4bFDMB-Pc5IchTpOSBG","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2350,"title":"Part 1: Deep Representations, a way towards neural style transfer","description":"A top down approach to conceiving neural style transfer","tags":["article","code","tutorial","keras","computer-vision","wandb","neural-style-tranfer","tensorflow2"],"details":"Artistic style transfer is an algorithm proposed by Gatys et al. In [A Neural Algorithm of Artistic Style](https://arxiv.org/abs/1508.06576), the authors talk about the difficulties in segregating the content and style of an image. The content of an image refers to the discernible objects in an image. The style of an image, on the other hand, refers to the abstract configurations of the elements in the image that make it unique. The style and content segregation is difficult because of the unavailability of representations that hold the semantic understanding of images. Now, due to the advancement of convolutional neural networks, such semantic representations are possible.\r\nThis is part one of the two. This report will be structured as follows:\r\n1. Understanding deep image representations by inverting them.\r\n2. Normalized VGG16.\r\n3. Content representations.\r\n4. Amalgamation.\r\n","links":[{"article_link":"https://wandb.ai/authors/nerual_style_transfer/reports/Part-1-Deep-Representations-a-way-towards-neural-style-transfer--VmlldzoyMjQzNDY","code_link":"https://github.com/ariG23498/NeuralStyleTransfer","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2349,"title":"Self Supervised Learning Fastai Extension","description":"Implementation of popular SOTA self-supervised learning algorithms as Fastai Callbacks.","tags":["article","code","fastai","pytorch","library","self-supervised-learning","callbacks"],"details":"Here are the list of implemented algorithms:\r\n\r\n* [SimCLR](https://arxiv.org/pdf/2002.05709.pdf)\r\n* [BYOL](https://arxiv.org/pdf/2006.07733.pdf)\r\n* [SwAV](https://arxiv.org/pdf/2006.09882.pdf)\r\n\r\n![](https://pbs.twimg.com/media/EiZLod5UcAEpfjr?format=jpg&name=large)","links":[{"article_link":"https://keremturgutlu.github.io/self_supervised/","code_link":"https://github.com/keremturgutlu/self_supervised/","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2348,"title":"Layered Neural Rendering for Retiming People in Video","description":"Manipulating and editing the time in which different motions of individuals in the video occur.","tags":["article","paper","research","video","computer-vision","video-processing","retiming","layered-neural-rendering","arxiv:2009.07833"],"details":"We present a method for retiming people in an ordinary, natural video \u2014 manipulating and editing the time in which different motions of individuals in the video occur. We can temporally align different motions, change the speed of certain actions (speeding up/slowing down, or entirely \"freezing\" people), or \"erase\" selected people from the video altogether. We achieve these effects computationally via a dedicated learning-based layered video representation, where each frame in the video is decomposed into separate RGBA layers, representing the appearance of different people in the video. A key property of our model is that it not only disentangles the direct motions of each person in the input video, but also correlates each person automatically with the scene changes they generate \u2014 e.g., shadows, reflections, and motion of loose clothing. The layers can be individually retimed and recombined into a new video, allowing us to achieve realistic, high-quality renderings of retiming effects for real-world videos depicting complex actions and involving multiple individuals, including dancing, trampoline jumping, or group running.\r\n\r\n![](https://retiming.github.io/assets/teaser1.gif)\r\n\r\n**Making all children jump into the pool together \u2014 in post-processing!** In the original video (left) each child is jumping into the pool at a different time. In our computationally retimed video (right), the jumps are aligned such that all the children jump together into the pool (notice that the child on the left remains unchanged in the input and output videos). In this paper, we present a method to produce this and other people retiming effects in natural, ordinary videos.\r\n\r\n![](https://retiming.github.io/assets/teaser2.gif)\r\n\r\n**Decomposing a video into layers.** Our method is based on a novel deep neural network that learns a layered decomposition of the input video. Our model not only disentangles the motions of people in different layers, but can also capture the various scene elements that are correlated with those people (e.g., water splashes as the children hit the water, shadows, reflections). When people are retimed, those related elements are automatically retimed with them, which allows us to create realistic and faithful re-renderings of the video for a variety of retiming effects.","links":[{"article_link":"https://retiming.github.io/","code_link":"","research_link":"https://arxiv.org/abs/2009.07833","media_link":"https://www.youtube.com/watch?v=KAVCHR1mucw","dataset_link":"","demo_link":"","other_link":"https://retiming.github.io/supplementary/index.html"}]},{"id":2347,"title":"Ultimate Python Study Guide","description":"Ultimate Python study guide for newcomers and professionals alike.","tags":["code","tutorial","python"],"details":"## Table of contents\r\n\r\n\ud83d\udcda = External resource,\r\n\ud83c\udf70 = Beginner topic,\r\n\ud83e\udd2f = Advanced topic\r\n\r\n1. **About Python**\r\n - Overview: [What is Python](https://github.com/trekhleb/learn-python/blob/master/src/getting_started/what_is_python.md) (\ud83d\udcda, \ud83c\udf70)\r\n - Design philosophy: [The Zen of Python](https://www.python.org/dev/peps/pep-0020/) (\ud83d\udcda)\r\n - Style guide: [Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/) (\ud83d\udcda, \ud83e\udd2f)\r\n - Data model: [Data model](https://docs.python.org/3/reference/datamodel.html) (\ud83d\udcda, \ud83e\udd2f)\r\n - Standard library: [The Python Standard Library](https://docs.python.org/3/library/) (\ud83d\udcda, \ud83e\udd2f)\r\n - Built-in functions: [Built-in Functions](https://docs.python.org/3/library/functions.html) (\ud83d\udcda)\r\n2. **Syntax**\r\n - Variable: [Built-in literals](ultimatepython/syntax/variable.py) (\ud83c\udf70)\r\n - Expression: [Numeric operations](ultimatepython/syntax/expression.py) (\ud83c\udf70)\r\n - Conditional: [if | if-else | if-elif-else](ultimatepython/syntax/conditional.py) (\ud83c\udf70)\r\n - Loop: [for-loop | while-loop](ultimatepython/syntax/loop.py) (\ud83c\udf70)\r\n - Function: [def | lambda](ultimatepython/syntax/function.py) (\ud83c\udf70)\r\n3. **Data Structures**\r\n - List: [List operations](ultimatepython/data_structures/list.py) (\ud83c\udf70)\r\n - Tuple: [Tuple operations](ultimatepython/data_structures/tuple.py)\r\n - Set: [Set operations](ultimatepython/data_structures/set.py)\r\n - Dict: [Dictionary operations](ultimatepython/data_structures/dict.py) (\ud83c\udf70)\r\n - Comprehension: [list | tuple | set | dict](ultimatepython/data_structures/comprehension.py)\r\n - String: [String operations](ultimatepython/data_structures/string.py) (\ud83c\udf70)\r\n - Time complexity: [cPython operations](https://wiki.python.org/moin/TimeComplexity) (\ud83d\udcda, \ud83e\udd2f)\r\n4. **Classes**\r\n - Basic class: [Basic definition](ultimatepython/classes/basic_class.py) (\ud83c\udf70)\r\n - Abstract class: [Abstract definition](ultimatepython/classes/abstract_class.py)\r\n - Exception class: [Exception definition](ultimatepython/classes/exception_class.py)\r\n - Iterator class: [Iterator definition | yield](ultimatepython/classes/iterator_class.py) (\ud83e\udd2f)\r\n5. **Advanced**\r\n - Decorator: [Decorator definition | wraps](ultimatepython/advanced/decorator.py) (\ud83e\udd2f)\r\n - Metaclass: [Metaclass definition](ultimatepython/advanced/meta_class.py) (\ud83e\udd2f)\r\n - Method resolution order: [mro](ultimatepython/advanced/mro.py) (\ud83e\udd2f)\r\n - Asyncio: [async | await](ultimatepython/advanced/async.py) (\ud83e\udd2f)\r\n - Weak reference: [weakref](ultimatepython/advanced/weak_ref.py) (\ud83e\udd2f)\r\n - Benchmark: [cProfile | pstats](ultimatepython/advanced/benchmark.py) (\ud83e\udd2f)\r\n - Context manager: [Context managers](ultimatepython/advanced/context_manager.py) (\ud83e\udd2f)\r\n - Mocking: [MagicMock | PropertyMock | patch](ultimatepython/advanced/mocking.py) (\ud83e\udd2f)\r\n - Regular expression: [search | findall | match | fullmatch](ultimatepython/advanced/regex.py) (\ud83e\udd2f)\r\n - Data format: [json | xml | csv](ultimatepython/advanced/data_format.py) (\ud83e\udd2f)","links":[{"article_link":"","code_link":"https://github.com/huangsam/ultimate-python","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"http://ultimatepython.org/"}]},{"id":2346,"title":"What happens to developers in 2020?","description":"Complete Data Science approach to analyze programmer and programming language trends.","tags":["article","code","notebook","research","data-science"],"details":"Every year stack overflow organises a survey for developers all around the world. In this notebook I have analyzed the trends for the consecutive years 2018 and 2019. This is a small contribution from my side for the readers to understand the current situation of developers all around the world.\r\n\r\n![](https://miro.medium.com/max/1000/1*N_t2cmwjBKsgBv-8vfHDlg.png)\r\n\r\n![](https://miro.medium.com/max/2000/1*4t7D9oibmaoVREB28ZxJsw.png)\r\n\r\n![](https://miro.medium.com/max/2000/1*CvkS91zasA7WXouE0GxtiA.png)\r\n\r\n![](https://miro.medium.com/max/2000/1*DX0lVyadkrRzr9Opt48qOg.png)","links":[{"article_link":"https://medium.com/@pratikbaitha04/what-happens-to-programmers-in-2020-d04a6bd7452f?source=friends_link","code_link":"https://github.com/pr2tik1/developer-insights/blob/master/developer-insights.ipynb","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2345,"title":"Remo","description":"\ud83d\udc30 Python lib for remo - the app for annotations and images management in Computer Vision.","tags":["article","code","notebook","library","annotation","computer-vision","image-classification","object-detection","demo","remo"],"details":"Remo is a web-based application to organize, annotate and visualize Computer Vision datasets.\r\n\r\nIt has been designed to be your team's private platform to manage images, in an end-to-end fashion.\r\n\r\nUse Remo to:\r\n\r\n* access your datasets from one place, avoiding scattered files and keeping data secure locally\r\n* quickly annotate your images. We designed our annotation tool from the ground-up\r\n* build better datasets and models, by exploring in depth your Images and Annotations data\r\n* collaborate with your team, accessing the same data remotely\r\n* Remo runs on Windows, Linux, Mac or directly in Google Colab Notebooks. It can also be served on a private server for team collaboration, or embedded in Jupyter Notebooks.\r\n\r\nThis repo is the open source repo for the Remo python library. To access the docs and try the online demo: https://remo.ai\r\n\r\n![](https://camo.githubusercontent.com/93ebe0d2d75c66c079967df0cfa0c979f78291b5/68747470733a2f2f692e696d6775722e636f6d2f34377745456f622e676966)\r\n\r\n**Features**\r\n\r\n*Integration from code*\r\n\r\n* Easily visualize and browse images, predictions and annotations\r\n* Flexibility in slicing data, without moving it around: you can create virtual train/test/splits, have data in different folders or even select specific images using tags\r\n* Allows for a more standardized code interface across tasks\r\n\r\n*Annotation*\r\n\r\n* Faster annotation thanks to an annotation tool we designed from the ground-up\r\n* Manage annotation progress: organize images by status (to do, done, on hold) and track % completion\r\n* One-click edits on multiple objects: rename or delete all the objects of a class, duplicate sets of annotation","links":[{"article_link":"https://remo.ai/docs/sdk-intro/","code_link":"https://github.com/rediscovery-io/remo-python","research_link":"","media_link":"","dataset_link":"","demo_link":"https://github.com/rediscovery-io/remo-python/blob/master/examples/intro_to_remo-python.ipynb","other_link":"https://remo.ai/"}]},{"id":2344,"title":"Labelai","description":"Labelai is an online tool designed to label images, useful for training AI models.","tags":["article","code","library","annotation","computer-vision","image-classification","object-detection","demo"],"details":"Labelai is an online tool designed to label images, useful for training AI models.\r\n\r\nIt's totally client-side, there is no request to any server. It is implemented with Next.js + Preact.\r\n\r\nAnnotations are saved as XML files in PASCAL VOC format, the format used by ImageNet. Besides, it also supports YOLO format.\r\n\r\nIt's strongly inspired by [labelImg](https://github.com/tzutalin/labelImg).\r\n\r\n![](https://github.com/aralroca/labelai/raw/master/public/demo.gif)\r\n\r\nLabelai doesn't require any installation \ud83d\ude1c. In order to start:\r\n\r\n* Open the web app https://labelai.vercel.app/\r\n* Click 'Open'. Here you can import 3 file types: Images (.png, .jpg, .gif, .svg...), XML (PascalVOC labels) and TXT (YOLO labels). Surely the first time you are only interested in importing images, since you will not have any label saved yet. Important: if you want to import already saved labels, you must import it together with the images at the same time. In the case of YOLO, you also must import the classes.txt file.\r\n* Click and release left mouse to select a region to annotate the rect box. Then, you can name that label or select one of the already used names.\r\n* Update rect boxes. Once you already labeled a part of the image, you can resize it by clicking on a box corner, move the box using drag & drop, duplicate it (Ctrl + d) or even remove it (\u232b Delete).\r\n* Move through images. Once you finish annotating all the labels of an image, you can press to the Next and Prev button to move through images and start anottating another image. You can also use the arrows \u2192 and \u2190.\r\n* Save your changes. You can save the labels of the current file or the labels of all files. At this point, you can decide in which format you want to save them (XML for ImageNet or TXT for YOLO). In the case of YOLO, a file named classes.txt is saved too and it defines the list of class names that your YOLO label refers to.","links":[{"article_link":"https://aralroca.com/blog/labelai","code_link":"https://github.com/aralroca/labelai","research_link":"","media_link":"","dataset_link":"","demo_link":"https://labelai.vercel.app/","other_link":"https://labelai.vercel.app/"}]},{"id":2343,"title":"Pytorch Basics","description":"This Repo Contains beginner's guide to Pytorch implementation.","tags":["code","tutorial","pytorch","deep-learning","machine-learning"],"details":"","links":[{"article_link":"","code_link":"https://github.com/99sbr/pytorch_tutorials","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2342,"title":"Norfair","description":"Lightweight Python library for adding real-time 2D object tracking to any detector.","tags":["code","library","computer-vision","object-detection","object-tracking","norfair"],"details":"Norfair is a customizable lightweight Python library for real-time 2D object tracking. Using Norfair, you can add tracking capabilities to any detector with just a few lines of code.\r\n\r\n![](https://github.com/tryolabs/norfair/raw/master/docs/traffic.gif)\r\n\r\n**Features**:\r\n\r\n* Any detector expressing its detections as a series of (x, y) coordinates can be used with Norfair. This includes detectors performing object detection, pose estimation, and instance segmentation.\r\n* The function used to calculate the distance between tracked objects and detections is defined by the user, making the tracker extremely customizable. This function can make use of any extra information, such as appearance embeddings, which can heavily improve tracking performance.\r\n* Modular. It can easily be inserted into complex video processing pipelines to add tracking to existing projects. At the same time it is possible to build a video inference loop from scratch using just Norfair and a detector.\r\n* Fast. The only thing bounding inference speed will be the detection network feeding detections to Norfair.","links":[{"article_link":"","code_link":"https://github.com/tryolabs/norfair","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://tryolabs.com/"}]},{"id":2341,"title":"PyTorch Forecasting","description":"Time series forecasting with PyTorch.","tags":["code","pytorch","library","forecasting","time-series","pytorch-lightning"],"details":"Pytorch Forecasting aims to ease timeseries forecasting with neural networks for both real-world cases and research alike. Specifically, the package provides:\r\n\r\n* A timeseries dataset class which abstracts handling variable transformations, missing values, randomized subsampling, multiple history lengths, etc.\r\n* A base model class which provides basic training of timeseries models along with logging in tensorboard and generic visualizations such actual vs predictions and dependency plots\r\n* Multiple neural network architectures for timeseries forecasting that have been enhanced for real-world deployment and come with in-built interpretation capabilities\r\n* Multi-horizon timeseries metrics\r\n* Ranger optimizer for faster model training\r\n* Hyperparameter tuning with optuna","links":[{"article_link":"","code_link":"https://github.com/jdb78/pytorch-forecasting","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://pytorch-forecasting.readthedocs.io/en/latest/"}]},{"id":2340,"title":"Clumper","description":"A small python library that can clump lists of data together.","tags":["article","code","python","library","data-structures","clumper"],"details":"**Features**: \r\n\r\n* This library has no dependencies besides a modern version of python.\r\n* The library offers a pattern of verbs that are very expressive.\r\n* You can write code from top to bottom, left to right.\r\n* You can read in many json/yaml/csv files by using a wildcard.\r\n* MIT License\r\n\r\n![](https://github.com/koaning/clumper/raw/master/docs/img/groupby.png)","links":[{"article_link":"https://koaning.github.io/clumper/","code_link":"https://github.com/koaning/clumper/","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2339,"title":"Neural CDEs for Long Time-Series via the Log-ODE Method","description":"NCDEs for Long Time-Series via the Log-ODE Method.","tags":["code","paper","research","time-series","neural-cde","log-ode","arxiv:2009.08295"],"details":"Neural Controlled Differential Equations (Neural CDEs) are the continuous-time analogue of an RNN. However, as with RNNs, training can quickly become impractical for long time series. Here we show that a pre-existing mathematical tool - the log-ODE method - can allow us to take integration steps larger than the discretisation of the data, resulting in significantly faster training times, with retainment (and often even improvements) in model performance.\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/jambo6/neuralCDEs-via-logODEs","research_link":"https://arxiv.org/abs/2009.08295","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2338,"title":"CS 860 - Algorithms for Private Data Analysis - Fall 2020","description":"This course is on algorithms for differentially private analysis of data.","tags":["course","video","privacy","differential-privacy"],"details":"This course is on algorithms for differentially private analysis of data. As necessitated by the nature of differential privacy, this course will be theoretically and mathematically based. References to practice will be provided as relevant, especially towards the end of the course. Prerequisites include an undergraduate understanding of algorithms, comfort with probability, and mathematical maturity.\r\n","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://www.youtube.com/watch?v=FJMjNOcIqkc&list=PLmd_zeMNzSvRRNpoEWkVo6QY_6rR3SHjp","dataset_link":"","demo_link":"","other_link":"http://www.gautamkamath.com/CS860-fa2020.html"}]},{"id":2337,"title":"3 Machine Learning Projects For Beginners","description":"here I give 3 simple yet highly rewarding ML projects you could start your ML journey with.","tags":["tutorial","machine-learning","machine-learning-projects","beginner-friendly-ml"],"details":"I got asked a lot this question, how can I start?\r\n\r\nWhich ML projects do you recommend I start with?\r\n\r\nHere is my best attempt at answering that question.\r\n\r\nWe're highly visual living beings so I thought computer vision ML projects could be really interesting!","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://youtu.be/yhhSYk9zt1w","dataset_link":"","demo_link":"","other_link":""}]},{"id":2336,"title":"G-SimCLR","description":"TensorFlow implementation of G-SimCLR. ","tags":["code","paper","research","tensorflow","deep-learning","computer-vision","self-supervised-learning","arxiv:2009.12007"],"details":"In the realms of computer vision, it is evident that deep neural networks perform better in a supervised setting with a large amount of labeled data. The representations learned with supervision are not only of high quality but also helps the model in enhancing its accuracy. However, the collection and annotation of a large dataset are costly and time-consuming. To avoid the same, there has been a lot of research going on in the field of unsupervised visual representation learning especially in a self-supervised setting. Amongst the recent advancements in self-supervised methods for visual recognition, in SimCLR Chen et al. shows that good quality representations can indeed be learned without explicit supervision. In SimCLR, the authors maximize the similarity of augmentations of the same image and minimize the similarity of augmentations of different images. A linear classifier trained with the representations learned using this approach yields 76.5% top-1 accuracy on the ImageNet ILSVRC-2012 dataset. In this work, we propose that, with the normalized temperature-scaled cross-entropy (NT-Xent) loss function (as used in SimCLR), it is beneficial to not have images of the same category in the same batch. In an unsupervised setting, the information of images pertaining to the same category is missing. We use the latent space representation of a denoising autoencoder trained on the unlabeled dataset and cluster them with k-means to obtain pseudo labels. With this apriori information we batch images, where no two images from the same category are to be found. We report comparable performance enhancements on the CIFAR10 dataset and a subset of the ImageNet dataset. We refer to our method as G-SimCLR.\r\n\r\n*The paper is accepted at [ICDM 2020](http://icdm2020.bigke.org/) for the [Deep Learning for Knowledge Transfer (DLKT)](https://fuzhenzhuang.github.io/DLKT2020/index.html) workshop.* ","links":[{"article_link":"","code_link":"https://github.com/ariG23498/G-SimCLR","research_link":"https://arxiv.org/abs/2009.12007","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2335,"title":"GitHub CLI 1.0: All you need to know","description":"GitHub CLI basically brings GitHub to your terminal.","tags":["article","github","cli","github-cli"],"details":"GitHub CLI basically brings GitHub to your terminal. With GitHub CLI, developers can check the status of GitHub issues and pull requests, search for a specific issue or PR, create/fork a repo, or create new issues and pull requests right from the command line.\r\n\r\nIt reduces context switching, helps you focus, and enables you to more easily script and create your own workflows.\r\n\r\nWhat will be covered in this blog post:\r\n\r\n* What Is GitHub CLI\r\n* How to download and Authenticate\r\n* Managing GitHub Repositories using GitHub CLI\r\n* Working with Pull Requests using GitHub CLI\r\n* Managing GitHub Issues using GitHub CLI\r\n* Working with GitHub gist using GitHub CLI\r\n* GitHub alias using GitHub CLI","links":[{"article_link":"https://ayushi7rawat.hashnode.dev/github-cli-10-all-you-need-to-know","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2334,"title":"Python 3.9: All You need to know","description":"The next version of Python brings a faster release schedule, performance boosts, handy new string functions, dictionary union operators, and more stable APIs.","tags":["article","python"],"details":"The next version of Python brings a faster release schedule, performance boosts, handy new string functions, dictionary union operators, and more consistent and stable internal APIs.\r\n\r\nThis Blog post will cover:\r\n\r\n- Dictionary Unions and Update with Iterables\r\n- String methods\r\n- Type hinting\r\n- New math Functions\r\n- New parser\r\n- IPv6 Scoped Addresses\r\n- New Module: Zoneinfo\r\n- Other Language Changes\r\n\r\n![](https://dev-to-uploads.s3.amazonaws.com/i/58uaf41f6uw8zaeq4bfw.png)","links":[{"article_link":"https://ayushi7rawat.hashnode.dev/python-39-all-you-need-to-know","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2333,"title":"Machine Learning-Enabled Design of Point Defects in 2D Materials ","description":"Using deep transfer learning, machine learning, and quantum mechanical calculations we predict key properties of point defects in 2D materials.","tags":["article","code","dataset","paper","research","deep-learning","machine-learning","transfer-learning"],"details":"**Objectives**\r\n\r\n* Develop a machine learning approach to predict key properties in two-dimensional materials for emerging nanotechnologies\r\n* Construct a machine-learnable representation of defects in nanomaterials\r\n\r\n**Highlights**\r\n\r\n* Evaluated over 1,000 defect structures with machine learning and quantum mechanical simulations\r\n* Identified over 100 promising defect structures for quantum and neuromorphic information applications\r\n\r\n**Takeaways**\r\n\r\n* Deep transfer learning can be used to make predictions on small nanomaterials datasets\r\n* Machine learning enables rapid evaluation of candidate nanomaterials for future technologies\r\n\r\n**Next Steps**\r\n\r\n* Active learning to efficiently identify optimal materials for desired applications\r\n* Incorporate more complex physics-based modeling to predict other properties of interest ","links":[{"article_link":"https://medium.com/@ncfrey/quantum-and-brain-like-technologies-with-defective-materials-a685ee5bb47c","code_link":"https://github.com/ncfrey/defect-design","research_link":"https://pubs.acs.org/doi/abs/10.1021/acsnano.0c05267","media_link":"","dataset_link":"https://figshare.com/collections/Defect_design/4946874","demo_link":"","other_link":""}]},{"id":2332,"title":"Recurrent Neural Networks: building GRU cells VS LSTM cells ","description":"What are the advantages of RNN\u2019s over transformers? When to use GRU\u2019s over LSTM? What are the equations of GRU really mean? How to build a GRU cell in Pytorch?","tags":["article","code","tutorial","deep-learning","gated-recurrent-units","lstm","machine-learning","recurrent-neural-networks","sequence-to-sequence","transformers","natural-language-processing"],"details":"","links":[{"article_link":"https://theaisummer.com/gru/","code_link":"https://github.com/The-AI-Summer/RNN_tutorial","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://theaisummer.com/understanding-lstm/"}]},{"id":2331,"title":"Distributed Linear Regression with cuML","description":"How to scale GPU machine learning with Dask (w/ code + data)","tags":["article","code","notebook","tutorial","linear-regression","machine-learning","regression","gpu","dask","data-science","cuml","rapids"],"details":"","links":[{"article_link":"https://medium.com/dropout-analytics/distributed-linear-regression-with-cuml-b4f32d727e22?source=friends_link&sk=458531bdbb4cf88060d06736f2d4c646","code_link":"https://github.com/Dropout-Analytics/cuml_linear_regression/blob/master/distributed/distributed_linear_regression.ipynb","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2330,"title":"Beginner\u2019s Guide to Logistic Regression with cuML","description":"What is Logistic Regression? And how to implement it in Python with RAPIDS cuML","tags":["article","code","dataset","notebook","logistic-regression","machine-learning","regression","gpu","data-science","cuml","rapids"],"details":"","links":[{"article_link":"https://medium.com/dropout-analytics/beginners-guide-to-logistic-regression-with-cuml-5061086d8694?source=friends_link&sk=2d8d0f7ddd43ccaaf264afcbadeea231","code_link":"https://github.com/Dropout-Analytics/cuml_logistic_regression/blob/master/logistic_regression.ipynb","research_link":"","media_link":"","dataset_link":"https://raw.githubusercontent.com/gumdropsteve/datasets/master/dog_or_horse.csv","demo_link":"","other_link":""}]},{"id":2329,"title":"Beginner\u2019s Guide to KNN with cuML","description":"What is K-Nearest Neighbors? And how to implement it in Python with RAPIDS cuML.","tags":["article","code","dataset","notebook","machine-learning","k-nearest-neighbors","open-source","gpu","data-science","cuml","rapids"],"details":"","links":[{"article_link":"https://medium.com/dropout-analytics/beginners-guide-to-knn-with-cuml-ddca099f9e9d?source=friends_link&sk=2c1ba843151c0c538fff7bd61fd6eeb1","code_link":"https://github.com/Dropout-Analytics/cuml_knn/blob/master/knn.ipynb","research_link":"","media_link":"","dataset_link":"https://raw.githubusercontent.com/gumdropsteve/datasets/master/iris.csv","demo_link":"","other_link":""}]},{"id":2328,"title":"Distilling Knowledge in Neural Networks","description":"This project demonstrates the compelling model optimization technique - knowledge distillation with code walkthroughs in TensorFlow. ","tags":["article","code","tutorial","tensorflow","computer-vision","wandb","model-optimization"],"details":"\u201cModel ensembles are a pretty much-guaranteed way to gain 2% of accuracy on anything.\u201d - Andrej Karpathy.\r\n\r\nI absolutely agree! However, deploying an ensemble of heavyweight models may not always be feasible in many cases. Sometimes, your single model could be so large (GPT-3, for example) that deploying it in resource-constrained environments is often not possible. This is why we have been going over some of model optimization recipes - Quantization and Pruning. This report is the last one in this series. In this report, we will discuss a compelling model optimization technique - knowledge distillation. I have structured the accompanying article into the following sections -\r\n\r\n* What is softmax telling us?\r\n* Using the softmax information for teaching - Knowledge distillation\r\n* Loss functions in knowledge distillation\r\n* A few training recipes\r\n* Experimental results\r\n* Conclusion","links":[{"article_link":"https://wandb.ai/authors/knowledge-distillation/reports/Distilling-Knowledge-in-Neural-Networks--VmlldzoyMjkxODk","code_link":"https://github.com/sayakpaul/Knowledge-Distillation-in-Keras","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2327,"title":"Paint with Machine Learning","description":"This web app allows you to create a landscape painting in the style of Bob Ross using a deep learning model served using a Spell model server.","tags":["article","pytorch","generative-adversarial-networks","web-design","computer-vision","image-classification","image-to-image-translation","interactive","demo"],"details":"This web app allows you to create a landscape painting in the style of Bob Ross using a deep learning model served using a Spell model server. To do so paint some shapes on the canvas with a set of thematic (trees, mountains, etcetera) brushes provided to you. The shapes you paint are sent to a model server endpoint, which computes an output and presents it on the other screen.","links":[{"article_link":"https://spell.ml/blog/paint-with-ml-deep-learning-X2ALJRAAACQAXYTZ","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"http://paintwith.spell.ml/","other_link":""}]},{"id":2326,"title":"NLP for Developers: Multilingual NLP | Rasa","description":"In this video, Rasa Developer Advocate Rachael will talk about common approaches to handle language input in more than one language.","tags":["video","multilingual","natural-language-processing","rasa"],"details":"In this video, Rasa Developer Advocate Rachael will talk about common approaches to handle language input in more than one language.\r\n\r\n- \u201c[A Multilingual DemoBot, deployable on Heroku](https://rasa.com/showcase/multilingual-demobot)\u201d by Thomas Zezula\r\n- \u201c[Challenges of Computational Processing of Code-Switching](https://www.aclweb.org/anthology/W16-5801/)\u201d by \u00d6zlem \u00c7etino\u011flu, Sarah Schulz and Ngoc Thang Vu from Proceedings of the Second Workshop on Computational Approaches to Code Switching, 2016","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://www.youtube.com/watch?v=jMGgT4lgI28","dataset_link":"","demo_link":"","other_link":""}]},{"id":2325,"title":"Implementing Content-Based Image Retrieval with Siamese Networks","description":"With content-based image retrieval, we refer to the task of finding images containing attributes which are not in the image metadata, but in its visual content.","tags":["article","pytorch","siamese-networks","computer-vision","image-similarity-search","image-retrieval"],"details":"In this post we:\r\n\r\n* explain the theoretical concepts behind content-based image retrieval, \r\n* show step by step how to build a content-based image retrieval system with PyTorch, addressing a specific application: finding face images with a set of given face attributes (i.e. male, blond, smiling).\r\n\r\n![](https://i0.wp.com/neptune.ai/wp-content/uploads/content-based-image-retrieval.jpg?w=755&ssl=1)","links":[{"article_link":"https://neptune.ai/blog/content-based-image-retrieval-with-siamese-networks","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2324,"title":"Character level language model RNN","description":"This is a commentary of the min char language model of [@karpathy](https://twitter.com/karpathy).","tags":["article","tutorial","recurrent-neural-networks"],"details":"[@karpathy](https://twitter.com/karpathy) has been a legend with making intuitive models. His famous blog on Recurrent Neural Network, [The Unreasonable Effectiveness of Recurrent Neural Networks](https://karpathy.github.io/2015/05/21/rnn-effectiveness/) is one of the best there is. While explaining RNNs he links the readers to his famous gist on [character level language model](https://gist.github.com/karpathy/d4dee566867f8291f086). I have gone a little further to add commentary to the code. The losses being derived provides further intuition to the code.","links":[{"article_link":"https://arig23498.github.io/char-level-language-model","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2323,"title":"DeepTrain","description":"Abstract away boilerplate train loop and data loading code, without making it into a black box. ","tags":["code","tensorflow","library","template","deeptrain"],"details":"DeepTrain is founded on control and introspection: full knowledge and manipulation of the train state.\r\n\r\n### What does it do?\r\nAbstract away boilerplate train loop and data loading code, without making it into a black box. Code is written intuitively and fully documented. Everything about the train state can be seen via dedicated attributes; which batch is being fit and when, how long until an epoch ends, intermediate metrics, etc.\r\n\r\nDeepTrain is not a \u201cwrapper\u201d around TF; while currently only supporting TF, fitting and data logic is framework-agnostic.\r\n\r\n![](https://raw.githubusercontent.com/OverLordGoldDragon/deeptrain/master/docs/source/_images/train_loop.png)\r\n\r\n\r\n### Features\r\n\r\n**Train Loop**\r\n\r\n* Control: iteration-, batch-, epoch-level customs\r\n* Resumability: interrupt-protection, can pause mid-training\r\n* Tracking & reproducibility: save & load model, train state, random seeds, and hyperparameter info\r\n* Callbacks at any stage of training or validation\r\n\r\n**Data Pipeline**\r\n\r\n* AutoData: need only path to directory, the rest is inferred (but can customize)\r\n* Faster SSD loading: load larger batches to maximize read speed utility\r\n* Flexible batch size: can differ from that of loaded files, will split/combine\r\n* Stateful timeseries: splits up a batch into windows, and reset_states() (RNNs) at end\r\n* Iter-level preprocessor: pass batch & labels through Preprocessor() before feeding to model\r\n* Loader function: define custom data loader for any file extension, handled by DataLoader()\r\n\r\n**Introspection**\r\n\r\n* Data: batches and labels are enumerated by \u201cset nums\u201d; know what\u2019s being fit and when\r\n* Model: auto descriptive naming; gradients, weights, activations visuals\r\n* Train state: single-image log of key attributes & hyperparameters for easy reference\r\n\r\n**Utilities**\r\n\r\n* Preprocessing: batch-making and format conversion methods\r\n* Calibration: classifier prediction threshold; best batch subset selection (for e.g. ensembling)\r\n* Algorithms: convenience methods for object inspection & manipulation\r\n* Callbacks: reusable methods with other libraries supporting callbacks","links":[{"article_link":"","code_link":"https://github.com/OverLordGoldDragon/deeptrain","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://deeptrain.readthedocs.io/en/latest/index.html"}]},{"id":2322,"title":"Tic Tac Toe - Trainable AI","description":"Teach a website TicTacToe by playing games and asking the neural network to learn from previous games. You can watch it learn.","tags":["article","code","javascript","react","tensorflow","tensorflow-js","machine-learning"],"details":"Using a simple perceptron based neural network, can you teach an AI to play tictactoe, effectively overfitting the data. Ultimately, the simple sequential model learns how to play perfect games.","links":[{"article_link":"https://twitter.com/GantLaborde/status/1304063504526258178?s=20","code_link":"https://github.com/GantMan/tictactoe-ai-tfjs","research_link":"","media_link":"https://youtu.be/1zdHZvRbHwE","dataset_link":"","demo_link":"","other_link":"https://www.tensorflowtictactoe.co/"}]},{"id":2321,"title":"Machine Learning Educators on Twitter","description":"A curated list of people who make Machine Learning concepts clear and accessible through their blog posts, videos, books and courses.","tags":["article","machine-learning"],"details":"","links":[{"article_link":"https://twitter.com/i/lists/1236654402338820104","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2320,"title":"Getting Oriented in the RAPIDS Distributed ML Ecosystem, ETL","description":"This blog post, the first of two exploring this emerging ecosystem, is an introduction to distributed ETL using the dask, cudf, and dask_cudf APIs.","tags":["article","pandas","cudf","gpu","dask","exploratory-data-analysis","rapids"],"details":"For a long time being a data scientist that worked with large datasets and/or models meant mastering two sets of tools, one for local work and one for \"big data\". `pandas`, `numpy`, and `scikit-learn` make it easy to do stuff on your local machine, but can\u2019t handle anything too big to fit in RAM. Once data gets too big, or training too costly, you have to move on to a \"big data\" tool that pools the resources of several machines together to get the job done. This traditionally meant Apache Spark, which, though powerful, requires learning a brand new API and maybe even a brand new language (performance Spark code is written in Scala).\r\n\r\nEnter Dask. Dask is a distributed ETL tool that\u2019s tightly integrated into the Python data science ecosystem. Dask is extremely popular among data scientists because its core API is a subset of the `pandas`, `numpy`, and `scikit-learn` APIs. This flattens the learning curve considerably: most Pythonistas can be productive with Dask almost immediately.\r\n\r\nAs part of its RAPIDS initiative, NVIDIA is going one step further, partnering with the community to build an ecosystem for distributed data science on GPUs on top of Dask. Their new `cudf` Python package already boasts some pretty impressive results\u200a\u2014\u200alike this one from Capital One Labs showing a log-scale speedup for an internal ETL job that was previously being run on CPU.\r\n\r\nThis blog post, the first of two exploring this emerging ecosystem, is an introduction to distributed ETL using the dask, cudf, and dask_cudf APIs. We build the following mental map of the ecosystem:\r\n\r\n![](https://images.prismic.io/spell/b01d766c-4bb5-494f-ad9f-dc8cf2786023_mentalmodel.png)","links":[{"article_link":"https://spell.ml/blog/getting-oriented-in-the-rapids-distributed-ml-ecosystem-part-1-X1gixBIAAJ7nyzHa","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2319,"title":"Cartoonizer with TensorFlow.js","description":"An app to turn your photos into cartoon-styled images \ud83c\udfa8 within your browsers using White-box Cartoonization GAN.","tags":["code","tensorflow","tensorflow-js","generative-adversarial-networks","computer-vision","image-to-image-translation","demo"],"details":"**[App preview][liveapp]**: Upload an image or try examples\r\n\r\n[![demo](https://raw.githubusercontent.com/pratapvardhan/cartoonizer-with-tfjs/master/assets/demo.jpg)][liveapp]\r\n\r\n- Try demo: https://gramener.com/cartoonizer/\r\n- All your data stays in your browser\r\n- Uses #TensorFlowJS WebAssembly\r\n- Model size ~1.5MB\r\n- Takes 5-10s in CPU browsers\r\n\r\nWe used Generative Adversarial Network (GAN) model proposed in \r\n[Learning to Cartoonize Using White-box Cartoon Representations][cvpr2020] (CVPR 2020) by Xinrui Wang and Jinze Yu.\r\n\r\nOur idea was to test if it is reasonably possible to perform model inferences in\r\nthe browser clients with CPUs only. Without needing to send any of user's data (images) to servers.\r\n\r\nHere's the application flow and architecture:\r\n\r\n

\r\n \r\n

\r\n\r\nThis work was possible due to \r\n- [Margaret Maynard-Reid](https://twitter.com/margaretmz) and [Sayak Paul](https://twitter.com/RisingSayak)'s work on [How to Create a Cartoonizer with TensorFlow Lite](https://blog.tensorflow.org/2020/09/how-to-create-cartoonizer-with-tf-lite.html)\r\n- [Xinrui Wang](https://github.com/SystemErrorWang/) and Jinze Yu's original work on [White-box CartoonGAN][cvpr2020]\r\n\r\n#### Citation\r\nXinrui Wang and Jinze Yu are the original authors of [White-box CartoonGAN][cvpr2020].\r\n```\r\n@InProceedings{Wang_2020_CVPR, \r\nauthor = {Wang, Xinrui and Yu, Jinze, \r\ntitle = {Learning to Cartoonize Using White-Box Cartoon Representations, \r\nbooktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, \r\nmonth = {June}, year = {2020} }\r\n```\r\n\r\n#### Links\r\n\r\n- Original [White-box Cartoonization Repo](https://github.com/SystemErrorWang/White-box-Cartoonization)\r\n- Cartoonizer with [TensorFlow Lite Repo](https://github.com/margaretmz/Cartoonizer-with-TFLite)\r\n- [Live application][liveapp]\r\n- [Repo](https://github.com/pratapvardhan/cartoonizer-with-tfjs/), [Notebook](https://github.com/pratapvardhan/cartoonizer-with-tfjs/blob/master/White_box_Cartoonization.ipynb), [Colab](https://colab.research.google.com/github/pratapvardhan/cartoonizer-with-tfjs/blob/master/White_box_Cartoonization.ipynb)\r\n- [Tweet](https://twitter.com/PratapVardhan/status/1305489788976484354)\r\n\r\n[cvpr2020]: https://openaccess.thecvf.com/content_CVPR_2020/papers/Wang_Learning_to_Cartoonize_Using_White-Box_Cartoon_Representations_CVPR_2020_paper.pdf\r\n[liveapp]: https://gramener.com/cartoonizer/\r\n[repo]: https://github.com/pratapvardhan/cartoonizer-with-tfjs/","links":[{"article_link":"","code_link":"https://github.com/pratapvardhan/cartoonizer-with-tfjs/","research_link":"","media_link":"","dataset_link":"","demo_link":"https://gramener.com/cartoonizer/","other_link":""}]},{"id":2318,"title":"Jepto - Digital Marketing Analytics","description":"KPI Prediction and Anomaly Detection of digital marketing data for both technical and non-technical marketers and business owners.","tags":["article","anomaly-detection","time-series","time-series-forecasting"],"details":"Under the hood we are using Facebook's Prophet and Twitter's Seasonal Hybrid-ESD algorithms and then created a GUI for non technical marketers to apply them. We expose all of the hyper parameters so users can fine tune and see the results in real time.","links":[{"article_link":"https://www.jepto.com","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2317,"title":"End-to-end Object Detection in TensorFlow Lite","description":"This project shows how to train a custom detection model with the TFOD API, optimize it with TFLite, and perform inference with the optimized model.","tags":["code","tutorial","tensorflow","computer-vision","object-detection","tensorflow-lite"],"details":"The project shows how to train a custom detection model with the **[TFOD API](https://github.com/tensorflow/models/tree/master/research/object_detection)** (TF2 and TF1), optimize it with TFLite, and perform inference with the optimized model. It contains the following notebooks (pardon the naming) - \r\n\r\n* `Training_a_pets_detector_model_within_minutes_with_TFOD_API.ipynb`: Shows how to train a custom object detection model on the Pets dataset (non-eager mode) with Cloud TPUs. Note that it does not use TPUs offered by Colab.\r\n* `Running_inference_with_a_custom_TFOD_API_model.ipynb`: Shows how to export a SavedModel graph from the trained checkpoint files, and run inference.\r\n* `Object_Detection_in_TFLite.ipynb`: Shows how to quantize the original model, generate a TFLite model, and run inference.\r\n* `Training_MobileDet_Custom_Dataset.ipynb`: Shows how to train a custom object detection model on the Pets dataset (non-eager mode) on Colab (GPU), optimize the fine-tuned model with TFLite, and perform inference with the optimized model. ","links":[{"article_link":"","code_link":"https://github.com/sayakpaul/E2E-Object-Detection-in-TFLite/","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2316,"title":"Transformers are Graph Neural Networks","description":"My engineering friends often ask me: deep learning on graphs sounds great, but are there any real applications?","tags":["article","transformers","graph-neural-networks","natural-language-processing"],"details":"While Graph Neural Networks are used in recommendation systems at Pinterest, Alibaba and Twitter, a more subtle success story is the Transformer architecture, which has taken the NLP world by storm. Through this post, I want to establish a link between Graph Neural Networks (GNNs) and Transformers. I'll talk about the intuitions behind model architectures in the NLP and GNN communities, make connections using equations and figures, and discuss how we can work together to drive future progress. Let's start by talking about the purpose of model architectures\u2014representation learning.","links":[{"article_link":"https://thegradient.pub/transformers-are-graph-neural-networks/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2315,"title":"The Curse of Dimensionality\u2026 minus the curse of jargon","description":"In a nutshell, it\u2019s all about loneliness\r\n","tags":["article","dimensionality-reduction","curse-of-dimensionality"],"details":"The **curse of dimensionality**! What on earth is that? Besides being a prime example of shock-and-awe names in machine learning jargon (which often sound far fancier than they are), it\u2019s a reference to the effect that adding more features has on your dataset. In a nutshell, the curse of dimensionality is all about loneliness.","links":[{"article_link":"https://towardsdatascience.com/the-curse-of-dimensionality-minus-the-curse-of-jargon-520da109fc87","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2314,"title":"The Sorcerer\u2019s Apprentice Guide to Training LSTMs","description":"Tricks of the trade for training Long Short-Term Memory networks.","tags":["article","lstm","recurrent-neural-networks","tips"],"details":"Last year, I took a course at the Johannes Kepler University in Linz, Austria on the topic of Recurrent Neural Networks and Long Short-Term Memory Networks. There, Sepp Hochreiter shared some of the \u201cmagic tricks\u201d he and his team employ for training LSTMs. This blog post is the accumulation of some of my notes.\r\n\r\nFor this post, I assume you are already familiar with LSTMs. If not, I suggest you begin with Chris Olah\u2019s [Understanding LSTM Networks](http://colah.github.io/posts/2015-08-Understanding-LSTMs/) and then go on to read the original LSTM work [1] .","links":[{"article_link":"https://www.niklasschmidinger.com/posts/2020-09-09-lstm-tricks/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2313,"title":"DCGAN, cGAN, vGAN in PyTorch (beginner-friendly)","description":"Beginner friendly, PyTorch implementation of various GAN architectures.","tags":["code","tutorial","deep-learning","generative-adversarial-networks"],"details":"It's beginner-friendly in the sense that all of the major design decisions are explicitly communicated through comments, and I've tried to make it as clean and readable as possible.","links":[{"article_link":"","code_link":"https://github.com/gordicaleksa/pytorch-gans","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2312,"title":"Codequestion","description":"Ask coding questions directly from the terminal.","tags":["article","code","dataset","fasttext","library","embeddings","natural-language-processing","question-answering","sentence-embeddings"],"details":"codequestion is a Python application that allows a user to ask coding questions directly from the terminal. Many developers will have a web browser window open while they develop and run web searches as questions arise. codequestion attempts to make that process faster so you can focus on development.\r\n\r\n![](https://raw.githubusercontent.com/neuml/codequestion/master/demo.gif)","links":[{"article_link":"https://towardsdatascience.com/building-a-sentence-embedding-index-with-fasttext-and-bm25-f07e7148d240","code_link":"https://github.com/neuml/codequestion","research_link":"","media_link":"","dataset_link":"https://archive.org/details/stackexchange","demo_link":"","other_link":""}]},{"id":2311,"title":"PyTorch vs TensorFlow?","description":"Make a data-driven decision about which one you should be using.","tags":["tutorial","pytorch","tensorflow","deep-learning"],"details":"Oh the epic battle, the age-old question (= 4 years old) which deep learning framework should I be using?\r\n\r\nPyTorch or TensorFlow?\r\n\r\nIf PyTorch, why? The same goes for TF.\r\n\r\nIn this video, I do some data-driven analysis and make some suggestions on what you should be using depending on your context.","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://youtu.be/NuJB-RjhMH4","dataset_link":"","demo_link":"","other_link":""}]},{"id":2310,"title":"Image Super-Resolution","description":"In this project we learn how to train a super-resolution model ESPCN on DIV2K dataset to upscale images using AI by 3x","tags":["article","research","tutorial","artificial-general-intelligence","deep-learning","machine-learning","computer-vision","super-resolution"],"details":"Deep learning techniques have been fairly successful in solving the problem of image and video super-resolution. In this project we will discuss the theory involved, various techniques used, loss functions, metrics, and relevant datasets. You can run the code for one of the models we'll cover, ESPCN for free on the ML Showcase.\r\n\r\nThere are many methods used to solve this task. We will cover the following:\r\n\r\n* Pre-Upsampling Super Resolution\r\n* Post-Upsampling Super Resolution\r\n* Residual Networks\r\n* Multi-Stage Residual Networks\r\n* Recursive Networks\r\n* Progressive Reconstruction Networks\r\n* Multi-Branch Networks\r\n* Attention-Based Networks\r\n* Generative Models\r\nWe'll look at several example algorithms for each.\r\n\r\nThe content of the article is available at https://blog.paperspace.com/image-super-resolution/","links":[{"article_link":"https://blog.paperspace.com/image-super-resolution/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://ml-showcase.paperspace.com/projects/image-super-resolution"}]},{"id":2309,"title":"Bike rental count prediction'","description":"Bike-rental-count-prediction\r\nThe objective of this Case is to Prediction of bike rental count on daily basis on the environmental and seasonal settings.","tags":["code","decision-trees","machine-learning","random-forests","decision-tree"],"details":"**Bike-rental-count-prediction**\r\nThe objective of this Case is to Prediction of bike rental count on daily basis on the environmental and seasonal settings.\r\n\r\n**Problem Statement**\r\nA bike rental is a bicycle business that rents bikes for short periods of time.\r\nMost rentals are provided by bike shops as a sideline to their main businesses of sales and service, but some shops specialize in rentals.\r\nBike rental shops rent by the day orweek as well as by the hour, and these provide an excellent opportunity for people who don't have access to a vehicle, typically travelers and particularly tourists.\r\n\r\nSpecialized bike rental shops thus typically operate at beaches, parks, or other locations that tourists frequent. In this case, the fees are set to encourage renting the bikes for a few hours at a time, rarely more than a day.\r\n\r\n**Objective**\r\nThe objective of this Case is to predict the bike rental count based on the environmental and seasonal settings, Sothat required bikes would be arranged and managed by the shops according to environmental and seasonal conditions.\r\n\r\n**Data**\r\nOur task is to build regression models which will predict the count of bike rented depending on various environmental and seasonal conditions Given below is a sample of the data set that we are using to predict the count of bike rents:\r\nVariables present in given dataset are instant, dteday, season, yr, mnth, holiday,weekday, workingday, weathersit, temp, atemp, hum, windspeed, casual,registered, cnt The details of variable present in the dataset are as follows -\r\n\r\ninstant: Record index\r\n\r\ndteday: Date\r\n\r\nseason: Season (1:springer, 2:summer, 3:fall, 4:winter)\r\n\r\nyr: Year (0: 2011, 1:2012)\r\n\r\nmnth: Month (1 to 12)\r\n\r\nhr: Hour (0 to 23)\r\n\r\nholiday: weather day is holiday or not (extracted fromHoliday Schedule)\r\n\r\nweekday: Day of the week\r\n\r\nworkingday: If day is neither weekend nor holiday is 1, otherwise is 0.\r\n\r\nweathersit: (extracted fromFreemeteo)\r\n\r\n1: Clear, Few clouds, Partly cloudy, Partly cloudy\r\n\r\n2: Mist + Cloudy, Mist + Broken clouds, Mist + Few clouds, Mist\r\n\r\n3: Light Snow, Light Rain + Thunderstorm + Scattered clouds, Light Rain + Scattered clouds\r\n\r\n4: Heavy Rain + Ice Pallets + Thunderstorm + Mist, Snow + Fog temp:\r\nNormalized temperature in Celsius. The values are derived via (t-t_min)/(t_max-t_min), t_min=-8, t_max=+39 (only in hourly scale)\r\n\r\natemp: Normalized feeling temperature in Celsius. The values are derived via (t-t_min)/(t_maxt_min), t_min=-16, t_max=+50 (only in hourly scale)\r\n\r\nhum: Normalized humidity. The values are divided to 100 (max)\r\n\r\nwindspeed: Normalized wind speed. The values are divided to 67 (max)\r\n\r\ncasual: count of casual users\r\n\r\nregistered: count of registered users\r\n\r\ncnt: count of total rental bikes including both casual and registeredregisteredregisteredregistered","links":[{"article_link":"","code_link":"https://github.com/tanya9691/Bike-rental-count-prediction","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2308,"title":"ExplainX","description":"ExplainX is an explainable AI framework for data scientists to explain any black-box model behavior to business stakeholders.\r\n\r\n","tags":["code","video","library","interpretability","explainx"],"details":"ExplainX.ai is a fast, scalable and end-to-end Explainable AI framework for data scientists & machine learning engineers. With explainX, you can understand overall model behavior, get the reasoning behind model predictions, remove biases and create convincing explanations for your business stakeholders. \r\n\r\n![](https://github.com/explainX/explainx/raw/master/started_example.png)\r\n\r\nEssential for:\r\n\r\n* Model debugging - Why did my model make a mistake? How can I improve the accuracy of the model?\r\n* Detecting fairness issues - Is my model biased? If yes, where?\r\n* Human-AI cooperation - How can I understand and trust the model's decisions?\r\n* Regulatory compliance - Does my model satisfy legal & regulatory requirements?\r\n* High-risk applications - Healthcare, Financial Services, FinTech, Judicial, Security etc.\r\n\r\n![](https://github.com/explainX/explainx/raw/master/demo-explainx-with-sound.gif)","links":[{"article_link":"","code_link":"https://github.com/explainX/explainx","research_link":"","media_link":"https://www.youtube.com/watch?v=X3fk-r2G15k","dataset_link":"","demo_link":"","other_link":"https://www.explainx.ai/"}]},{"id":2307,"title":"Target Encoding with RAPIDS cuML: Do More with Categorical Data","description":"Walk through the design of target encoding with RAPIDS cuML.","tags":["article","code","notebook","encoder","cuml","rapids","categorical-data"],"details":"We are happy to announce that TargetEncoder has come to RAPIDS cuML 0.15 with a simple scikit-learn transformer-style API and 100x speedup with a single GPU. In this blog, we will discuss how to use the new TargetEncoder feature in cuML and show that it could boost both accuracy and performance significantly. The [full notebook](https://github.com/rapidsai/cuml/blob/branch-0.16/notebooks/target_encoder_walkthrough.ipynb) can be found in cuML\u2019s repo.","links":[{"article_link":"https://medium.com/rapids-ai/target-encoding-with-rapids-cuml-do-more-with-your-categorical-data-8c762c79e784","code_link":"https://github.com/rapidsai/cuml/blob/branch-0.16/notebooks/target_encoder_walkthrough.ipynb","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2306,"title":"Optimus","description":"\ud83d\ude9a Agile Data Preparation Workflows made easy with dask, cudf, dask_cudf and pyspark.","tags":["code","library","preprocessing","cudf","dask","pyspark","exploratory-data-analysis","optimus"],"details":"Optimus is the missing framework to profile, clean, process and do ML in a distributed fashion using Apache Spark(PySpark).\r\n\r\n![](https://ucarecdn.com/eb8852bf-856b-43fa-a09d-d9165bd3b60f/image.png)","links":[{"article_link":"","code_link":"https://github.com/ironmussa/Optimus","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://hi-optimus.com/"}]},{"id":2305,"title":"DeepSpeed: Extreme-scale model training for everyone","description":"DeepSpeed is a deep learning optimization library that makes distributed training easy, efficient, and effective.","tags":["article","code","pytorch","library","distributed-training","gpu","deepspeed"],"details":"DeepSpeed is a deep learning optimization library that makes distributed training easy, efficient, and effective.\r\n\r\n* 10x Larger Models\r\n* 10x Faster Training\r\n* Minimal Code Change\r\n\r\nDeepSpeed delivers extreme-scale model training for everyone, from data scientists training on massive supercomputers to those training on low-end clusters or even on a single GPU:\r\n\r\n* **Extreme scale**: Using current generation of GPU clusters with hundreds of devices, 3D parallelism of DeepSpeed can efficiently train deep learning models with trillions of parameters.\r\n* **Extremely memory efficient**: With just a single GPU, ZeRO-Offload of DeepSpeed can train models with over 10B parameters, 10x bigger than the state of arts, democratizing multi-billion-parameter model training such that many deep learning scientists can explore bigger and better models.\r\n* **Extremely long sequence length**: Sparse attention of DeepSpeed powers an order-of-magnitude longer input sequence and obtains up to 6x faster execution comparing with dense transformers.\r\n* **Extremely communication efficient**: 3D parallelism improves communication efficiency allows users to train multi-billion-parameter models 2\u20137x faster on clusters with limited network bandwidth. 1-bit Adam reduces communication volume by up to 5x while achieving similar convergence efficiency to Adam, allowing for scaling to different types of GPU clusters and networks.","links":[{"article_link":"https://www.microsoft.com/en-us/research/blog/deepspeed-extreme-scale-model-training-for-everyone/","code_link":"https://github.com/microsoft/DeepSpeed","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://www.deepspeed.ai/"}]},{"id":2304,"title":"Graph Neural Networks","description":"A descriptive guide for Graph Neural Networks.","tags":["article","tutorial","graph-neural-networks"],"details":"","links":[{"article_link":"https://medium.com/@parthplc/a-visual-guide-to-graph-neural-network-fcda66fff3e1","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2303,"title":"Doodle Recognition using PyTorch","description":"Multi-Class Image Classification using CNN ","tags":["article","research","tutorial","python","pytorch","convolutional-neural-networks","deep-learning","dimensionality-reduction"],"details":"","links":[{"article_link":"https://pr2tik1.github.io/blog/pytorch/cnn/pca/t-sne/2020/09/08/Sketch-Recognition.html","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2302,"title":"Recurrent neural networks: building a custom LSTM cell in Pytorch","description":"Are you interested to see how RNN's process sequences under the hood? That\u2019s what this article is all about. We are going build our our own custom LSTM model.","tags":["article","code","notebook","deep-learning","machine-learning","recurrent-neural-networks"],"details":"An infinite amount of times I have found myself in desperate situations because I had no idea what was happening under the hood. And, for a lot of people in the computer vision community, recurrent neural networks (RNNs) are like this. More or less, another black box in the pile.\r\n\r\nHowever, in this tutorial, we will attempt to open the RNN magic black box and unravel its mysteries!\r\n\r\nEven though I have come across hundreds of tutorials on LSTM\u2019s out there, I felt there was something missing. Therefore, I honestly hope that this tutorial serves as a modern guide to RNNs. We try to deal with multiple details of practical nature. To this end, we will build upon their fundamental concepts.","links":[{"article_link":"https://theaisummer.com/understanding-lstm/","code_link":"https://colab.research.google.com/drive/1Rb8OiF-AZ_Y3uFj1O2S0IyocFMhHoTCV","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://theaisummer.com/Bitcon_prediction_LSTM/"}]},{"id":2301,"title":"Unsupervised Visual Representation Learning with SwAV","description":"In this report, we explore the SwAV framework, as presented in \"Unsupervised Learning of Visual Features by Contrasting Cluster Assignments\" by Caron et al.","tags":["article","code","research","tutorial","tensorflow","contrastive-loss","self-supervised-learning","unsupervised-learning","wandb","visual-representation-learning"],"details":"Here's the content of the article:\r\n\r\n* Common problems in existing self-supervised methods (for visual representation learning)\r\n* SwAV at a high-level\r\n* Multi-crop augmentation policy and its promise\r\n* Contrasting the cluster assignments \r\n * Cluster assignment as an optimal transport problem\r\n * Swapped prediction problem to enforce consistency\r\n* A single forward pass in SwAV\r\n* Experimental results\r\n* Conclusion","links":[{"article_link":"https://app.wandb.ai/authors/swav-tf/reports/Unsupervised-Visual-Representation-Learning-with-SwAV--VmlldzoyMjg3Mzg","code_link":"https://github.com/ayulockin/SwAV-TF","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2300,"title":"Real Python Recommendation Engine","description":"A full stack data science project that performs document similarity on RealPython.com content. Content recommendations are implemented via a Chrome extension.","tags":["code","fastapi","spacy","full-stack","library","natural-language-processing","data-science","demo"],"details":"The ultimate goal for this project was to create an article (or content) recommendation engine for the [RealPython.com](https://realpython.com/) website. As a frequent consumer of their tutorials, I found myself finishing tutorials and looking for more content, but didn't know how to find it. \r\n\r\nI hope other ML users will find this design pattern useful in their own projects.\r\n\r\nHere's how the app is implemented:\r\n\r\n\r\n1. **SCRAPE** Real Python articles nightly with [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/)\r\n2. **STORE** raw text in a Postgres database\r\n3. **PROCESS** text in an NLP pipeline with [spacy](https://spacy.io/)\r\n4. **MODEL** document similarity using [doc2vec](https://radimrehurek.com/gensim/models/doc2vec.html)\r\n5. **STORE** document similarity scores in the database\r\n6. **SERVE** document similarity scores using [fastAPI](https://fastapi.tiangolo.com/)\r\n7. **DEPLOY** the back end to a free Heroku dyno ([see the fastAPI swagger UI interface](http://realpython-recommender.herokuapp.com/docs#/))\r\n8. **ACCESS** document similarity scores [via a Chrome extension](https://chrome.google.com/webstore/detail/real-python-content-recom/abkpmgoodjgfkhjkkbaiogkomehhokoc?hl=en&authuser=0) (front end).\r\n\r\n**Disclaimer: This extension is not an official realpython.com project nor is it affiliated with realpython.com**\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/arvkevi/rprec","research_link":"","media_link":"","dataset_link":"","demo_link":"https://chrome.google.com/webstore/detail/real-python-content-recom/abkpmgoodjgfkhjkkbaiogkomehhokoc?hl=en&authuser=0","other_link":"https://github.com/arvkevi/rprec-chrome-extension"}]},{"id":2299,"title":"Latent graph neural networks: Manifold learning 2.0?","description":"Parallels between recent works on latent graph learning and older techniques of manifold learning.","tags":["article","graph-neural-networks","graphs","representation-learning","graph-representation-learning","manifold"],"details":"Graph neural networks exploit relational inductive biases for data that come in the form of a graph. However, in many cases we do not have the graph readily available. Can graph deep learning still be applied in this case? In this post, I draw parallels between recent works on latent graph learning and older techniques of manifold learning.\r\n\r\n![](https://miro.medium.com/max/700/0*Z9NUpmdj4-7Kx1bi)","links":[{"article_link":"https://towardsdatascience.com/manifold-learning-2-99a25eeb677d","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2298,"title":"torchCDE","description":"Differentiable controlled differential equation solvers for PyTorch with GPU support and memory-efficient adjoint backpropagation.","tags":["code","pytorch","library","time-series","neural-ode","torchcde"],"details":"This library provides differentiable GPU-capable solvers for controlled differential equations (CDEs). Backpropagation through the solver or via the adjoint method is supported; the latter allows for improved memory efficiency.\r\n\r\nIn particular this allows for building [Neural Controlled Differential Equation](https://github.com/patrick-kidger/NeuralCDE) models, which are state-of-the-art models for (arbitrarily irregular!) time series. Neural CDEs can be thought of as a \"continuous time RNN\".\r\n\r\n_Powered by the [`torchdiffeq`](https://github.com/rtqichen/torchdiffeq) library._","links":[{"article_link":"","code_link":"https://github.com/patrick-kidger/torchcde","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2297,"title":"Fast Block Sparse Matrices for Pytorch","description":"Enables networks which are both smaller and faster to let anybody use neural networks in production at low cost, and to improve the experience for the end user.","tags":["article","code","pytorch","library","gpu","efficiency","sparsity"],"details":"This PyTorch extension provides a **drop-in replacement** for torch.nn.Linear using block sparse matrices instead of dense ones. It enables very easy experimentation with sparse matrices since you can directly replace Linear layers in your model with sparse ones.\r\n\r\nBlog posts:\r\n\r\n1. [Block Sparse Matrices for Smaller and Faster Language Models](https://huggingface.co/blog/pytorch_block_sparse)\r\n1. [Is the future of Neural Networks Sparse? An Introduction (1/N)](https://medium.com/huggingface/is-the-future-of-neural-networks-sparse-an-introduction-1-n-d03923ecbd70)\r\n1. [Sparse Neural Networks (2/N): Understanding GPU Performance](https://medium.com/huggingface/sparse-neural-networks-2-n-gpu-performance-b8bc9ce950fc)","links":[{"article_link":"https://huggingface.co/blog/pytorch_block_sparse","code_link":"https://github.com/huggingface/pytorch_block_sparse","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2296,"title":"How to Test Machine Learning Code and Systems","description":"\ud83d\udea6 Minimal examples of testing machine learning for correct implementation, expected learned behaviour, and model performance.\r\n\r\n","tags":["article","code","tutorial","unit-tests","testing"],"details":"ML testing involves checks on model behaviour. Pre-train tests\u2014which can be run without trained parameters\u2014check if our written logic is correct. For example, is classification probability between 0 to 1? Post-train tests check if the learned logic is expected. For example, on the Titanic dataset, we should expect females to have a higher survival probability (relative to males).","links":[{"article_link":"https://eugeneyan.com/writing/testing-ml/","code_link":"https://github.com/eugeneyan/testing-ml","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2295,"title":"How to Create a Cartoonizer with TensorFlow Lite?","description":"An end-to-end tutorial on how to convert to TensorFlow Lite (TFLite) model and deploy it to an Android app for cartoonizing an image captured by camera.","tags":["article","code","generative-adversarial-networks","computer-vision","tensorflow-lite"],"details":"This is an end-to-end tutorial [published on the official TensorFlow blog](https://blog.tensorflow.org/2020/09/how-to-create-cartoonizer-with-tf-lite.html), on how to convert a TensorFlow model to TensorFlow Lite (TFLite) and deploy it to an Android app for cartoonizing an image captured by the camera. \r\n\r\nThe tutorial covers the following: \r\n\r\n- Export model checkpoints as SavedModel with TF 1.x\r\n- Convert the SavedModel to a TFLite model in TF 2.x with different quantization recipes\r\n- Model inference in Python\r\n- Add metadata to the TFLite models\r\n- Benchmark the TFLite models\r\n- Deploy TFLite model to Android in just a few lines of code with ML Model Binding\r\n","links":[{"article_link":"https://blog.tensorflow.org/2020/09/how-to-create-cartoonizer-with-tf-lite.html","code_link":"https://github.com/margaretmz/Cartoonizer-with-TFLite","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://twitter.com/TensorFlow/status/1303727371841875969"}]},{"id":2294,"title":"Getting started with large-scale ETL jobs using Dask and AWS EMR","description":"EMR is AWS\u2019s distributed data platform, which we can interact with and submit jobs to from a JupyterLab notebook running on our local machine.","tags":["article","notebook","aws","dask","mlops","exploratory-data-analysis","etl","mapreduce","elastic-mapreduce"],"details":"In this tutorial, we will walk through setting up a Dask cluster on top of EMR (Elastic MapReduce), AWS\u2019s distributed data platform, that we can interact with and submit jobs to from a JupyterLab notebook running on our local machine.","links":[{"article_link":"https://spell.ml/blog/large-scale-etl-jobs-using-dask-Xyl8GhEAACQAjK6h","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2293,"title":"Machine Learning Tutorials","description":"Introduce machine learning contents. The content aims to strike a good balance between mathematical notations, hands-on implementation. Primarily in Python3.","tags":["code","tutorial","python","machine-learning"],"details":"","links":[{"article_link":"","code_link":"https://github.com/ethen8181/machine-learning","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2292,"title":"Training on larger batches with less memory in AllenNLP","description":"Several options available in AllenNLP that will allow you to train with larger batches by saving memory.","tags":["article","allennlp","allenai","batch-size"],"details":"Batch size is an important hyperparameter to tune when training deep neural networks. Using the largest batch size that fits in memory on your GPU is often a good starting point, but as state-of-the-art models get bigger and bigger, the hardware many of us have available can be limited, forcing us to use smaller batches.\r\n\r\nNow, small batches aren\u2019t necessarily bad. But the smaller batch, the less information it contains, and so the gradient estimates coming from each batch will be less accurate. This can sometimes make it difficult for your model to converge.\r\n\r\nFortunately, there are several options available in AllenNLP that will allow you to train with larger batches by saving memory.\r\nIn this post, we will go through 3 of these options and show you how you can utilize them in your experiments.\r\n\r\n* Gradient accumulation (GA)\r\n* Gradient checkpointing (GC)\r\n* Automatic mixed precision (AMP)\r\n\r\n![](https://miro.medium.com/max/541/1*WfizUwplzHUMVQ9m5nWDAw.gif)","links":[{"article_link":"https://medium.com/ai2-blog/tutorial-training-on-larger-batches-with-less-memory-in-allennlp-1cd2047d92ad","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2291,"title":"Understanding Entanglement With SVD","description":"Schmidt rank in the hopes of helping the math of entanglement feel a little less... tangly.","tags":["article","singular-value-decomposition","entanglement"],"details":"Quantum entanglement is, as you know, a phrase that's jam-packed with meaning in physics. But what you might not know is that the linear algebra behind it is quite simple. If you're familiar with singular value decomposition (SVD), then you're 99% there. My goal for this post is to close that 1% gap. In particular, I'd like to explain something called the Schmidt rank in the hopes of helping the math of entanglement feel a little less... tangly. And to do so, I'll ask that you momentarily forget about the previous sentences. Temporarily ignore the title of this article. Forget we're having a discussion about entanglement. Forget I mentioned that word. And let's start over. Let's just chat math.\r\n\r\n","links":[{"article_link":"https://www.math3ma.com/blog/understanding-entanglement-with-svd","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2290,"title":"Fine-tune a non-English GPT-2 Model with Huggingface","description":" In this tutorial, we are going to use the transformers library by Huggingface. We will use the new Trainer class and fine-tune out GPT-2 model.","tags":["article","code","notebook","tutorial","huggingface","gpt","transformers","fine-tuning","natural-language-processing","gpt-2"],"details":" In this tutorial, we are going to use the transformers library by Huggingface in their newest version (3.1.0). We will use the new Trainer class and fine-tune our GPT-2 Model with German recipes from chefkoch.de.","links":[{"article_link":"https://www.philschmid.de/fine-tune-a-non-english-gpt-2-model-with-huggingface","code_link":"https://colab.research.google.com/drive/1B3rgV5maqb-5ZabRBm9eN4wMrSQw0Uni","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2289,"title":"ElasticTransformers","description":"Making BERT stretchy. Semantic Elasticsearch with Sentence Transformers.","tags":["article","code","huggingface","attention","bert","transformers","library","natural-language-processing","search","elastic-search","elastictransformers"],"details":"Semantic Elasticsearch with Sentence Transformers. We will use the power of Elastic and the magic of BERT to idnex a million articles and perform lexical and semantic search on them. The purpose is to provide an ease-of-use way of setting up your own Elasticsearch with near state of the art capabilities of contextual embeddings / semantic search using NLP transformers.","links":[{"article_link":"https://medium.com/@mihail.dungarov/elastic-transformers-ae011e8f5b88","code_link":"https://github.com/md-experiments/elastic_transformers","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2288,"title":"Which GPU(s) to Get for Deep Learning","description":"My Experience and Advice for Using GPUs in Deep Learning.","tags":["article","tutorial","hardware","gpu"],"details":"This blog post is designed to give you different levels of understanding about GPUs and the new Ampere series GPUs from NVIDIA. You have the choice: \r\n\r\n1. If you are not interested in the details of how GPUs work, what makes a GPU fast, and what is unique about the new NVIDIA RTX 30s Ampere series, you can skip right to the performance and performance per dollar charts and the recommendation section. These form the core of the blog post and the most valuable content.\r\n2. If you worry about specific questions, I have answered and addressed the most common questions and misconceptions in the later part of the blog post.\r\n3. If you want to get an in-depth understanding of how GPUs and Tensor Cores work, the best is to read the blog post from start to finish. You might want to skip a section or two based on your understanding of the presented topics.\r\n\r\n","links":[{"article_link":"https://timdettmers.com/2020/09/07/which-gpu-for-deep-learning/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2287,"title":"omega|ml - building and deploying ML models the easy way","description":"Deploying ML is hard. It should not be. omega|ml makes it a breeze.","tags":["article","code","library","production","mlops","omega"],"details":"Unique features of omega|ml:\r\n\r\n1. Instant deployment of models and datasets,\r\n1. most things work with a single line of code, e.g. store and access larger-than memory dataframes\r\n1. models are versioned automatically\r\n1. It is extensible to work with any ML framework, on any cloud\r\n\r\nDetails:\r\n\r\n**Instant deployment:** With omega|ml, deployment of ML models, pipelines, datasets, full apps takes seconds instead of hours, weeks or even months. No engineering required, it just works. Cloud based REST and Python APIs are instantly available (instant = as soon as it is saved, there is zero wait time).\r\n\r\n**Single line of code:** A single line of code will deploy scikit-learn, Tensorflow, Keras, PyTorch and any other Python-serializable model. Same for datasets, notebooks and any pip-installable Python package, saving a dataset or a script is a single line of code. Also larger than memory dataframes and other datasets are possible out of the box. It works from laptop to cloud, with any cloud.\r\n\r\n**Automatic model versioning:** Every model is automatically versioned, and accessing any version is as simple as specifying its version tag. The \"model as data, not code\" means models are stored in the database, not as part of a deployed docker image like everyone else is doing it (treating models as code is fundamentally flawed - after all, models are data, not code).\r\n\r\n**Extensible:**omega|ml is easy to extend thanks to its plugin architecture. Actually most of the standard features are built as plugins.\r\n\r\nAlso omega|ml is built on well known and wide-spread open source technology, namely Python, PyData, RabbitMQ and MongoDB. This means it is easy to run anywhere, using existing skills and infrastructure.\r\n\r\nOpen source, Apache 2.0 licensed.","links":[{"article_link":"https://towardsdatascience.com/omega-ml-deploying-data-machine-learning-pipelines-the-easy-way-a3d281569666","code_link":"https://github.com/omegaml/omegaml","research_link":"","media_link":"https://static.wixstatic.com/media/2defe3_a0ff7cac62cd4299b5ea3fa1133df351~mv2.gif/v1/fit/w_250,h_135,q_30,blur_30/2defe3_a0ff7cac62cd4299b5ea3fa1133df351~mv2.gif","dataset_link":"","demo_link":"","other_link":"https://omegaml.io"}]},{"id":2286,"title":"Beginner-friendly PyTorch GANs repository","description":"Implementation of various GAN architectures starting with the original GAN paper.","tags":["code","tutorial","pytorch","deep-learning","generative-adversarial-networks","education"],"details":"The goal of this repo is to create well-commented, clean PyTorch GANs repository which could be super useful as a supplement to GAN theory.","links":[{"article_link":"","code_link":"https://github.com/gordicaleksa/pytorch-gans","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2285,"title":"Images of radio boxes","description":"I have collected about 15+k raw images of radio boxes across 500+ forms and hand-picked 200+ images that can be used to determine if a radio box is checked.","tags":["code","dataset","video","computer-vision","image-classification"],"details":"I built a solution using preexisting Form Recognizer solution, however it did not support check-box and radio box support.\r\n\r\nHowever, most valuable data is check-boxes and radio boxes, so I built a custom vision model, that can recognize if a radio box is recognized.\r\n\r\nThe provided GitHub currently only have images and the YouTube video shows what I tried to make it work and on 57:00 I show how to replicate my success in ML.NET Model Builder.\r\n\r\nAt later date, I'll add a pre-built ML.NET model as well as C# project to run it.","links":[{"article_link":"","code_link":"https://github.com/jernejk/ml-radioboxes-model","research_link":"","media_link":"https://www.youtube.com/watch?v=OpSXbHUYTAQ&feature=youtu.be&t=2906","dataset_link":"https://github.com/jernejk/ml-radioboxes-model/tree/main/TrainingData","demo_link":"","other_link":""}]},{"id":2284,"title":"electra_pytorch: ELECTRA in PyTorch (fastai + huggingface)","description":"Unofficial reimplementation of ","tags":["code","paper","research","fastai","huggingface","pytorch","deep-learning","natural-language-processing","pretraining","arxiv:2003.10555"],"details":"I pretrain ELECTRA-small from scratch and has successfully replicate the paper's results on GLUE. \r\n\r\n![test_results](https://pbs.twimg.com/media/EhOR-t4UwAAXjpU?format=jpg&name=medium)\r\n\r\nResults for models on the GLUE test set.\r\n\r\ndetails: \r\n\r\npost (fastai forum): https://discuss.huggingface.co/t/electra-training-reimplementation-and-discussion/1004\r\n\r\npost (huggingface forum): https://forums.fast.ai/t/electra-training-reimplementation-and-discussion/78280\r\n\r\ntweet: https://twitter.com/_RichardWang_/status/1302545459374772224?s=20","links":[{"article_link":"","code_link":"https://github.com/richarddwang/electra_pytorch","research_link":"https://arxiv.org/abs/2003.10555","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2283,"title":"Data analysis made easy: Text2Code for Jupyter notebook","description":"A jupyter notebook extension for Text2Code for basic pandas and plotly commands","tags":["article","code","tutorial","video","spacy","library","named-entity-recognition","natural-language-processing","pandas","jupyter","visualization","exploratory-data-analysis","fiass","universal-sentence-encoder"],"details":"![](https://github.com/deepklarity/jupyter-text2code/blob/master/mopp-demo.gif?raw=true)\r\n\r\nA ready-to-install jupyter extension which converts english queries into relevant code. Built as a proof of concept for the problem we personally face of **forgetting less-used syntaxes of pandas and plotly libraries** which is often used in Exploratory Data Analysis. This tool allows us to query in a generic language without having to remember the syntax.\r\n\r\nInspired by cool GPT-3 demos and not having the access to the API, here is an attempt by us to build a Text2Code extension using publicly available libraries. The approach isn't generative, but relies on identifying & matching from a set of predefined *intents* and generating the relevant code by extracting relevant entities and inserting them in a template. Adding new intents and extending the functionality is easy once the pipeline is in place. \r\n\r\nTechnologies used:\r\n\r\n* Universal Sentence Encoder\r\n* Spacy\r\n* Faiss\r\n* Jupyter extension\r\n","links":[{"article_link":"https://towardsdatascience.com/data-analysis-made-easy-text2code-for-jupyter-notebook-5380e89bb493","code_link":"https://github.com/deepklarity/jupyter-text2code","research_link":"","media_link":"https://www.youtube.com/watch?v=3gZ7_9W-TJs","dataset_link":"","demo_link":"","other_link":""}]},{"id":2282,"title":"Antialiased CNNs","description":"Making Convolutional Networks Shift-Invariant Again.","tags":["article","code","paper","research","video","convolutional-neural-networks","library","shift-invariant","arxiv:1904.11486"],"details":"Modern convolutional networks are not shift-invariant, as small input shifts or translations can cause drastic changes in the output. Commonly used downsampling methods, such as max-pooling, strided-convolution, and average-pooling, ignore the sampling theorem. The well-known signal processing fix is anti-aliasing by low-pass filtering before downsampling. However, simply inserting this module into deep networks degrades performance; as a result, it is seldomly used today. We show that when integrated correctly, it is compatible with existing architectural components, such as max-pooling and strided-convolution. We observe increased accuracy in ImageNet classification, across several commonly-used architectures, such as ResNet, DenseNet, and MobileNet, indicating effective regularization. Furthermore, we observe better generalization, in terms of stability and robustness to input corruptions. Our results demonstrate that this classical signal processing technique has been undeservingly overlooked in modern deep networks.\r\n\r\n![](https://richzhang.github.io/antialiased-cnns/resources/antialias_mod.jpg)","links":[{"article_link":"https://richzhang.github.io/antialiased-cnns/","code_link":"https://github.com/adobe/antialiased-cnns","research_link":"https://arxiv.org/abs/1904.11486","media_link":"https://www.youtube.com/watch?v=HjewNBZz00w","dataset_link":"","demo_link":"","other_link":""}]},{"id":2281,"title":"AutoScraper","description":"A Smart, Automatic, Fast and Lightweight Web Scraper for Python.","tags":["code","library","web-scraping","autoscraper"],"details":"This project is made for automatic web scraping to make scraping easy. It gets a url or the html content of a web page and a list of sample data which we want to scrape from that page. This data can be text, url or any html tag value of that page. It learns the scraping rules and returns the similar elements. Then you can use this learned object with new urls to get similar content or the exact same element of those new pages.\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/alirezamika/autoscraper","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2280,"title":"Top 10 Deep Learning Breakthroughs \u2014 Deep Reinforcement Learning","description":"The article unravels the journey behind reaching the point when Reinforcement Learning combined with Deep Learning defeated a Go player world champion.","tags":["article","tutorial","deep-learning","machine-learning","reinforcement-learning"],"details":"","links":[{"article_link":"https://medium.com/@zohebabai/top-10-deep-learning-breakthroughs-deep-reinforcement-learning-d2307ed8c27","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2279,"title":"Top 10 Deep Learning Breakthroughs \u2014 Family of SNGD Optimizers","description":"Choice of Optimization algorithms has always been the center of discussions and research inside the ML community. This article unravels the journey of optimizer","tags":["article","tutorial","deep-learning","machine-learning","library","optimizer"],"details":"","links":[{"article_link":"https://medium.com/@zohebabai/top-10-deep-learning-breakthroughs-family-of-sngd-optimizers-179b7cf114a","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2278,"title":"Top 10 Deep Learning Breakthroughs \u2014 AlexNet","description":"Details regarding AlexNet and its code implementation. ","tags":["article","code","tutorial","convolutional-neural-networks","deep-learning","machine-learning"],"details":"","links":[{"article_link":"https://medium.com/@zohebabai/top-10-deep-learning-breakthroughs-alexnet-291e16dbd679","code_link":"https://gist.github.com/ZohebAbai/25fc9e58c50c11f2826d20c5657d3211","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2277,"title":"Neural Network from scratch - Part 1/2","description":"A brief introduction to neural networks with implementation in NumPy.","tags":["article","tutorial","deep-learning","machine-learning","neural-networks"],"details":"We will be going from basics and covering all parts needed to understand neural networks in depth. This is part contains a brief introduction to neural networks, AI, and deep learning concepts.","links":[{"article_link":"https://medium.com/@pratikbaitha04/neural-networks-from-scratch-a-brief-introduction-for-beginners-d3776599aaac","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2275,"title":"hugdatafast: huggingface/nlp + fastai","description":"The elegant integration of huggingface/nlp and fastai2 and handy transforms using pure huggingface/nlp ","tags":["code","dataset","fastai","huggingface","transformers","natural-language-processing"],"details":"Doing NLP ? \r\nSee if you can turn your data pipeline into just 3 lines. \ud83d\ude0e \r\n\r\n\ud83d\udce5 pip install hugdatafast \r\n\ud83d\udcd6 Documentation: https://hugdatafast.readthedocs.io/en/latest/\r\n\r\n![image](https://user-images.githubusercontent.com/17963619/92091020-be672f00-ee02-11ea-84c0-d54b4855ff4b.png)\r\n\r\n![transform](https://user-images.githubusercontent.com/17963619/92429054-685c0800-f1c3-11ea-8461-f05e0bf5b808.png)\r\n\r\nQ: What if my data is not in the huggingface/nlp datasets list ? \r\nA: Not a problem. See this (https://twitter.com/Thom_Wolf/status/1296732565970321408?s=20) \r\n\r\npost (fastai forum): https://forums.fast.ai/t/hugdatafast-hugginface-nlp-fastai/78142 \r\npost (huggingface forum): https://discuss.huggingface.co/t/hugdatafast-hugginface-nlp-fastai/986 ","links":[{"article_link":"","code_link":"https://github.com/richarddwang/hugdatafast","research_link":"","media_link":"https://user-images.githubusercontent.com/17963619/92091020-be672f00-ee02-11ea-84c0-d54b4855ff4b.png","dataset_link":"","demo_link":"","other_link":"https://hugdatafast.readthedocs.io/en/latest/"}]},{"id":2274,"title":"Transformer Reinforcement Learning","description":"Train transformer language models with reinforcement learning.","tags":["article","code","huggingface","transformers","library","language-modeling","natural-language-processing","reinforcement-learning","proximal-policy-optimization"],"details":"With trl you can train transformer language models with Proximal Policy Optimization (PPO). The library is built with the transformer library by \ud83e\udd17 Hugging Face (link). Therefore, pre-trained language models can be directly loaded via the transformer interface. At this point only GTP2 is implemented.\r\n\r\nHighlights:\r\n\r\n* GPT2 model with a value head: A transformer model with an additional scalar output for each token which can be used as a value function in reinforcement learning.\r\n* PPOTrainer: A PPO trainer for language models that just needs (query, response, reward) triplets to optimise the language model.\r\n* Example: Train GPT2 to generate positive movie reviews with a BERT sentiment classifier.","links":[{"article_link":"https://lvwerra.github.io/trl/","code_link":"https://github.com/lvwerra/trl","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2273,"title":"ONNX Transformers","description":"Accelerated NLP pipelines for fast inference \ud83d\ude80 on CPU. Built with \ud83e\udd17 Transformers and ONNX runtime.","tags":["code","onnx","transformers","library","natural-language-processing","inference"],"details":"Accelerated NLP pipelines for fast inference \ud83d\ude80 on CPU. Built with \ud83e\udd17 Transformers and [onnxruntime](https://github.com/microsoft/onnxruntime).\r\n\r\nModern NLP models are very large and take significant amount of time for inference on CPU's. onnxruntime provides optimizations to speed-up inference of these models. This library allows you to leverage onnxruntime for [transformer](https://github.com/huggingface/transformers) models, with the familiar `pipeline` API in just two lines of code.\r\n\r\nJust provide the path/url to the model and it'll download and automatically create onnx graph and run inference.\r\n\r\n```python\r\nfrom onnx_transformers import pipeline\r\n\r\n>>> nlp = pipeline(\"question-answering\", model=\"deepset/roberta-base-squad2\", onnx=True)\r\n>>> nlp({\r\n \"question\": \"What is ONNX Runtime ?\", \r\n \"context\": \"ONNX Runtime is a highly performant single inference engine for multiple platforms and hardware\"\r\n})\r\n{'answer': 'highly performant single inference engine for multiple platforms and hardware', 'end': 94, 'score': 0.751201868057251, 'start': 18}\r\n```\r\n\r\nIt provides onnxruntime inference for following NLP tasks\r\n\r\n - `feature-extraction`: Generates a tensor representation for the input sequence\r\n - `ner`: Generates named entity mapping for each word in the input sequence.\r\n - `sentiment-analysis`: Gives the polarity (positive / negative) of the whole input sequence. Can be used for any text classification model.\r\n - `question-answering`: Provided some context and a question referring to the context, it will extract the answer to the question in the context.\r\n - `zero-shot-classification`: For zero shot text classification.\r\n\r\n### Speed up\r\n\r\n**Benchmark `feature-extraction` pipeline** \r\n\r\n![](https://github.com/patil-suraj/onnx_transformers/blob/master/data/feature_extraction_pipeline_benchmark.png?raw=True)\r\n\r\n\r\n**Benchmark `question-answering` pipeline**\r\n\r\n![](https://github.com/patil-suraj/onnx_transformers/blob/master/data/qa_pipeline_benchmark.png?raw=True)\r\n\r\nfor more details head over to the GitHub [repo](https://github.com/patil-suraj/onnx_transformers)","links":[{"article_link":"","code_link":"https://github.com/patil-suraj/onnx_transformers","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2272,"title":"Learn PyTorch","description":"3 steps to learn PyTorch","tags":["tutorial","pytorch","deep-learning","deep-learning-frameworks"],"details":"Here are 3 easy steps to get started quickly with the most popular deep learning framework - at least in the research community - PyTorch!","links":[{"article_link":"","code_link":"","research_link":"","media_link":"https://youtu.be/2n_uoGOPoVk","dataset_link":"","demo_link":"","other_link":""}]},{"id":2271,"title":"Latest advancements in video streaming with AI","description":"AI developments in video streaming using Super-resolution, Per-title encoding, P2P","tags":["article","tutorial","artificial-general-intelligence","deep-learning","machine-learning","computer-vision","super-resolution","video-classification"],"details":"85% of the data consumed over the internet is via videos. About 2.8 exabytes of data is transferred over the internet via streaming videos. This growth is driven by the advent of VOD platforms like Netflix, Video communication platforms like Zoom, Social platforms like Tiktok, esports, live streaming to name a few.\r\n\r\nCovid19 pandemic has accelerated the video consumption and has been the driving force of companies moving from offline mode to online live mode. With this explosion of the video consumption on a day-to-day basis we need to be prepared for the upcoming demand.\r\n\r\nIn this article we will be discussing what are the latest advancements in video streaming technology and how can they help in improving the streaming experience.","links":[{"article_link":"https://blog.peervadoo.com/2020-video-streaming-ai-p2p-technology-advancements.html","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2270,"title":"Deep Semi-Supervised Learning","description":"Discusses SSL in a deep learning setting and goes through some of the main deep learning SSL methods.","tags":["article","code","paper","research","semi-supervised-learning","arxiv:2006.05278"],"details":"Deep neural networks demonstrated their ability to provide remarkable performances on certain supervised learning tasks (e.g., image classification) when trained on extensive collections of labeled data (e.g. ImageNet). However, creating such large collections of data requires a considerable amount of resources, time, and effort. Such resources may not be available in many practical cases, limiting the adoption and application of many deep learning (DL) methods.\r\n\r\nIn a search for more data-efficient DL methods to overcome the need for large annotated datasets, we see a lot of research interest in recent years with regards to the application of semi-supervised learning (SSL) to deep neural nets as a possible alternative, by developing novel methods and adopting existing SSL frameworks for a deep learning setting. This post discusses SSL in a deep learning setting and goes through some of the main deep learning SSL methods.","links":[{"article_link":"https://yassouali.github.io/ml-blog/deep-semi-supervised/","code_link":"https://github.com/yassouali/awesome-semi-supervised-learning","research_link":"https://arxiv.org/abs/2006.05278","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2269,"title":"Learning to Summarize with Human Feedback","description":"Human feedback models outperform much larger supervised models and reference summaries on TL;DR","tags":["article","code","paper","research","natural-language-processing","text-summarization","openai","demo","human-feedback","feedback-loops","arxiv:2009.01325"],"details":"We\u2019ve applied reinforcement learning from human feedback to train language models that are better at summarization. Our models generate summaries that are better than summaries from 10x larger models trained only with supervised learning. Even though we train our models on the Reddit TL;DR dataset,1 the same models transfer to generate good summaries of CNN/DailyMail news articles2 without any further fine-tuning. Our techniques are not specific to summarization; in the long run, our goal is to make aligning AI systems with human preferences a central component of AI research and deployment in many domains.\r\n\r\n![](https://cdn.openai.com/learning-to-summarize-with-human-feedback/assets/approach-diagram-wide.svg)","links":[{"article_link":"https://openai.com/blog/learning-to-summarize-with-human-feedback/","code_link":"https://github.com/openai/summarize-from-feedback","research_link":"https://arxiv.org/abs/2009.01325","media_link":"","dataset_link":"","demo_link":"https://openaipublic.blob.core.windows.net/summarize-from-feedback/website/index.html","other_link":""}]},{"id":2268,"title":"NLP Course | For You","description":"This is an extension to the (ML for) Natural Language Processing course I teach at the Yandex School of Data Analysis (YSDA) since fall 2018. ","tags":["article","course","natural-language-processing"],"details":"This is an extension to the (ML for) Natural Language Processing course I teach at the Yandex School of Data Analysis (YSDA) since fall 2018. For now, only part of the topics is likely to be covered here.\r\n\r\nThis new format of the course is designed for:\r\n\r\n* Convenience: easy to find, learn or recap material (both standard and more advanced), and to try in practice.\r\n* Clarity: each part, from front to back, is a result of my care not only about what to say, but also how to say and, especially, how to show something.\r\n* You: I wanted to make these materials so that you (yes, you!) could study on your own, what you like, and at your pace. My main purpose is to help you enter your own very personal adventure. For you.\r\n","links":[{"article_link":"https://lena-voita.github.io/nlp_course.html","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2267,"title":"What Is MLOps?","description":"Machine learning operations, MLOps, are best practices for businesses to run AI successfully with help from an expanding software products and cloud services.","tags":["article","production","mlops"],"details":"Machine learning operations, MLOps, are best practices for businesses to run AI successfully with help from an expanding smorgasbord of software products and cloud services.\r\n\r\n![](https://blogs.nvidia.com/wp-content/uploads/2020/09/MLOps-Neal-Analytics-672x296.png.webp)\r\n\r\n* Data sources and the datasets created from them\r\n* A repository of AI models tagged with their histories and attributes\r\n* An automated ML pipeline that manages datasets, models and experiments through their lifecycles\r\n* Software containers, typically based on Kubernetes, to simplify running these jobs\r\n\r\n![](https://blogs.nvidia.com/wp-content/uploads/2020/09/MLOPS-process-Gartner-1280-640x500.png.webp)","links":[{"article_link":"https://blogs.nvidia.com/blog/2020/09/03/what-is-mlops/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2266,"title":"Wav2Lip: Accurately Lip-syncing Videos In The Wild","description":"A Lip Sync Expert Is All You Need for Speech to Lip Generation In the Wild","tags":["article","code","paper","research","video","audio","computer-vision","image-generation","demo","wav2lip","arxiv:2008.10010"],"details":"![](https://camo.githubusercontent.com/abd64aaf79252a9e9ceadd8bfd074560f4b4e1db/68747470733a2f2f64726976652e676f6f676c652e636f6d2f75633f6578706f72743d766965772669643d31576e3068506d706f3447526243494a523854663230416b7a646931716a6a4739)\r\n\r\n\r\n**Highlights**\r\n\r\n - Lip-sync videos to any target speech with high accuracy. Try our [interactive demo](https://bhaasha.iiit.ac.in/lipsync).\r\n - Works for any identity, voice, and language. Also works for CGI faces and synthetic voices.\r\n - Complete training code, inference code, and pretrained models are available.\r\n - Or, quick-start with the Google Colab Notebook: [Link](https://colab.research.google.com/drive/1tZpDWXz49W6wDcTprANRGLo2D_EbD5J8?usp=sharing)\r\n - Several new, reliable evaluation benchmarks and metrics [[`evaluation/` folder of this repo]](https://github.com/Rudrabha/Wav2Lip/tree/master/evaluation) released.\r\n - Code to calculate metrics reported in the paper is also made available.\r\n","links":[{"article_link":"https://bhaasha.iiit.ac.in/lipsync/","code_link":"https://github.com/Rudrabha/Wav2Lip","research_link":"https://arxiv.org/abs/2008.10010","media_link":"https://www.youtube.com/watch?v=0fXaDCZNOJc","dataset_link":"","demo_link":"http://bhaasha.iiit.ac.in/lipsync/","other_link":"https://www.youtube.com/watch?v=0fXaDCZNOJc&feature=youtu.be"}]},{"id":2265,"title":"Deploying a HuggingFace NLP Model with KFServing","description":"Modifying a Hugging Face pre-trained model to run as a KFServing hosted model.","tags":["article","tutorial","huggingface","transformers","natural-language-processing","production","kubeflow","serving","kfserving"],"details":"In this example we demonstrate how to take a [Hugging Face example](https://huggingface.co/transformers/usage.html) and modifying the pre-trained model to run as a [KFServing](https://github.com/kubeflow/kfserving) hosted model. The specific example we'll is the extractive question answering model from the Hugging Face transformer library. This model extracts answers from a text given a question.\r\n\r\n![](http://www.pattersonconsultingtn.com/blog/images/pct_ml_workflow_model_deploy.png)\r\n![](https://github.com/kubeflow/kfserving/raw/master/docs/diagrams/kfserving.png)","links":[{"article_link":"http://www.pattersonconsultingtn.com/blog/deploying_huggingface_with_kfserving.html","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2264,"title":"MushroomRL","description":"Python library for Reinforcement Learning.","tags":["code","pytorch","library","reinforcement-learning"],"details":"MushroomRL is a Python Reinforcement Learning (RL) library whose modularity allows to easily use well-known Python libraries for tensor computation (e.g. PyTorch, Tensorflow) and RL benchmarks (e.g. OpenAI Gym, PyBullet, Deepmind Control Suite). It allows to perform RL experiments in a simple way providing classical RL algorithms (e.g. Q-Learning, SARSA, FQI), and deep RL algorithms (e.g. DQN, DDPG, SAC, TD3, TRPO, PPO).","links":[{"article_link":"","code_link":"https://github.com/MushroomRL/mushroom-rl?fbclid=IwAR3Cty46KWambRbrzrbxkCQS96PzQyGL7ie4nbAYHNl-c7Tjcazp9h9smu4","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2263,"title":"TTT: Fine-tuning Transformers with TPUs or GPUs acceleration","description":"TTT is short for a package for fine-tuning \ud83e\udd17 Transformers with TPUs, written in Tensorflow2.0+.","tags":["article","code","notebook","research","tutorial","tensorflow","transformers","library","natural-language-processing","tpu","gpu","tensorflow-tpus"],"details":"## Features\r\n\r\n- Switch between TPUs and GPUs easily.\r\n- Stable training on TPUs.\r\n- Customize datasets or load from [the nlp library](https://huggingface.co/nlp/viewer/?dataset=aeslc).\r\n- Using pretrained tensorflow weights from the open-source library - [\ud83e\udd17 transformers](https://github.com/huggingface/transformers).\r\n- Fine-tuning BERT-like transformers (DistilBert, ALBERT, Electra, RoBERTa) using keras High-level API.\r\n- Fine-tuning T5-like transformers using customize training loop, written in tensorflow.\r\n- So far, this package mainly supports single-sequence classificaton based tasks. However, it can be easily extended to support other language tasks.\r\n\r\n![](https://ucdcs-student.ucd.ie/~cwang/ttt/ttt_demo.png)\r\n","links":[{"article_link":"https://colab.research.google.com/github/wangcongcong123/ttt/blob/master/ttt_notebook.ipynb","code_link":"https://github.com/wangcongcong123/ttt","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2262,"title":"R.U.Stoked","description":"NLP (Sentiment Analysis) project to demonstrate a pipeline of data from the very first stage of data collection through ML model deployment.","tags":["code","tutorial","aws","docker","machine-learning","natural-language-processing","sentiment-analysis","streamlit","github-actions","demo","deployment"],"details":"# R.U.Stoked\r\n![](https://media-exp1.licdn.com/dms/image/C5612AQEDRAO2g2AfWg/article-cover_image-shrink_720_1280/0?e=1604534400&v=beta&t=Msw6z0HU0z3FvEBlfbIOgwHubhnJCim8NDoAh_BM6uY)\r\n\r\n**RUStoked** is an experimental **NLP** (_Sentiment Analysis_) project. An effort to orchestrate a pipeline of data from the very first stage of data collection through ML model `deployment`. \r\n\r\nThis post is more of a guide through the project stages, challenges, and lessons learned rather than a code review. The code is available on [GitHub](https://github.com/mohsen-saki/RUStoked) and I have tried to keep notebooks and code libraries _\"marked down\"_ and _\"commented\"_ as much as possible. \r\n\r\n**`IMPORTANT NOTE : This project is yet under development and some parts of `repo` may get updated accordingly`** \r\n\r\nThis [GitHub](https://github.com/mohsen-saki/RUStoked) `repo` consists of:\r\n\r\n* Folder [`data`](https://github.com/mohsen-saki/RUStoked/tree/master/data) which contains raw data and some lines of code for scraping data.\r\n* Folder [`rustoked`](https://github.com/mohsen-saki/RUStoked/tree/master/rustoked) which contains a library of core functions used during data exploration and model development\r\n* Folder [`notebooks`](https://github.com/mohsen-saki/RUStoked/tree/master/notebooks) which contains some notebooks to demonstrate data and model engineering process\r\n* Folder [`app`](https://github.com/mohsen-saki/RUStoked/tree/master/app) which contains codes and functions for a small [streamlit](https://www.streamlit.io/) application running and maintaining the model.\r\n* Folder [`withdrawn`](https://github.com/mohsen-saki/RUStoked/tree/master/withdrawn) which contains my first try to develop the model, not successful though.\r\n\r\n** --> And it is live [here](https://rustoked.herokuapp.com/) on Heroku.**\r\n\r\n\r\n# About the Project\r\n\r\n1 What about is this project?\r\n---\r\nR.U.Stoked is a **Natural Language Processing** (Sentiment Analysis Case) but _not a binary_ one. I focused on detecting a third group of sentiment which I call here after `\u201cDisengaged\u201d`; a group of opinions which are neither `\u201cStoked\u201d` nor `\u201cDissatisfied\u201d`. I think detecting this group of so to speak \"users / customers\" can create business values in problem cases such as **Churning** or targeting **prospect customers**. Actually this idea is also sort of supported by the data; almost exactly half of reviews rated `3` out of `5` recommended their experience to others and the other half suggested not to. \r\n\r\n2 Where does data come from?\r\n---\r\nThe [data](https://github.com/mohsen-saki/RUStoked/tree/master/data) has been collected from [SEEK](https://www.seek.com.au/). It comprises almost `13k` rows of data by which employees have expressed their feelings and opinions about their employers. I have just collected the data for a dozen of companies which have relatively had higher number of reviews. And They mostly belong to two fields of FMCG retailers and Finance/Technology industries.\r\n\r\n3 What are challenges?\r\n---\r\n* Detecting a _neutral_ class of sentiment in between `positive` and `negative` ones has been a bit of challenge because exploring those reviews shows that the choice of words tends to be almost similar to either positive or negative reviews.\r\n* Many of the reviews are written by _not-native English speakers_ as they vary a lot in terms of word choices, sentence structures, comprehension, etc.\r\n* The SEEK template for registering reviews is asking for `pros` and `cons`. So, it has resulted in more of a list-like outcome rather than comprehensive opinions. For example in response to cons many may say \u201cmanagement\u201d which clearly lacks the sentiment compared to something like \u201cbad or poor management\u201d.\r\n* Another feature of SEEK\u2019s reviews is that the overall rating is not calculated as average of employees\u2019 ratings on some other subjects but it is acquired independently. This raised a bit of inconsistency between users' overall opinion of their client compared to their opinion on different aspects of their work paces.\r\n\r\n4 First try and failure\r\n---\r\nThere is a folder named \u201cwithdrawn\u201d in the repository which contains a few notebooks as my first approach to this project which I consider as a _failure_ not particularly for the outcomes but more because of my strategy. I was sort of rushing to wrap it up which was not really working out and this is why:\r\n* I did not collect enough data in terms of both the amount of data and the meta-data which help to explore and explain data beter.\r\n* I did not tackle the problem according to the best practices. I created a pipeline of different models with various features and used the grid search method to see which one results in the best accuracy score. Obviously I did not put any time into data exploration and feature engineering. As a result, It was more of a black box with no insight of what is going on under the model performance. \r\n* I was not writing good codes. It was all in the notebooks (not reusable and modular) \r\n\r\nHowever, I came across this excellent book [\u201cBuilding Machine Learning Powered Applications\u201c](https://www.oreilly.com/library/view/building-machine-learning/9781492045106/) written by [Emmanuel Ameisen](https://www.linkedin.com/in/ameisen/). Reading this book is actually the reason to reconsider my approach and start this project over.\r\n\r\n5 What toolings/technologies have been used?\r\n---\r\n`pandas` to manipulate and explore the data \r\n`matplotlib` and `bokeh` to visualise and explore the data \r\n\r\n![](https://media-exp1.licdn.com/dms/image/C5612AQGLD_zXOjK0VA/article-inline_image-shrink_1000_1488/0?e=1604534400&v=beta&t=PEAG9BF8nEsotFO_zA7ukijM4i3Il_bxxAXJT5cAu0s)\r\n\r\n`TfifVectorizer` and in some cases `Spacy` to get the word vectors. \r\n`Scikit-Learn` RandomForestClassifier and Naive Bayes as model/algorithm \r\n\r\n6 How did it go?\r\n---\r\nFirst model trained on just the text data has performed pretty well on predicting positive and negative classes but poorly on the \u201cDisengaged\u201d labels.\r\n\r\n![](https://media-exp1.licdn.com/dms/image/C5612AQEZJGOsehUtfw/article-inline_image-shrink_1000_1488/0?e=1604534400&v=beta&t=k6TPifxZh4N75t0KZfWD2VJHSgEV70t1DkV-lYOzVek)\r\n\r\nTo tweak the model performance, I extracted some features from the data and plugged them into the vectors. Those features were selected to help the model detecting the sentiment better and distinguishing different labels easier such as:\r\n\r\n* Words `great` and `good` appear frequently in positive opinions\r\n* Words `poor`, `bad`, `not`, etc. appear frequently in negative opinions\r\n* The _count_ of above words appears to be an indication of sentiment in each piece of review.\r\n* The word `but` seems to have a higher frequency of occurring within \u201cDisengaged\u201d labels as it serves for changing the language tone from positive to negative or vice versa. \r\n\r\nPlugging above candidate features in the word vectors and visualization shows some improvement in separating data clusters each containing the majority of one of the labels but for the \u201cDisengaged\u201d label it still does not show much improvement:\r\n\r\n![](https://media-exp1.licdn.com/dms/image/C5612AQETukIvAnD0dg/article-inline_image-shrink_1000_1488/0?e=1604534400&v=beta&t=pA8rHMQ6G5MxysnxdnJH_dW6hv_nTWcvc2EEVo7aC-M)\r\n\r\nAnd the outcome scores agree as well:\r\n\r\n![](https://media-exp1.licdn.com/dms/image/C5612AQHp2N_Lz9kJuA/article-inline_image-shrink_1000_1488/0?e=1604534400&v=beta&t=wol7H5E1YJwNdWyqN_Pbf-HCncTA8vh3QZOHIvKI0lg)\r\n\r\nWell, I would say **if features are too obvious, probably the model has already picked them**. Using `Naive Bayes` algorithm as recommended by Scikit-Learn ([Choosing the right estimator](https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html)) did not make a noticeable difference as expected (Normally a data problem results should not change considerably just by changing algorithm, if so, probably something is done wrong).\r\n\r\nHowever, using just features without the word vectors shows some improvement albeit at cost of model performance decrease on two other labels.\r\n\r\n![](https://media-exp1.licdn.com/dms/image/C5612AQGIImr7zmcRXA/article-inline_image-shrink_1000_1488/0?e=1604534400&v=beta&t=VOkn35ZhIuEgXDf7a8JJ8KajXKdG6JHs3s8rjXSOiNg)\r\n\r\n***Working more on generating and extracting features seems like a promising approach to take here.***\r\n\r\n7 [The Application](https://rustoked.herokuapp.com/)\r\n---\r\nI have recently been hearing a lot about [Streamlit](https://www.streamlit.io/) and I wanted to try something new. Although it may not be as sophisticated as some backend frameworks such as [Flask](https://flask.palletsprojects.com/en/1.1.x/) and [Django](https://www.djangoproject.com/), I should say that for a simple single-page webapp, [Streamlit](https://www.streamlit.io/) was super easy, extremely quick, and very cool.\r\n\r\n8 Deployment\r\n---\r\nI went with a [docker](https://www.docker.com/) image as it is quite standard and straight forward. Deployment has been automated through [GitHub Action](https://github.com/features/actions) to trigger some workflows on `push` and deploy to [AWS ECS Instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) and [HEROKU](https://www.heroku.com/free), not at the same time though (Heroku server port is not to select and is generated as an environment variable which make some adjusments necessary to Dockerfile).\r\n\r\nObviously AWS required a lot more work around to get it orchestrating right and it is much stronger for providing this level of access to tweak the environment, however I love HEROKU for being simple and free :) as far as it is not consuming resources like a commercial webapp.\r\n\r\nAnyway, it is live [here](https://rustoked.herokuapp.com/) on **heroku**\r\n\r\n9 What\u2019s next?\r\n---\r\n* Writing some tests and getting them to run through github actions.\r\n* More on model development focusing on extracting and generating features\r\n\r\n\r\n---\r\nThanks to open source and free world.\r\n![](https://media-exp1.licdn.com/dms/image/C5612AQGYwEuE0ZVyOg/article-inline_image-shrink_1500_2232/0?e=1604534400&v=beta&t=0KPfF9F_FZHtLvPukDNCmT7Q-Il-VqBVoCQmElkmpVM)","links":[{"article_link":"","code_link":"https://github.com/mohsen-saki/RUStoked","research_link":"","media_link":"","dataset_link":"","demo_link":"https://rustoked.herokuapp.com/","other_link":""}]},{"id":2261,"title":"A Framework For Contrastive Self-Supervised Learning","description":"A conceptual framework for characterizing contrastive self-supervised learning approaches.","tags":["article","paper","research","pytorch","contrastive-loss","self-supervised-learning","pytorch-lightning","contrastive-learning","arxiv:2009.00104"],"details":"In [our recent paper](https://arxiv.org/abs/2009.00104), we formulate a conceptual framework for characterizing contrastive self-supervised learning approaches. We used our framework to analyze three examples of these leading approaches, SimCLR, CPC, AMDIM, and show that although these approaches seem different on the surface, they are all in fact slight tweaks of one another.\r\nIn this blog we will:\r\n\r\n* Review self-supervised learning.\r\n* Review contrastive learning.\r\n* Propose a framework for comparing recent approaches.\r\n* Compare CPC, AMDIM, MOCO, SimCLR, and BYOL using our framework.\r\n* Formulate a new approach \u2014 YADIM \u2014 , using our framework.\r\n* Describe some of our results.\r\n* Describe the computational requirements to achieve these results.","links":[{"article_link":"https://medium.com/@_willfalcon/a-framework-for-contrastive-self-supervised-learning-and-designing-a-new-approach-3caab5d29619","code_link":"","research_link":"https://arxiv.org/abs/2009.00104","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2260,"title":"CVPR 2020: A Snapshot","description":"A snapshot of the conference by summarizing some papers (& listing some) that grabbed my attention.","tags":["article","research","computer-vision","cvpr-2020","conference"],"details":"The first virtual CVPR conference ended, with 1467 papers accepted, 29 tutorials, 64 workshops, and 7.6k virtual attendees. The huge number of papers and the new virtual version made navigating the conference overwhelming (and very slow) at times. To get a grasp of the general trends of the conference this year, I will present in this blog post a sort of a snapshot of the conference by summarizing some papers (& listing some) that grabbed my attention.\r\n\r\n* CVPR 2020 in numbers\r\n* Recognition, Detection and Segmentation\r\n* Generative models and image synthesis\r\n* Representation Learning\r\n* Computational photography\r\n* Transfer/Low-shot/Semi/Unsupervised Learning\r\n* Vision and Language\r\n* The rest","links":[{"article_link":"https://yassouali.github.io/ml-blog/cvpr2020/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2259,"title":"ECCV 2020: Some Highlights","description":"A sort of a snapshot of the conference by summarizing some papers (& listing some) that grabbed my attention.","tags":["article","research","computer-vision","eccv-2020","conference"],"details":"The 2020 European Conference on Computer Vision took place online, from 23 to 28 August, and consisted of 1360 papers, divided into 104 orals, 160 spotlights and the rest of 1096 papers as posters. In addition to 45 workshops and 16 tutorials. As it is the case in recent years with ML and CV conferences, the huge number of papers can be overwhelming at times. Similar to my CVPR2020 post, to get a grasp of the general trends of the conference this year, I will present in this blog post a sort of a snapshot of the conference by summarizing some papers (& listing some) that grabbed my attention.\r\n\r\n* General Statistics\r\n* Recognition, Detection, Segmentation and Pose Estimation\r\n* Semi-Supervised, Unsupervised, Transfer, Representation & Few-Shot Learning\r\n* 3D Computer Vision & Robotics\r\n* Image and Video Synthesis\r\n* Vision and Language\r\n* The Rest","links":[{"article_link":"https://yassouali.github.io/ml-blog/eccv2020/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2258,"title":"Graph Convolutions for dummies","description":"An article explaining Graph Convolutional Networks as simply as possible.","tags":["article","tutorial","graph-convolutional-networks","graph-neural-networks","graphs","geometric-deep-learning"],"details":"The article explains GCN in as simply as possible. A basic knowledge in ML and matrix multiplication is needed to understand the article. Please refrain from directly copying content from the post. In case you want to use an excerpt or any original image, mention the link to the post.","links":[{"article_link":"https://thenlp.space/blog/graph-convolutional-network-for-dummies","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2257,"title":"Encrypt and Decrypt Files using Python","description":"Introduction to file encryption and decryption using Python. Detailed code examples with explanations and use of cryptography library.","tags":["article","tutorial","python","cyber-security","network-security","program-development","security"],"details":"In this article we will discuss how to encrypt and decrypt files using Python.\r\n\r\nTable of Contents:\r\n\r\n* Introduction\r\n* Creating a key\r\n* Loading a key\r\n* Encrypting a file\r\n* Decrypting a file\r\n* Complete Object-Oriented Programming Example\r\n* Conclusion","links":[{"article_link":"https://pyshark.com/encrypt-and-decrypt-files-using-python/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2256,"title":"VSCode on Google Colab","description":"Learn how to setup and use VSCode as an IDE on Google Colab","tags":["article","notebook","tutorial","colab","vscode","ngrok"],"details":"I recently discovered a way to setup VSCode on Google Colab and use it as an IDE to edit code and run experiments on the Colab VM.\r\n\r\nWith this setup, you can still prototype in the Colab Notebook while also using VSCode for all the advantages of an IDE. Here is how you can replicate my setup.","links":[{"article_link":"https://amitness.com/vscode-on-colab/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2255,"title":"Tensorflow, Pytorch, Transformer, Fastai, etc. Tutorials","description":"BERT Classification, Question Answering, Seq2Seq Machine Translation, Contextual Topic Modeling, Large Scale Multilabelclassification, etc","tags":["code","notebook","pytorch","tensorflow","attention","bert","transformers","natural-language-processing","text-classification","notebooks"],"details":"## Pytorch\r\n\r\n* BERT Fine-Tuning Tutorial [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/BERT_Fine_Tuning_Sentence_Classification_v2.ipynb)\r\n* Bert Classification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/Bert_Classification_Pt.ipynb)\r\n* Generic Transformer Classification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/Generic_Transformer_Classification.ipynb)\r\n* Question Answering with a Fine-Tuned BERT [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/Question_Answering_with_a_Fine_Tuned_BERT.ipynb)\r\n* Seq2Seq Machine Translation Transformer [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/Seq2Seq_Pytorch.ipynb)\r\n* Simpletransformers Tutorial [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/Simpletransformers_2.ipynb) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/large-scale-multi-label-classification/blob/master/simpletransformers_intro.ipynb) \r\n* Huggingface Transformer with Fastai Tutorial [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/SUsing_Transformers_with_Fastai_Tutorial.ipynb)\r\n* Contextual Topic Modeling [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/contextual_topic_modeling.ipynb)\r\n\r\n\r\n## Tensorflow\r\n\r\n* Large Scale Multilabelclassification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Ankur3107/large-scale-multi-label-classification/blob/master/simpletransformers_intro.ipynb)","links":[{"article_link":"","code_link":"https://github.com/Ankur3107/colab_notebooks","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://colab.research.google.com/github/Ankur3107/colab_notebooks/blob/master/BERT_Fine_Tuning_Sentence_Classification_v2.ipynb"}]},{"id":2254,"title":"PyTorch Performance Tuning Guide - Szymon Migacz, NVIDIA","description":"ECCV 2020 Tutorial on Accelerating Computer Vision with Mixed Precision","tags":["article","video","pytorch","demo","mixed-precision","eccv-2020"],"details":"Complete [**playlist**](https://www.youtube.com/playlist?list=PL6Rbs64R_CcPsJflYb2doIMmFaDyo-oIK) of all ECCV mixed precision talks now available.\r\n\r\nNew levels of accuracy in computer vision, from image recognition and detection, to generating images with GANs, have been achieved by increasing the size of trained models. Fast turn-around times while iterating on the design of such models would greatly improve the rate of progress in this new era of computer vision.\r\n\r\nThis tutorial will describe techniques that utilize half-precision floating point representations to allow deep learning practitioners to accelerate the training of large deep networks while also reducing memory requirements.\r\n\r\nThe talks and sessions below will provide a deep-dive into available software packages that enable easy conversion of models to mixed precision training, practical application examples, tricks of the trade (mixed precision arithmetic, loss scaling, etc.), as well as considerations relevant to training many popular models in commonly used deep learning frameworks including PyTorch and TensorFlow.","links":[{"article_link":"https://nvlabs.github.io/eccv2020-mixed-precision-tutorial/files/szymon_migacz-pytorch-performance-tuning-guide.pdf","code_link":"","research_link":"","media_link":"https://www.youtube.com/watch?v=9mS1fIYj1So","dataset_link":"","demo_link":"","other_link":"https://www.youtube.com/playlist?list=PL6Rbs64R_CcPsJflYb2doIMmFaDyo-oIK"}]},{"id":2253,"title":"Opacus","description":"A high-speed library for training PyTorch models with differential privacy.","tags":["article","code","pytorch","library","privacy","differential-privacy","opacus"],"details":"Opacus - a new high-speed library for training PyTorch models with differential privacy (DP) that\u2019s more scalable than existing state-of-the-art methods. Differential privacy is a mathematically rigorous framework for quantifying the anonymization of sensitive data. It\u2019s often used in analytics, with growing interest in the machine learning (ML) community. With the release of Opacus, we hope to provide an easier path for researchers and engineers to adopt differential privacy in ML, as well as to accelerate DP research in the field.\r\n\r\nOpacus provides:\r\n\r\n* **Speed**: By leveraging Autograd hooks in PyTorch, Opacus can compute batched per-sample gradients, resulting in an order of magnitude speedup compared with existing DP libraries that rely on microbatching.\r\n* **Safety**: Opacus uses a cryptographically safe pseudo-random number generator for its security-critical code. This is processed at high speed on the GPU for an entire batch of parameters.\r\n* **Flexibility**: Thanks to PyTorch, engineers and researchers can quickly prototype their ideas by mixing and matching our code with PyTorch code and pure Python code.\r\n* **Productivity**: Opacus comes with tutorials, helper functions that warn about incompatible layers before your training even starts, and automatic refactoring mechanisms.\r\n* **Interactivity**: Opacus keeps track of how much of your privacy budget (a core mathematical concept in DP) you are spending at any given point in time, enabling early stopping and real-time monitoring.\r\n\r\nOpacus defines a lightweight API by introducing the PrivacyEngine abstraction, which takes care of both tracking your privacy budget and working on your model\u2019s gradients. You don\u2019t need to call it directly for it to operate, as it attaches to a standard PyTorch optimizer. It works behind the scenes, making training with Opacus as easy as adding these lines of code at the beginning of your training code:","links":[{"article_link":"https://ai.facebook.com/blog/introducing-opacus-a-high-speed-library-for-training-pytorch-models-with-differential-privacy","code_link":"https://github.com/pytorch/opacus","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2252,"title":"Explore then Execute","description":"Adapting without Rewards via Factorized Meta-Reinforcement Learning","tags":["article","research","meta-learning","reinforcement-learning","meta-reinforcement-learning"],"details":"In this blog post, we\u2019ll cover and solve two key challenges about meta-exploration that keep humans in the kitchen.\r\n\r\n* First, we\u2019ll show that existing meta-reinforcement learning approaches suffer from a chicken-and-egg coupling problem: learning to explore and find the ingredients only helps a robot prepare a meal if it already knows how to cook, but the robot can only learn to cook if it already knows where the ingredients are. We\u2019ll avoid this cyclic dependence of learning to explore and learning to execute (solve the task) by proposing an objective to learn them independently of each other.\r\n* Second, we\u2019ll observe that the standard meta-reinforcement learning problem setting expects robots to cook the correct meal by trial-and-error, without even being told what meal to cook, which unnecessarily complicates the meta-exploration problem. To avoid this, we propose instruction-based meta-reinforcement learning, where the robot receives instructions specifying what meal to cook.","links":[{"article_link":"https://ai.stanford.edu/blog/meta-exploration/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2251,"title":"Practical AI: Using NLP word embeddings to solve localization ","description":"Using NLP word vectors (word2vec, glove, etc) in a novel way to solve the problem of localization in edtech.","tags":["article","notebook","tutorial","embeddings","natural-language-processing","word-embeddings","gensim","demo","word-vectors"],"details":"**King \u2014 Man + Woman = Queen**\r\n\r\nYou might have seen the traditional **word2vec** or **Glove** word embeddings examples that show **King -Man+Woman = Queen.** In this will see how we can use this structure to solve a real-world problem of localization in edtech.\r\n\r\n\r\n\r\nAn **edtech** company in the **USA** wants to expand into **India** after being successful in its home market. It has a large set of questions in their **question bank** that it wants to use when it enters the Indian market.\r\n\r\nBut there is **one big** problem. A sample **third class** (grade) **math question** in their question bank looks like this \u2014\r\n\r\n> **Frank** lives in **San Francisco** and **Elizabeth** lives in **Los Angeles**. If the flight time is **2 hrs** when will **Elizabeth** reach **Frank** if she starts at **8am** in the morning?\r\n\r\n\r\nA **3rd-grade** kid living in **India** would not connect with this question as it has references to **names** and **locations** lesser know to him/her - Frank, San Franciso, Los Angeles, etc.\r\n\r\nSo it would be ideal if we can automatically change the question to suit the **Indian context** and rephrase it as \u2014\r\n\r\n> **Sanjay Verma** lives in **Bangalore** and **Rekha** lives in **Mumbai**. If the flight time is **2 hrs** when will **Rekha** reach **Sanjay Verma** if she starts at **8am** in the morning?\r\n\r\n\r\nThis concept is called **localization**. It is the general concept of adopting a product or idea to a different country or region respecting local norms, customs, and any other preferences. \r\n\r\nIn this article we will see how **word embeddings** are used to achieve this **automatically** without manual intervention.\r\n","links":[{"article_link":"https://medium.com/@ramsrigouthamg/practical-ai-using-nlp-word-vectors-in-a-novel-way-to-solve-the-problem-of-localization-9de3e4fbf56f?source=friends_link","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"https://colab.research.google.com/drive/1oGqwDgDgtBeiXoeaq1uvX-_KxLY8FzXp","other_link":""}]},{"id":2250,"title":"Text Data Augmentation with MarianMT","description":"Learn how to use machine translation models in Hugging Face Transformers for data augmentation.","tags":["article","tutorial","huggingface","transformers","data-augmentation","natural-language-processing"],"details":"","links":[{"article_link":"https://amitness.com/back-translation/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2249,"title":"Heavy Metal Subgenre Classifier","description":"A music genre classifier trained to classify heavy metal subgenres.","tags":["article","code","dataset","convolutional-neural-networks","recurrent-neural-networks","music","audio-classification"],"details":"In this project, [a convolutional recurrent neural network (CRNN) ](https://arxiv.org/abs/1609.04243) was trained on a dataset of heavy metal track samples collected using Spotify's API.\r\n\r\nPeople who are not fans of a particular genre often struggle to distinguish between specific subgenres. The goal of this project was to see if a neural network could be trained to pick up on the subtle distinctions that a human with domain knowledge would be able to.\r\n\r\nA dataset was collected containing 100,000 track samples from Spotify. The dataset contained 20 classes made up of heavy metal subgenres. [Here's a guide to collecting track samples using Spotipy.](https://amontgomerie.github.io/2020/07/30/track_data_collection.html).\r\n\r\nThe final model was achieved 60% top 1 accuracy on the test set. (It was also able to get 80% top 1 accuracy on an easier dataset of more general genre categories.)","links":[{"article_link":"https://amontgomerie.github.io/2020/07/30/genre_classification.html","code_link":"https://github.com/AMontgomerie/genre_classifier","research_link":"","media_link":"","dataset_link":"https://drive.google.com/file/d/1Hv9AsEHdx5mKL7o6io_XegeQfVOPjP9g/view","demo_link":"","other_link":""}]},{"id":2248,"title":"Learn Machine Learning in 2020!","description":"Bunch of you asked me how to get started so here is the answer!","tags":["article","video","deep-learning","machine-learning"],"details":"I just made this YT video on how to get started with ML in 2020!\r\n\r\nI wrote the blog 2 years ago but it still contains relevant content.","links":[{"article_link":"https://medium.com/@gordicaleksa/get-started-with-ai-and-machine-learning-in-3-months-5236d5e0f230","code_link":"","research_link":"","media_link":"https://www.youtube.com/watch?v=7q_OJvQQ7vY","dataset_link":"","demo_link":"","other_link":""}]},{"id":2247,"title":"Unsupervised Keyphrase Extraction","description":"Learn about unsupervised algorithms for automatically extracting representative keyword and phrases from documents","tags":["article","tutorial","information-extraction","keyword-extraction","natural-language-processing","unsupervised-learning"],"details":"- Get a mental model of how keyword extraction pipeline works\r\n- Understand working mechanism and python implementation for some popular algorithms","links":[{"article_link":"https://amitness.com/keyphrase-extraction/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2246,"title":"Questgen- An NLP library for state-of-the-art Question Generation","description":"Questgen AI is an opensource, easy to use NLP library for Question generation. It can generate MCQs, Boolean (Yes/No), FAQs and also paraphrase any question.\r\n","tags":["code","notebook","research","huggingface","transformers","library","natural-language-processing","question-answering","question-generation","t5","demo"],"details":"https://questgen.ai/\r\n\r\nQuestgen AI is an opensource NLP library for state-of-the-art, easy to use Question generation algorithms. \r\nIt is on a quest build the world's most advanced question generation AI leveraging on state-of-the-art transformer models like T5, BERT and OpenAI GPT-2 etc.\r\n\r\nYou can generate different types of questions like MCQs, Boolean (Yes/No), FAQs, etc. You can also paraphrase any given question and do question answering.\r\n\r\nOur Github project has one of the cleanest ReadMe out there along with an easy to follow Google Colab notebook :) Do check it out.\r\n\r\n![](https://github.com/ramsrigouthamg/Questgen.ai/raw/master/quest.gif)\r\n\r\nCurrently Supported Question Generation Capabilities :\r\n\r\n```\r\n\r\n1. Multiple Choice Questions (MCQs)\r\n\r\n2. Boolean Questions (Yes/No)\r\n\r\n3. General FAQs\r\n\r\n4. Paraphrasing any Question \r\n\r\n5. Question Answering.\r\n\r\n```\r\n\r\n","links":[{"article_link":"","code_link":"https://github.com/ramsrigouthamg/Questgen.ai","research_link":"","media_link":"","dataset_link":"","demo_link":"https://colab.research.google.com/drive/1CvgSjU48kN5jEtCU732soM723W1spGdm","other_link":"https://questgen.ai/"}]},{"id":2245,"title":"On the Bottleneck of Graph Neural Networks and its Implications","description":"The mechanism of propagating information between neighbors creates a bottleneck when every node aggregates messages from its neighbors.","tags":["code","paper","research","video","graph-neural-networks","graphs","bottleneck","arxiv:2006.05205"],"details":"Graph neural networks (GNNs) were shown to effectively learn from highly structured data containing elements (nodes) with relationships (edges) between them. GNN variants differ in how each node in the graph absorbs the information flowing from its neighbor nodes. In this paper, we highlight an inherent problem in GNNs: the mechanism of propagating information between neighbors creates a bottleneck when every node aggregates messages from its neighbors. This bottleneck causes the over-squashing of exponentially-growing information into fixed-size vectors. As a result, the graph fails to propagate messages flowing from distant nodes and performs poorly when the prediction task depends on long-range information. We demonstrate that the bottleneck hinders popular GNNs from fitting the training data. We show that GNNs that absorb incoming edges equally, like GCN and GIN, are more susceptible to over-squashing than other GNN types. We further show that existing, extensively-tuned, GNN-based models suffer from over-squashing and that breaking the bottleneck improves state-of-the-art results without any hyperparameter tuning or additional weights.","links":[{"article_link":"","code_link":"https://github.com/tech-srl/bottleneck","research_link":"https://arxiv.org/abs/2006.05205","media_link":"https://www.youtube.com/watch?v=vrLsEwzZTCQ","dataset_link":"","demo_link":"","other_link":"https://urialon.cswp.cs.technion.ac.il/wp-content/uploads/sites/83/2020/07/bottleneck_slides.pdf"}]},{"id":2244,"title":"Boost your Colab Notebooks with GCP and AWS Instances","description":"How to upgrade your Colab with Google Cloud Platform or Amazon Web Service Instance as a backend.","tags":["article","aws","gcp","gpu","google-cloud-platform","colab"],"details":"But sometimes you might require resources more than Colab typically offers, for example, you might require multi-GPUs or higher GPU RAM or maybe a better GPU to conclude successful DS experiments in your notebook. In this blog, I shall cover how to upgrade your Colab in a few minutes, without moving any of your code elsewhere, having Google Cloud Platform or Amazon Web Service Instance as a backend.","links":[{"article_link":"https://medium.com/@zohebabai/boost-your-colab-notebooks-with-gcp-and-aws-instance-within-a-few-minutes-a43ed37cd06d","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2243,"title":"SwAV","description":"Unsupervised Learning of Visual Features by Contrasting Cluster Assignments","tags":["article","paper","research","self-supervised-learning","unsupervised-learning","swav"],"details":"Self-supervised learning, semi-supervised learning, pretraining, self-training, robust representations, etc. are some of the hottest terms right now in the field of Computer Vision and Deep Learning. The recent progress in terms of self-supervised learning is astounding. Towards this end, researchers at FAIR have now come up with this new [paper](https://github.com/AakashKumarNain/annotated_research_papers/blob/master/self-supervised-learning/Swav.pdf) that introduces a new method to learn robust image representations.","links":[{"article_link":"https://medium.com/@nainaakash012/unsupervised-learning-of-visual-features-by-contrasting-cluster-assignments-fbedc8b9c3db","code_link":"","research_link":"https://github.com/AakashKumarNain/annotated_research_papers/blob/master/self-supervised-learning/Swav.pdf","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2242,"title":"Deep dive into ROI layer in Object Detection Models","description":"In this blog post we will implement in torch ROI Pool and ROI Align models from scratch.","tags":["article","tutorial","computer-vision","object-detection"],"details":"In this blog post we will implement in torch ROI Pool and ROI Align models from scratch.","links":[{"article_link":"https://medium.com/swlh/annotated-rpn-roi-pooling-and-roi-align-6a40ac5bbe1b","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2241,"title":"Objax","description":"Contraction of Object and JAX - a minimalist object-oriented design and a readable code base.","tags":["code","jax","library","demo","opjax"],"details":"[**Tutorials**](https://objax.readthedocs.io/en/latest/notebooks/Objax_Basics.html)\r\n| [**Install**](https://objax.readthedocs.io/en/latest/installation_setup.html)\r\n| [**Documentation**](https://objax.readthedocs.io/en/latest/)\r\n| [**Philosophy**](https://objax.readthedocs.io/en/latest/index.html#objax-philosophy)\r\n\r\nThis is not an officially supported Google product.\r\n\r\nObjax is an open source machine learning framework that accelerates research and learning thanks to a\r\nminimalist object-oriented design and a readable code base.\r\nIts name comes from the contraction of Object and [JAX](https://github.com/google/jax) -- a popular high-performance\r\nframework.\r\nObjax is designed **by researchers for researchers** with a focus on simplicity and understandability.\r\nIts users should be able to easily read, understand, extend, and modify it to fit their needs.\r\n\r\nThis is the developer repository of Objax, there is very little user documentation\r\nhere, for the full documentation go to [objax.readthedocs.io](https://objax.readthedocs.io/).\r\n\r\nYou can find READMEs in the subdirectory of this project, for example:\r\n\r\n* [Sample Code](examples/README.md)\r\n* [Writing documentation](docs/README.md)\r\n","links":[{"article_link":"","code_link":"https://github.com/google/objax","research_link":"","media_link":"","dataset_link":"","demo_link":"https://objax.readthedocs.io/en/latest/notebooks/Objax_Basics.html","other_link":"https://objax.readthedocs.io/en/latest/"}]},{"id":2240,"title":"Hopfield Networks is All You Need","description":"This blog post explains the paper Hopfield Networks is All You Need and the corresponding new PyTorch Hopfield layer.","tags":["article","code","paper","research","pytorch","hopfield-networks","arxiv:2008.02217"],"details":"This blog post explains the paper [Hopfield Networks is All You Need](https://arxiv.org/abs/2008.02217) and the corresponding new PyTorch [Hopfield layer](https://github.com/ml-jku/hopfield-layers).\r\n\r\nThis blog post is split into three parts. First, we make the transition from traditional Hopfield Networks towards modern Hopfield Networks and their generalization to continuous states through our new energy function. Second, the properties of our new energy function and the connection to the self-attention mechanism of transformer networks is shown. Finally, we introduce and explain a new PyTorch layer ([Hopfield layer](https://github.com/ml-jku/hopfield-layers)), which is built on the insights of our work. We show several practical use cases, i.e. [Modern Hopfield Networks and Attention for Immune Repertoire Classification](https://arxiv.org/abs/2007.13505), Hopfield pooling, and associations of two sets.","links":[{"article_link":"https://ml-jku.github.io/hopfield-layers/","code_link":"https://github.com/ml-jku/hopfield-layers","research_link":"https://arxiv.org/abs/2008.02217","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2239,"title":"An Introduction to Adversarial Examples in Deep Learning","description":"This report provides an intuitive introduction to adversarial examples, discusses a wide variety of different adversarial attacks and, most notably, provides ad","tags":["article","code","tutorial","deep-learning","computer-vision","wandb","adversarial-learning","adversarial-attacks"],"details":"","links":[{"article_link":"https://app.wandb.ai/authors/adv-dl/reports/An-Introduction-to-Adversarial-Examples-in-Deep-Learning--VmlldzoyMTQwODM","code_link":"https://github.com/sayakpaul/Image-Adversaries-101","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2238,"title":"Spinning Up in Deep RL (OpenAI)","description":"An educational resource to help anyone learn deep reinforcement learning.","tags":["code","tutorial","pytorch","tensorflow","reinforcement-learning","openai"],"details":"**Update**: Available in both TensorFlow and PyTorch.\r\n\r\nThis is an educational resource produced by OpenAI that makes it easier to learn about deep reinforcement learning (deep RL).\r\n\r\nFor the unfamiliar: [reinforcement learning](https://en.wikipedia.org/wiki/Reinforcement_learning) (RL) is a machine learning approach for teaching agents how to solve tasks by trial and error. Deep RL refers to the combination of RL with [deep learning](http://ufldl.stanford.edu/tutorial/).\r\n\r\nThis module contains a variety of helpful resources, including:\r\n\r\n- a short [introduction](https://spinningup.openai.com/en/latest/spinningup/rl_intro.html) to RL terminology, kinds of algorithms, and basic theory,\r\n- an [essay](https://spinningup.openai.com/en/latest/spinningup/spinningup.html) about how to grow into an RL research role,\r\n- a [curated list](https://spinningup.openai.com/en/latest/spinningup/keypapers.html) of important papers organized by topic,\r\n- a well-documented [code repo](https://github.com/openai/spinningup) of short, standalone implementations of key algorithms,\r\n- and a few [exercises](https://spinningup.openai.com/en/latest/spinningup/exercises.html) to serve as warm-ups.\r\n\r\nGet started at [spinningup.openai.com](https://spinningup.openai.com)!","links":[{"article_link":"","code_link":"https://github.com/openai/spinningup","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":"https://spinningup.openai.com/en/latest/"}]},{"id":2237,"title":"Self-classifying MNIST Digits","description":"Achieving Distributed Coordination with Neural Cellular Automata\r\n\r\n","tags":["article","code","notebook","mnist","cellular-automata","self-classification","automata","distributed-coordination"],"details":"In this article, we use a variant of the neural cellular automata model described in [Growing Cellular Automata](https://doi.org/10.23915/distill.00023). We refer readers unfamiliar with its implementation to the original \u201d[Model](https://distill.pub/2020/growing-ca/#model)\u201d section. Here we will describe a few areas where our model diverges from the original.","links":[{"article_link":"https://distill.pub/2020/selforg/mnist/","code_link":"https://colab.research.google.com/github/google-research/self-organising-systems/blob/master/notebooks/mnist_ca.ipynb","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2236,"title":"Git for Data: Not a Silver Bullet","description":"What we mean when we talk about version-control for data.","tags":["article","git","dvc","versioning","data"],"details":"I\u2019m broadly sympathetic to the goals that people who are working on \u201cgit for data\u201d projects have. However, I continue to believe that it\u2019s important to keep code separate from data and that if your data system is deterministic and append-only, then you can achieve all of your goals by using version-control for your code and then selectively applying transformations to subsets of the data to re-create the data state at any time. The motto remains:\r\n\r\n**Keep version control for your code, and keep a log for your data.**\r\n\r\nWorking on a version control system for data instead of solving the problem of not having an immutable log of your source data seems like investing a lot of time and tooling into solving the wrong problem (and is what I assume these systems are effectively doing under-the-hood-anyway).","links":[{"article_link":"https://locallyoptimistic.com/post/git-for-data-not-a-silver-bullet/","code_link":"","research_link":"","media_link":"","dataset_link":"","demo_link":"","other_link":""}]},{"id":2235,"title":"Shift-Ctrl-F: Semantic Search for the Browser","description":"\ud83d\udd0e: Search the information available on a webpage using natural language instead of an exact string match.","tags":["code","javascript","tensorflow-js","attention","bert","transformers","library","natural-language-processing","question-answering","chrome-extension"],"details":"# Shift-Ctrl-F: Semantic Search for the Browser\r\n\r\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\r\n\r\nSearch the information available on a webpage using\r\nnatural language instead of an exact string match. Uses\r\n[MobileBERT](https://arxiv.org/abs/2004.02984)\r\nfine-tuned on\r\n[SQuAD](https://rajpurkar.github.io/SQuAD-explorer/)\r\nvia [TensorFlowJS](https://www.tensorflow.org/js) to\r\nsearch for answers and mark relevant elements on the web page.\r\n\r\n![Shift-Ctrl-F Demo](https://github.com/model-zoo/shift-ctrl-f/raw/master/assets/demo.gif)\r\n\r\n**This extension is an experiment.** Deep learning models like BERT are powerful\r\nbut may return unpredictable and/or biased results that are tough to interpret.\r\nPlease apply best judgement when analyzing search results.\r\n\r\n### Why?\r\n\r\nCtrl-F uses exact string-matching to find information within a webpage. String\r\nmatch is inherently a proxy heuristic for the true content -- in most cases it\r\nworks very well, but in some cases it can be a bad proxy.\r\n\r\nIn our example above we search\r\n[https://stripe.com/docs/testing](https://stripe.com/docs/testing), aiming to\r\nunderstand the **difference between test mode and live mode**. With string\r\nmatching, you might search through some relevant phrases `\"live mode\"`, `\"test\r\nmode\"`, and/or `\"difference\"` and scan through results. With semantic search, you\r\ncan directly phrase your question `\"What is the difference between live mode\r\nand test mode?\"`. We see that the model returns a relevant result, even though\r\nthe page does not contain the term \"`difference`\".\r\n\r\n### How It Works\r\n\r\nEvery time a user executes a search:\r\n\r\n1. The content script collects all `

`, `