Tensorflow Hitchhike

While I was working on an Android mobile application, I stumbled across the Android Developer’s Challenge. The focus of the challenge at the time (November 2019) was how on-device machine learning could help people get things done and even though my app was designed without machine learning features, I figured jamming some artificial intelligence into my basic social media app would give me some valuable experience. Here’s that hitchhiking journey.

The Optimized Journey (~30 min)

This is the path I would have taken if I knew what I know now…

  • Follow the Tensorflow Install Instructions

    This is a reasonable first step.

  • Install Python 3.6.3

    Install the 64 bit version of Python 3.6.3. Make sure to select to include Pip with your install and add it to you PATH variable. Also download the Jetbrains IDE.

  • Create a New Project in Jetbeans

    After creating a new project, navigate to project interpreter screen:

    File -> Settings -> Project -> Project Interpreter

    Add a new interpreter that inherits global site-packages.

  • Install TensorFlow and Test

    Use the special package URL for your version of Python (3.6.3) and platform (86x_64) to install TensorFlow.

    As long as all of your variables are set up correctly, testing should be a breeze.

The Hitchhiker’s Journey (Like 4 hours)

This is the path I actually took to get started with Tensorflow…

  • Red – Obstacles I couldn’t have avoided
  • Yellow- Obstacles I could have avoided if I read carefully
  • Green – Wow. Actual progress
  • Follow the Tensorflow Install Instructions

    This seemed like a reasonable first step.

  • Install Python 3.8.0

    I could have sworn I’ve downloaded Python several times but I’m frequently cleaning up my hard drives so maybe I didn’t think it was important.

    The downloads page on the python site has more lines than I know what to do with but the first link is for the 3.8.0 version of Python for Windows. Perfect.

  • Realize I need pip

    My bad. the Tensorflow instructions mention that I’ll need pip and its possible to include it with the Python install.

    Control Panel -> Add or Remove Programs -> Uninstall Python 3.8.0

    Let’s do this again. I go back to the Python page, pick the 3.8.0 version, check the box to include pip this time and finish the installation.

  • Pip doesn’t work

    I forgot what happened here but it was annoying.

  • Tensorflow download doesn’t work

    God dangit.

    Error: Could not find a version that satisfies the requirement tensorflow (from versions: ) No matching distribution found for tensorflow

    Stack overflow again. Apparently the newest version of Python doesn’t support Tensorflow? I guess I’ll be uninstalling Python again and downgrading to 3.6.3.

  • Can’t install Python 3.6.3

    What the hell. Can’t download Python 3.6.3 because there is an existing version of Python 3.6.3 somewhere on my computer…I guess I did install this at one point. Uninstall everything Python and start fresh with 3.6.3.

  • Same issue

    I think at this point I went to sleep because I had already spent an hour trying to figure this out.

    In the morning I read that some installation mechanisms require the URL of the TensorFlow Python package so I decided I’d try this approach.

    Above is the path I tried using.

  • Tensorflow still won’t download

    Error: Tensorflow installation error: not a supported wheel on this platform

    I had a moment here where I really debated if this was worth it…I guess so. What else can stack overflow do for me.

    Okay, so apparently “pip uses the wheel’s filename to determine compatibility and the format is:”

    tensorflow-{version}-{python version}-none-{your platform}.whl

    In my path above, my platform was listed as amd64 which is wrong. It needed to be “x86-64” – nope – “x86_64”. Holy god.

  • Swirl

    I accidentally downloaded the 32 bit of Python 3.6.3 and Tensorflow only works with 64 bit systems. Rinse and mf repeat.

  • Run the Tensorflow test

    The install instructions on TensorFlow’s website say to run a line of code to confirm that TensorFlow has been properly installed. Well I do that and hit another error.

    Error: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

    Stack Overflow says this is a non-issue. YESSSSS.

  • Python interpreter is invalid

    Just when I thought my life was back on track, the gods of the digital age smack me in the mouth. Because I installed, uninstalled, and shuffled Python versions so many times, my Python interpreter became invalid…

    Error: Cannot retrieve the version of the detected SDK

    Stack overflow for the 15th time today – I need to update my interpreter from the Settings -> Project screen. According to this site, the interpreter is the bread and butter of Python.

  • Realize what the interpreter is

    I admit I probably should have known what this is by now but it’s basically an advanced calculator you can open by typing python at the command prompt. Cool. Bunch of reference material below:

    • REPL: Read – Eval – Print Loop
    • #Comments
    • / Float Division
    • // Int Division (Floor)
    • % Remainder Division
    • _ Last Value in Interpreter

    Read the docs bro.

  • Modules and Functions

    This is what I’ve been waiting to learn and it’s all pretty simple, thankfully.

    1. 1 – Write your code in text file with the .py extension. For instance, testing.py. This is called a module.
    2. 2 – Define your functions using the “def fun():” structure
    3. 3 – At the interpreter, import your module by typing “import <module>” (omit the .py extension)
    4. 4 – Use the functions in the module by referencing the module name (ex. testing.fun1)

    Finally feel like I’m learning something. Feeling some kinda way.

  • Tensorflow won’t Import

    I did what you asked of me. What else do you want?!

    At the Python console in Jetbrains, I tried typing “import tensorflow as tf”. I got hit with the following error;

    Error: ModuleNotFoundError: No module named ‘tensorflow’

    This lead me to do some more investigation on where modules are imported from and I came across this question in Stack Overflow. I finally realized the utility of the PYTHONPATH environment variable – its an efficient way of referencing all of your Python modules from different Python projects….I think.

    Assuming my guess was right, I created a new environment variable called PYTHONPATH and added the site-packages path to it. To get to the environment variables, just type “environment” at the start menu.

  • Are you kidding me?

    That didn’t resolve the issue but I could feel I was getting close to figuring it out. It seemed like my project wasn’t detecting ANY of the packages in the path I added so I did some more searching and realized that when setting up an interpreter for a virtual environment, you need to check the box to “inherit global site-packages” and I must not have done that the first time.

    File -> Settings -> Project -> Project Interpreter

    Select the settings cog, show all, and then add a new interpreter. I also learned you can type help(“command”) in the Python console and get a bunch of documentation so this wasn’t a total waste of time.

  • Import TensorFlow

    Oh hell yeah, it worked.

    Feels good man.

  • Download the Sample Data Set and Train Model

    Surprisingly, I didn’t run into any issues during this step and my model was trained to recognize articles of clothing to 97.57% accuracy. Shiiiiii…….

Well, that was fun.

Published by Joe

I'm a software developer working with Flutter, Firebase, and the @protocol. I love writing about what I learn almost as much as I like actually building products. Glad to connect!

One thought on “Tensorflow Hitchhike

  1. Get slimmer meant for summer’s a short time is definitely usually the problem in peoples. they normally check with for how for you to correctly remove pounds. Several choices may be explain mainly because getting a tremendously weight loss program and also making in depth actions just like fitness. Nonetheless a doesn’t perform without the other. To be passionate is definitely not the only item far too, you should sustain frustration plus sometimes despress. That’erinarians the reasons why sports actions while workout arrived in the best place through disqualifying internal distortions et creating community features during embeding public activities…


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: