<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abraham Audu</title>
    <description>The latest articles on DEV Community by Abraham Audu (@the_abrahamaudu).</description>
    <link>https://dev.to/the_abrahamaudu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864524%2F264b8aed-4c07-4d09-89ea-b10656ed43fd.png</url>
      <title>DEV Community: Abraham Audu</title>
      <link>https://dev.to/the_abrahamaudu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/the_abrahamaudu"/>
    <language>en</language>
    <item>
      <title>How to Become a Data Scientist in 2026</title>
      <dc:creator>Abraham Audu</dc:creator>
      <pubDate>Sun, 07 Jun 2026 18:21:13 +0000</pubDate>
      <link>https://dev.to/the_abrahamaudu/how-to-become-a-data-scientist-in-2026-5b4g</link>
      <guid>https://dev.to/the_abrahamaudu/how-to-become-a-data-scientist-in-2026-5b4g</guid>
      <description>&lt;h3&gt;
  
  
  How I got here
&lt;/h3&gt;

&lt;p&gt;On principle, you will never catch me parading myself as a some sort of expert data scientist. Technically, that's what I do in my day job, but I know I still have so much to learn because the field is broad, and to truly become expert requires dangerously ambitious levels of work ethic. I think I'm a functional data scientist who learns more as I encounter new problems daily.&lt;/p&gt;

&lt;p&gt;I'm writing this piece because in the last week or two, precisely three people have asked me questions related to transitioning into data science. As such, I thought to unify my thoughts around the topic so that I can refer anyone else who asks here--if anyone else ever asks.&lt;/p&gt;

&lt;p&gt;This article assumes you're already familiar with some of the data science entails such as data analysis, model training, prediction, etc, so I will not be doing a lecture series, just addressing some of the disconnects I have observed in conversation with people looking to transition to the field.&lt;/p&gt;

&lt;h3&gt;
  
  
  Initial Excitement
&lt;/h3&gt;

&lt;p&gt;In 2026, it's easy to see what claude or chatGPT is doing and go "What sorcery is this? I must learn this trick!" and then reach out to the closest person you know who has ever mentioned anything about data or machine learning to find out how you can transition into AI. First of all, transitioning into "AI" is such a broad way to look at it. It is analogous to saying "I want to emigrate to Africa, show me how". But that's forgivable too.&lt;/p&gt;

&lt;p&gt;To cut short your initial excitement, or maybe redirect it, playing with a locally hosted LLM or making API calls to the DeepSeek endpoint is not data science, or machine learning or "AI". It's coding. And if you want to go down that route, you're better of focusing on software engineering. I say this because when you work with LLMs, the finished models to be specific, it's like using any other SaaS API out there. The difference being that you're interacting with a much less deterministic interface. But the rest of the work you do around it is pretty much a deterministic software engineering journey.&lt;/p&gt;

&lt;p&gt;In the next section, I introduce you to what data science, machine learning, AI or whatever it's being called by the time you read this article is really about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Theoretical Foundations
&lt;/h3&gt;

&lt;p&gt;One of the most important concepts you need to understand in the field of data science is Statistics and Probability. It helps to be able to actually run the calculations, but it's not entirely necessary, thanks to the myriad of pre-built toolboxes out there. However, you cannot escape understanding these concepts, because you need to understand them to understand what the tools are doing and what the outcomes represent.&lt;/p&gt;

&lt;p&gt;Ideally, the next step is to learn the mathematics behind simple models like linear and logistic regression. This is very key, because even the more complex systems like neural networks rely on conceptually simple units of calculations encapsulated in more complex training loops which are generally able to extract more relationships between the data points supplied and the target being solved for.&lt;/p&gt;

&lt;p&gt;And then ofcourse, you need to spend time understanding the concept of model evaluation. What sort of evaluation would accurately represent the performance of your model in the use case it is being developed for? As a quick example, in a fraud dataset, where realistically speaking, fraud cases might represent only 1 to 5% of all records, a metric like naive accuracy has a high chance of telling you your model is 95 to 99% accurate because in principle and by the nature of your dataset, if the model just predicts that all predictions are non-fraudulent, it will be accurate 95 to 99% of the time, but in reality, it has specifically missed what we wanted it to catch in the first place. So in this case, do we want to explore other metrics such as F1, Area Under the Curve or Matthew's Correlation Coefficient which are able to account for model performance across each prediction target class?&lt;/p&gt;

