Raspberry Pi 3?

Has anyone ever run Pytorch on a Raspberry Pi 3 successfully? I have Pytorch and Torch on mine, and when I import the following in Python 3.5.3:

import torch
from torch.autograd import Variable
import torch.nn as nn
import torch.nn.functional as F

I get:

Traceback (most recent call last):
File “/home/pi/pytorch/tester.py”, line 1, in
import torch
File “/home/pi/pytorch/torch/init.py”, line 13, in
from .version import version
ImportError: No module named ‘torch.version’

Can anybody help? Thank you in advance for your time.

Did you install PyTorch from source? setup.py creates a version.py file in torch/version.py. It should look like:

__version__ = '0.2.0+53fe804'
debug = False
cuda = '8.0.61'

depending on your build setup but you should definitely have a line that says __version__ = ...

Re-run setup.py and make sure the file is being created.

Colesbury,

Thank you so much for your time.

I did re-run setup.py, but after installing yaml, and gloo, I got the following:

CMake Error at CMakeLists.txt:7 (message):
Gloo can only be built on 64-bit systems.

– Configuring incomplete, errors occurred!
See also “/home/pi/pytorch/torch/lib/build/gloo/CMakeFiles/CMakeOutput.log”.

I mean, I have downloaded both pytorch and torch, so I dont get it:

Desktop nltk_data python_games
Documents opencv-3.2.0 pytorch
Downloads opencv_contrib-3.2.0 RPi_Cam_Web_Interface
get-pip.py opencv_contrib.zip scikit-learn
media opencv.zip Templates
mu Pictures tensorflow-1.0.1-cp27-none-linux_armv7l.whl
Music Public tensorflow-for-poets-2
nesBot Python-3.6.0 torch
newsBot Python-3.6.0.tar.xz Videos

:_(

Gloo shouldn’t be required your use case. (It’s a library for distributed training).

Use export NO_DISTRIBUTED=1 before re-running setup.py. (Also make sure you run setup.py clean first since you will be changing what should be built)

Hey Colesbury,

I tried so many different ways to get it to work, but alas, I will have to wait, till Pytorch is easier to be put on something like the Raspberry Pi. Guess Ill just continue with Tensorflow. Was looking forward to Pytorch on RPi, but it just seemed like trying to climb a waterfall. Thank you very much for help. You are AWESOME!!

Best regards,

I had the same issue compiling Pytorch on a Raspberry Pi 1 B.
Even though I added NO_DISTRIBUTED=1, it still wanted to compile gloo, crashing with the same error.

I dug through the code a bit and found the line, in which the gloo build was started.

In pytorch/torch/lib/build_libs.sh, line 162-173:

# Build
for arg in "$@"; do
    if [[ "$arg" == "nccl" ]]; then
        build_nccl
    elif [[ "$arg" == "gloo" ]]; then
        build gloo $GLOO_FLAGS
    elif [[ "$arg" == "ATen" ]]; then
        build_aten
    else
        build $arg
    fi
done

Apparently the build gloo $GLOO_FLAGS line was called, even though NO_DISTRIBUTED was set.
Since I couldn’t figure out, which script called it, I just commented out the line, added a simple echo 'Would build gloo' instead, and it worked! :smiley:

I will try to figure out why the line is still called, even though gloo shouldn’t be built.

Hi

Your tester.py script is in the pytorch source directory. So the import torch statement is trying to import the local folder torch. Try to place the tester.py anywhere except the pytorch source directory and this error should go away.

Cheers
Nabarun

Hi, anyone can help me to be able to do work Pytorch on Raspberry Pi model B with stretc lite? (Sorry about my english :D)

I am trying to install pytorch on the raspberry following this: http://book.duckietown.org/master/duckiebook/pytorch_install.html

I have installed python-typing, cmake, python-… all necessary. But after one hour always has a fail :frowning:

@Mario_Parreno I wrote a new (slightly shorter) tutorial for installing PyTorch on RPi3.
Available here: https://gist.github.com/fgolemo/b973a3fa1aaa67ac61c480ae8440e754

I think in your case the crucial detail is that either

  • you forgot to export NO_DISTRIBUTED=1 or
  • you did sudo python setup.py install instead of sudo -E python setup.py install (notice the -E). If you don’t use the E flag, python will not receive the NO_DISTRIBUTED variable and attempt to build the gloo library which is needed for distributed computing.

Could you give it another try, please?

Hi,
I’m working on various DIY projects in putting torch model on a Raspberry Pi3 B, OS Raspbian. It is fun & cheap. Searched over internet, not found a reliable instruction in building pytorch in armv7l. After some trial-and-error, I could build the PyTorch 0.5.0 on RPi3. I upload the wheel to PyPi.


If you are interested, may download to your RPi3 & install. Here is the dependencies,
sudo apt-get install libatlas-base-dev libopenblas-dev cython libatlas-dev m4 libblas-dev python3-dev cmake python3-yaml
sudo pip install --upgrade numpy
numpy 1.14.3

Have fun. :slight_smile:

Hi…I am super excited about PyTorch, it is a super project, a very promising one! I will definitely give it a try and follow it with attention.
In the other hand, TensorFlow is much more mature, documented and there is already tons of tutorials and articles about it. This, is to me, more important for someone asking such a question.
Ask me in a year and I would compare performances, features etc. But for now, I would recommend TensorFlow.

pcb assembly canada

Torch 1.4 wheels for Raspberry Pi are now available here -> Installing pytorch on raspberry pi 3

1 Like

PyTorch provides official wheels for arm64/aarch64 so if you install the newly released RPi OS 64-bit you can just run:

pip install torch torchvision torchaudio

I wrote up a tutorial on how to do efficient real time inference on a Raspberry Pi at Real Time Inference on Raspberry Pi 4 (30 fps!) — PyTorch Tutorials 1.10.1+cu102 documentation