&lt;h3&gt;
  
  
  Practice
&lt;/h3&gt;

&lt;p&gt;When learning about data science and machine learning via courses, you will be excited about modeling. In reality, you will begin to understand why it is called data science. Modelling, especially in today's world where robust toolboxes exist, model building is probably just 10% of the data scientist's job.&lt;/p&gt;

&lt;p&gt;In reality, you will have to deal with messy data, semi-structured data and data with issues upstream which might lead to missing values or inconsistent data representation.&lt;/p&gt;

&lt;p&gt;It is your job to carry out data analysis to first of all, understand what is wrong with the data, how the data might be misleading, and the hidden gems hiding in the data. Together, this process is part exploratory data analysis (EDA) and feature engineering.&lt;/p&gt;

&lt;p&gt;EDA entails looking into the data to understand what the data looks like, what fields are numerical, what features are categorical, what categorical features are nominal or ordinal (rank ordered by some criteria or simply separate classes)?&lt;/p&gt;

&lt;p&gt;Are there missing values? Can we afford to drop all records with missing values or do we need to find a way to fill the missing values. Based on what that feature represents, what would be the best way to fill missing values without distorting the true statistical properties of that feature?&lt;/p&gt;

&lt;p&gt;Are there records which are outliers? What defines an outlier within the context of this problem? Should we drop all outliers or apply a mathematical transformation of that feature to minimise the effect of outliers on that feature?&lt;/p&gt;

&lt;p&gt;Are there features that can be combined together via some mathematical representation to reflect a more contextual measure based on the particular business case being solved for? Should I transform date of birth in to a numerical field as "age" or transform locations into cluster mappings by the longitude and latitude so the model can account for the effect of where a record is originating from?&lt;/p&gt;

&lt;p&gt;Instead of telling you specifics, I have presented questions. This is a glimpse into the thoughts that run through the mind of a data scientist transforming data into a decision system.&lt;/p&gt;

&lt;p&gt;The most important bit of all this is the requirement to understand business context. The same dataset with different business objectives will require entirely different thought processes and evaluation of outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  The full picture
&lt;/h3&gt;

&lt;p&gt;When you start your journey, everything will live in a Jupyter Notebook and your dataset will be a CSV file. But as time passes, you will realise you need more to build an actual machine learning system. At some point you will realise you need to learn production grade coding, how to write clean reusable code because transformations to your training data must be applied at inference time with only a few tweaks here and there. How to build systems that are maintainable, resource efficient and scalable.&lt;/p&gt;

&lt;p&gt;You might have to source your own data from APIs, do some web scraping, connect to and pull data from a database. You might have to create a sandbox environment with Docker, run a series of iterations and track the entire stack of iterations with ML Flow, create an endpoint for accessing your model with FastAPI, deploy your model on a virtual machine on AWS and track data drift and model performance with Evidently.&lt;/p&gt;

&lt;p&gt;Depending on the kind of organisation you end up working for, you might work strictly within the confines of exploring the data and building models, or the entire stack from data sourcing up to model serving.&lt;/p&gt;

&lt;p&gt;This entire process requires being open and being willing to learn constantly. I started with Jupyter Notebooks, now I spend hours debugging on Linux to setup NVIDIA drivers so deep learning models can train and run more efficiently.&lt;/p&gt;

&lt;p&gt;Notice how I haven't made mention of LLMs but we have said so much? Yeah, working with large language models suddenly becomes contextual. If you want to work with large language models within the context of being a data scientist, it involves training or fine-tuning models much like any other model, with text data and then evaluating the outputs which are next token predictions, to see if the assigned probabilities of the next set of possible tokens it has generated is actually similar with respect to what the next set of tokens from the text corpus actually is. This is a simplification of what LLMs go through to become usable, but you get the point; we're back to good old statistics and probability.&lt;/p&gt;

&lt;p&gt;If this is what you want, then yes, all I have said is in line with what you need to do to get into AI. If on the other hand you just want to play with locally hosted LLMs via Ollama or vLLM or perhaps the Gemini API, what you need to do is learn how to code, not become a data scientist.&lt;/p&gt;

&lt;p&gt;I hope I have been able to shorten your journey based on your actual desired path.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>datascience</category>
      <category>machinelearning</category>
      <category>deeplearning</category>
    </item>
    <item>
      <title>Setting Up NVIDIA Drivers and CUDA for ML/DL on Ubuntu 22.04</title>
      <dc:creator>Abraham Audu</dc:creator>
      <pubDate>Mon, 06 Apr 2026 20:57:28 +0000</pubDate>
      <link>https://dev.to/the_abrahamaudu/setting-up-nvidia-drivers-and-cuda-for-mldl-on-ubuntu-2204-15c4</link>
      <guid>https://dev.to/the_abrahamaudu/setting-up-nvidia-drivers-and-cuda-for-mldl-on-ubuntu-2204-15c4</guid>
      <description>&lt;p&gt;Let's face it, Windows is getting really stressful to work with as a developer in 2026. If you've tried to work with your GPU on TensorFlow for deep learning projects, you probably have discovered that you're either stuck with CPU-based compute, dated CUDA versions for older TensorFlow  versions, or the hell that is setting up WSL2.&lt;/p&gt;

&lt;p&gt;Why not just switch to a Linux native environment like Ubuntu? Yeah, that's easily the safe and sane choice in 2026. Moreover, most of your production workloads will be on Linux servers, so might as well make the jump on your local setup too.&lt;/p&gt;

&lt;p&gt;I've struggled in time past to configure all the moving parts. This is because the information is scattered across and and people really do be saying random things on the internet. It can easily take hours to figure it out.&lt;/p&gt;

&lt;p&gt;And before you run off to ChatGeePeeDee to show you all the steps, I need you to understand that LLMs hallucinate and Linux will allow you run ANY command, including "removing the French language pack". So be careful what you run on your system from LLMs.&lt;/p&gt;

&lt;p&gt;This is an attempt to make it easy, especially as more people dump Windows for Linux for the sake of sanity away from the MicroSlop ecosystem.&lt;/p&gt;

&lt;p&gt;This setup was done for an Nvidia 3060 Laptop edition GPU (Use this as context to safety-check the steps as you go along). &lt;/p&gt;

&lt;p&gt;Let's just jump right in!&lt;/p&gt;

&lt;h3&gt;
  
  
  Nvidia Drivers (v595) and CUDA 12.1 Setup for Ubuntu 22.04 x86
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Flush old installation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nvidia-uninstall
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt purge &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="s1"&gt;'^nvidia-*'&lt;/span&gt; &lt;span class="s1"&gt;'^libnvidia-*'&lt;/span&gt;
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; /var/lib/dkms/nvidia
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nt"&gt;-y&lt;/span&gt; autoremove
&lt;span class="nb"&gt;sudo &lt;/span&gt;update-initramfs &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="nt"&gt;-k&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;update-grub2
&lt;span class="nb"&gt;read&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"Press any key to reboot... "&lt;/span&gt; &lt;span class="nt"&gt;-n1&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;reboot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Update Packages
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Install Kernel Headers and Build Tools
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; linux-headers-&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; build-essential dkms
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Install Nvidia Cuda Keyring
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
&lt;span class="nb"&gt;sudo &lt;/span&gt;dpkg &lt;span class="nt"&gt;-i&lt;/span&gt; cuda-keyring_1.1-1_all.deb
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Pin Driver Branch (595 in this case, update as necessary)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nvidia-driver-pinning-595
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Install the Driver
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nvidia-open
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Reboot System
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;reboot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Verify Installation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvidia-smi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  You now have NVIDIA Drivers setup, Let's proceed to CUDA and cuDNN installation
&lt;/h3&gt;

&lt;p&gt;TL;DR: CUDA 12.1 with cuDNN 8.9.x is the most stable version for TensorFlow and PyTorch simultaneously, so it's generally best to go with this version combination for now.&lt;/p&gt;

&lt;h4&gt;
  
  
  Flush Old CUDA Installation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt remove &lt;span class="nt"&gt;--purge&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="s1"&gt;'cuda*'&lt;/span&gt; &lt;span class="s1"&gt;'libcudnn*'&lt;/span&gt;
&lt;span class="nb"&gt;sudo rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /usr/local/cuda&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Install CUDA with NVIDIA Network Repo
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Download CUDA 12.1 package keyring&lt;/span&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
&lt;span class="nb"&gt;sudo &lt;/span&gt;dpkg &lt;span class="nt"&gt;-i&lt;/span&gt; cuda-keyring_1.1-1_all.deb
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update

&lt;span class="c"&gt;# Install CUDA 12.1 toolkit&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; cuda-toolkit-12-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Install cuDNN
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download cuDNN 8.9 for CUDA 12.1 from NVIDIA Developer:&lt;/p&gt;

&lt;p&gt;[&lt;a href="https://developer.nvidia.com/rdp/cudnn-archive" rel="noopener noreferrer"&gt;https://developer.nvidia.com/rdp/cudnn-archive&lt;/a&gt;]&lt;br&gt;
Choose Linux x86_64 / tar package for CUDA 12.1&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extract and copy files&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tar&lt;/span&gt; &lt;span class="nt"&gt;-xvf&lt;/span&gt; download-path/cudnn-file-name.tar.xz
&lt;span class="nb"&gt;cd &lt;/span&gt;extracted-folder-path
&lt;span class="nb"&gt;sudo cp&lt;/span&gt; &lt;span class="nt"&gt;-P&lt;/span&gt; include/cudnn&lt;span class="k"&gt;*&lt;/span&gt;.h /usr/local/cuda/include/
&lt;span class="nb"&gt;sudo cp&lt;/span&gt; &lt;span class="nt"&gt;-P&lt;/span&gt; lib/libcudnn&lt;span class="k"&gt;*&lt;/span&gt; /usr/local/cuda/lib64/
&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;a+r /usr/local/cuda/include/cudnn&lt;span class="k"&gt;*&lt;/span&gt;.h /usr/local/cuda/lib64/libcudnn&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Set Environment variables
&lt;/h4&gt;

&lt;p&gt;1.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Replace or Paste these environment variables for CUDA:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CUDA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/local/cuda
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$CUDA_HOME&lt;/span&gt;/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;LD_LIBRARY_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$CUDA_HOME&lt;/span&gt;/lib64:&lt;span class="nv"&gt;$LD_LIBRARY_PATH&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Apply Changes
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Reboot
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;reboot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Verfiy installations
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvcc &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$CUDA_HOME&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$PATH&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$LD_LIBRARY_PATH&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;N.B: &lt;code&gt;nvidia-smi&lt;/code&gt; will show the highest compatible CUDA version based on the installed NVIDIA driver version, whilst &lt;code&gt;nvcc --version&lt;/code&gt; will show the currently installed CUDA version, so if they differ, this is totally fine.&lt;/p&gt;

&lt;h4&gt;
  
  
  Verify visibility to python frameworks
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Create a python virtual environment &lt;/li&gt;
&lt;li&gt;Paste this in a .py file:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tensorflow&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tf&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;list_physical_devices&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;GPU&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Output: &lt;span class="o"&gt;[&lt;/span&gt;PhysicalDevice&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'/physical_device:GPU:0'&lt;/span&gt;, &lt;span class="nv"&gt;device_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'GPU'&lt;/span&gt;&lt;span class="o"&gt;)]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;If you made it this far and followed all the steps, you should now be able to run your TensorFlow and PyTorch (and indeed other GPU-based workloads) on your NVIDIA GPU in your Ubuntu environment.&lt;/p&gt;

&lt;p&gt;Follow for more tech content around machine learning and data science.&lt;/p&gt;

</description>
      <category>nvidia</category>
      <category>cuda</category>
      <category>ubuntu</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
